4.02 Wed Aug 31 21:22:58 EST 2005
[ENHANCEMENTS]
- the use of custom signal handers for "die" has now been localized to
avoid interfering with other applications. (Josh Miller).
- initial support for qr in constraint_method profile key
[BUG FIXES]
- Updated ::Constraints example docs to be accurate: recommend :closures, not :all
[INTERNALS]
- provide a more accurate debugging message for constraint_method_regexp_map
4.01 Sat Aug 20 13:16:47 EST 2005
[ENHANCEMENTS]
- get_input_data() now supports the parameters "as_hashref => 1" to
return the input data in a uniform way.
[INTERNALS]
- Constraints may refer to fields that are 'unknown' to
Data::FormValidator. These unknown values will remain unfiltered
as before. (Michael Peters).
- _get_data() was renamed to _get_input_as_hash(). You shouldn't care.
4.00 Sun Aug 14 10:57:25 EST 2005
*** NOTE ***
This a major update with a significant code changes. While the test suite
indicates we have 100% compatibility with 3.x, you are encouraged to test
this release with your own applications before deploying it in a production
environment.
[ENHANCEMENTS]
- The constraints interface has been overhauled to be more intuitive to use
with parameterized constraints. This included added new two new profile
keys: 'constraint_methods' and 'constraint_method_regexp_map'. All of
the old syntax is still supported, but de-emphasized in the documentation.
See RELEASE_NOTES for details.
- A new method has been added to help building custom constraints:
"set_current_constraint_name('foo')" will set the name of a constraint
from within itself. An alias named 'name_this()' is provided for brevity.
See the section on "Writing your own constraints" in DFV::Constraints
for details.
- success() method added to Results object. This is an easy way to check
that there were no missing or invalid fields. (Michael Peters).
- 'separator' was misspelled consistently in the the docs, code and tests.
The proper spelling as well as the legacy typo spelling are now
supported, although the typo'ed version is no longer documented, except
for here. :) Thanks to Terrence Brannon for spotting this.
- The 'msgs' hash in the profile is now validated to make sure it includes only
valid keys. This should help to spot some errors faster.
- ::Constraints::Upload now supports CGI::Simple, thanks to David Emery.
- Documentation for required_regexp has been improved. (William McKee)
- support for coderefs as default values (Marcello)
- Improved field_filters documentation, thanks to Andrew Brosnan.
[BUG FIXES]
- RT#12220: Canadian Province RE were updated. (Steve Simms).
- The preferred MIME type was not being returned by the 'file_format'
constraint for file uploads. This would have only affected cases where
the mime type sent by the browser differed from the one detected by DFV.
Thanks to Randal Schwartz for spotting this. (RT#12744).
- Profile re-use when constraint_regexp_map is used is now fixed
(Thanks to Cees Hek).
- The date_and_time constraint now understands this format: MMDDYYYY.
(RT#12111, thanks to JMAY)
- This one is worth a brief explanation. When this old syntax was used:
my ( $valid, $missing, $invalid, $unknown ) = Data::FormValidator->validate({}, {} );
$invalid would be returned as an empty arrayref if there were no
invalids. This return value was undocumented, and was later changed to
be 'undef' sometime between 3.50 and 3.70. However, I found that some
applications, including Cascade, depended on the undocumented return
value (which they shouldn't have).
I have now reverted the behavior to returning an empty arrayref in this
case, added a test for it, and updated the docs to be explicit about the
return value. This will save some people unexpected breakages when
upgrading DFV from a very old version with very old applications.
Those who use the $results object are unaffected.
[INTERALS]
- Add many failing TODO tests for built-in filters. See t/filters_builtin.t
- A new test was added to check that no warnings are emitted when an untainted
constraint returns undef (Michael Peters)
* 3.x releases after 3.63 happened on a different branch. All of the
improvements there should be reflected above.
3.63
[BUG FIXES]
- email validation was beefed up to not permit spaces with e-mails
or semi-colons to get through. Thanks to Jason Crome for some tests
to this, and the Mail::VRFY module, which was the source of the
improved RE.
[INTERNALS]
- Added a couple more test to the distribution which were missing in
the MANIFEST
3.62 Fri Oct 8 22:55:49 EST 2004
[INTERNALS]
- Removed experimental label from 'msgs' functionality.
- Beefed up test suite for dependencies and dependency_groups (Drew Taylor)
3.61 Mon Sep 20 18:10:23 EST 2004
[BUG FIXES]
- file_format from ::Constraints::Upload now handles non-existent files more
gracefully. (Evan A. Zacks)
3.60 Mon Sep 20 18:10:23 EST 2004
[BUG FIXES]
- file_max_bytes seemed to never be reporting failure.
3.59 Thu Jul 02 2004
[ENHANCEMENTS]
- Added more tests for Date constraints, and removed some more warnings (Michael Dorman)
[BUG FIXES]
- Fixed failing dependency check happening sometimes with a CGI object as input. (Drew Taylor)
3.58 Wed May 05 2004
[ENHANCEMENTS]
- Test suite has been migrated further to 'Test::More' style, and
all tests should complete without any warnings. A big thanks
goes to Gabor Szabo for this work.
3.57 Wed Apr 21 2004
[ENHANCEMENTS]
- 'validator_packages' now handles the importing of filters as well as constraints.
(Ronald Kimball)
- Added profile validation check for hashref style constraints. This will
make typos in key names easier to find. (Barry Hoggard, for demonstrating
the need.)
[BUG FIXES]
- no longer try to use a Carp module method without having it loaded. Instead,
we just call "die" now. (Gunnar Wolf)
3.56 Fri Apr 16 2004
[BUG FIXES]
- Fixed a mis-handling of unknown variables. Functionality brought inline
with documented behaviour (Richard Clarke)
- fixed bug image dimensions test in DFV::Constraints::Upload (Barry Hoggard)
[ENHANCEMENTS]
- added mention of HTML::Template::Associate::FormValidator to SEE ALSO
3.55 Wed Mar 25 2004
- better diagnostics when a filters fail.
3.54 Wed Mar 24 2004
[BUG FIXES]
- Fixed a mis-handling of invalid constraints introduced in 3.53 (Kevin Baker).
[ENHANCEMENTS]
- Refactored and improved some contraint related tests (Kevin Baker)
- clarified documentation for uploading constraints to mention that a
CGI.pm object is needed for input.
3.53 Mon Mar 22 2004
[BUG FIXES]
- Removed bug introduced in 3.52 that would have mis-handled files that had
some filters applied, and were then used as parameters in constraints for
multiple fields. (Kevin Baker)
- Possibly fixed t/24_upload.t test on Windows platforms (podmaster)
3.52 Sun Mar 21 2004
[BUG FIXES]
- After a constraint failed, future constraints relying on the same input
parameters may have falsely failed. (Kevin Baker)
- Untainting of false values (such as '0') was broken, and has been fixed.
(Kato Atsushi)
[ENHANCEMENTS]
- the profile syntax checker now reports all invalid keys, instead of just
the first one. Also, this code was refactored to be a bit faster. (Kevin Baker).
3.51 Thu Feb 26 2004
[THINGS THAT MIGHT BREAK YOUR CODE]
- The default formatting now uses the 'class' attribute in the <span> tag instead
of the 'id' attribute. This shouldn't be a big deal and may actually make
CSS styling easier, but it is a change. (Drew Taylor)
[BUG FIXES]
- In some cases empty fields were marked as 'valid' under mod_perl when they shouldn't be.
(Drew Taylor)
- Prevent unnecessary death due to $@ being set. (Kevin Baker)
- Fixed documentation typo related to writing your own constraints (Stewart Russell)
[ENHANCEMENTS]
- valid() can now return multiple values in array context.
- Mention Data::FormValidator::Util::HTML
- Added new t/constraints_builtin.t as a beginning of more through testing
of the built-in constraints.
- Several documentation updates (Kevin Baker)
3.50 Mon Jan 12 2004
- No functionality changes since 3.49_1, I'm just declaring it stable.
- I did sneak in the addition of a $VERSION in a couple included modules
where none had been provided before.
3.49_1
[THINGS THAT MIGHT BREAK YOUR CODE]
- A change has been made to Data::FormValidator::Constraints::Upload,
and only affects constraints in that module. Meta data will no longer
be provided by adding additional "_info" fields to the valid hash.
The same data is now available through the new meta() method of the
Data::FormValidator::Results object.
[NEW FEATURES]
- A new meta() method has been added to the Data::FormValidator::Results
class. This function allows constraints to communicate meta data
they discover about the values during the validation process.
For example, a file size may be discovered while checking to see
if the file size is too large. This is only currently being
used in Data::FormValidator::Constraints::Upload.
3.15 Sun Nov 03 2003
- Instead of explictly supporting CGI and Apache::Request objects, now any
object which has a param() method can be used. In particular, this allows
CGI::Simple to be used.
Before, if you used an object which was not CGI or Apache::Request, it would
treat the object as a hash reference and possibly work. Now it will die
with a diagnostic message in this case. (Cees Hek)
- Many documentation typo fixes (Cees Hek and Timothy Appnel)
- The dependency on Module::Build to install the distribution has been
removed. Now either Module::Build or the traditional MakeMaker system can
be used.
3.14
[BUG FIXES]
- fixed POD syntax issue in Constraints.pm that was causing a 'make test'
failure with Test::Pod >.96
3.13 Sun Nov 02 2003
[THINGS THAT MAY BREAK YOUR CODE]
- How the Regexp::Common integration has changed. The old functionality was
to match the regular expression as a substring of the field being
testing. Now it is more restrictive and only matches the entire string.
This is how all the other filters worked, and is probably how you expected
the Regexp::Common filters to work as well.
[BUG FIXES]
- uninitialized values in filters no longer cause warnings. (addresses bug #2751).
- documentation typo fixes
[ENHANCEMENTS]
- improved syntax to be compatible with Perl 5.005
- Added "cover" method to "Build" script. This uses Devel::Cover to generate
a coverage report for the script
- About 5 new tests for loading profiles from a file
3.12 Tue Jun 22 2003
- don't die in ::Upload if we can't find the tmp file.
Instead, the constraint fails and a warning is emitted.
- Added "image/pjpeg" to list of default mime types to use with file_format.
This is for the "progressive JPEG" format.
- Several documentation improvements, thanks to Mike Fragassi.
3.11 Tue May 27 2003
- Bug Fix: "qr" support now works better with older versions of Perl
(Mike Fragassi)
3.10 Mon May 26 2003
- New Feature: Any regular expression from Regexp::Common can now be used
directly as a named constraint. See Data::FormValidator::Constraints
documentation for an example syntax.
- Bug Fix: fixed imported_validators error that could occur if the same
profile was used more than once with the same DFV object.
- improved support and testing of 'qr' a bit.
3.01 Thu May 15 2003
This release fixes addresses a couple of issues related to the new support
for error message handling through msgs() and "qr" support. If you aren't
using these features, there's no need to upgrade.
- New Feature: Updated msgs() documentation and removed the requirement
that 'msgs' be defined in profile for default formatting to be used with
msgs() method call.
- Bug Fix: Using named constraints wtih the new "qr" support now works.
3.00 Sun May 11 2003
- New Feature: added debug option
- Make default msgs in "new" constructor work as it was supposed it 2.11_04
- Bug Fix: missing_optional_valid now works better when the input data comes
from a CGI.pm or Apache::Request object (David Ranney)
- Upload.pm syntax updated to no longer require Perl 5.6+ syntax
- New Feature: Upload.pm now first tries to use File::MMagic and MIME::Type
to more intelligently determine the file type and an appropriate extension.
2.11_04
- Major documentation overhaul. It should now be easier to browse and grok.
- New Feature: defaults can be passed to new() that will be used for all
forms made from that object.
- New Feature: Added support for quoting regular expressions using "qr"
instead of defining them as strings. This is now the preferred method.
Defining regular expressions as strings is deprecated but supported.
- New Feature: Friendly die statements when you have typos in filter
and constraint names. (Instead of mysterious suicide).
- Fixed syntax error in Upload.pm documentation
- Bug Fix: error checking in valid_file_format in Upload.pm
- Bug Fix: fixed bug related to returning constraint names introduced
in 2.11_03.
2.11_03
- The code has now been reorganized, following the module of HTML::FormValidator.
Filters, Constraints, and Results are now all handled in their own modules.
- The "msgs" error functional has now been re-designed, and is not
backwards compatible. Feedback on this experimental addition is encouraged.
- New Feature: Added ConstraintsFactory.pm module to distribution
2.11_02
- New Feature: Support for Apache::Request objects
- New Feature: Now when constraint_regexp_map is used
and one or more constraints is already defined, the new
matching constraint is added to the list of constraints
applied, rather than superceding the old one.
2.11_01 (A BETA release)
- New Feature: Added Data::FormValidator::Constraints::Upload
to the distribution.
- New Feature: Added Data::FormValidator::Constraints::Dates
to the distribution.
- The functionality of returning errors with the experimental
msgs feature has changed a bit. Now if you define multiple constraints,
the messages will always be returned as an array reference, instead of
when only there was more than one message. This should improve
integration with HTML::Template.
- New Feature: When using multiple constraints defined as hash references,
the "name" attribute will default to name of the constraint, if it is
being called by name.
- added documentation for writing your own validation routines.
- New Feature: Added 'valid' accessor/mutator method to manage
and manipulate the result set. This can be useful to modify
the result set from within a constraint.
- New Feature: Added "constraint_method" as an alternative
to "constraint" in the hash-based constraint definition.
Related to this, there are new accessor methods for use
inside of custom constraints:
get_input_data();
get_current_constraint_field();
get_current_constraint_value();
This whole arrangement brings support for multi-valued constraints with
constraint_regexp_map
- various documentation clean ups
2.10 Sun Apr 20 2003
- New Feature: (EXPERIMENTAL) Added support for returning error messages
for missing and invalid fields (Juan Jose Natera Abreu).
This piece of functionality is marked as experimental because
the interface may change in the near future, and it has not been
tested as well as rest of the module. Search in the documentation for
"msgs" for the details.
- New Feature: added support for building with Module::Build. For more
information on Module::Build, read this:
http://magnonel.guild.net/~schwern/talks/MakeMaker_Is_DOOMED/slides/
- New Feature: included SIGNATURE file in distribution for verification
with Module::Signature
2.04 Fri Apr 11 2003
- Bug Fix: multiple parameters passed to a constraint
were not being handled appropriately in some cases. (Markus)
- Bug Fix: Calling "validate" as a class method in combination
with using "validator_packages no longer causes a problem.
2.03 Thu Apr 10 2003
- Bug Fix: use of "delete" syntax with multiple values updated
to be backwards compatible with Perl 5.005 (Jonathan Buhacoff)
2.02 Wed Apr 09 2003
- Bug Fix: fixed bug with required_regexp and optional_regexp triggered
if there is no required_regexp or optional_regexp in the profile *and*
something exists in $@ (Dom)
2.01 Wed Apr 02 2003
- Bug Fix: Fix bug introduced in 1.93 which didn't handle
input values appropriately that were references to other things
besides arrays. (Boris Zentner)
2.00 Sat Mar 22 2003
- Bug Fix: Fixed bug where all code references were treated as if the were
using the 'multiple constraints' feature. This bug was likely introduced
in 1.93 (Chris Spiegel)
- Bug Fix: Fixed bug which caused a failllure when using some sides of
subroutine constraints within the "multiple constraints" syntax.
(Chris Spiegal}
1.93 Sun Mar 09 2003
- New Feature: Keys with multiple values are now supported
- New Feature: A CGI.pm object can now be used to provide the input data
- Bug Fix: pattern matching is faster in some cases now by not using $&
(Tony Stubblebine)
- Bug Fix: better support for using valid_* packages imported from other
packages. (Alexander Solovey)
- added link to demo site in documentation
- fixed typo in documentation example (Kato Atsushi)
- added link to Japanese translatation of the documents (Kato Atsushi)
1.92 Sun Dec 22 2002
- support for untainting data (Tony Stubblebine)
- documentation typo fixes (Charlie Garrison)
- validator_packages added to profile specification
allowing import of validation routine from other packages (Jeremy Muhlich)
- support for multiple constraints per field added (Jeremy Muhlich)
- support for literal values in constraint param field (Jeremy Muhlich)
1.91 Sun Oct 05 2002
- Added feature to require some fields in a group. (Brad Smithart)
- Bumped version to be greater than 1.9 to make CPAN.pm fetching work again
1.11 Sat Jun 29 2002
- Fixed small bug where constraint arrays were tested with truth rather than length. (Maurice Aubrey)
- Fixed documentation bug for american_phone validation (Dan Puro)
- Added documentation for simplified syntax using a class method
- Added profile syntax checking to help catch misspelled keys faster
1.10 Sun Apr 21 2002
- Added code for field_filter_regexp_map (Tim Noll)
1.9 Sun Feb 17 2002
- Fixed bug introduced in 1.8 which caused missing optional fields to
wrongly subjected to constraint checking
1.8 Thu Feb 14 2002
- Added link to Data::FormValidator::Tutorial in SEE ALSO section
- Added "missing_optional_valid" flag to profiles to allow missing
optional fields to be considered valid
1.7 Sat Nov 03 2001
- Fixed broken constraint_regexp_map implementation. If you
followed the example syntax in the documentation your regular
expression could have failed to match when it should have
succeeded. This feature now works as advertised in the
documentation.
- Updated documentation to reflect new mailing list and public
CVS server.
1.6 Sun Sep 23 2001
- Fixed bug with undefined lists by using empty lists instead (Ronald Kimball)
- added IP address validation routine (Juan Jose Natera Abreu)
1.5.1 Wed Jul 18 2001
- Updated version number to circumvent CPAN issue. No code changes.
1.5 Thu Jun 28 2001
- Added more flexible dependency system (Ade Olonoh)
1.4 Fri Jun 22 2001
- Fixed bug with code references (T.J. Mather)
1.3 Tue Jun 19 2001
- Now maintained by Mark Stosberg <mark@stosberg.com>
- Added constraint_regexp_map, required_regexp, optional_regexp
- filter functions are exported
- Renamed to Data::FormValidator from HTML::FormValidator
# arch-tag: Mark_Stosberg_<mark@summersault.com>--2004-03-20_18:34:51