NAME
Brannigan::Validations - Built-in validation methods for Brannigan.
VERSION
version 1.1
DESCRIPTION
This module contains all built-in validation methods provided natively by the Brannigan input validation/parsing system.
GENERAL PURPOSE VALIDATION METHOD
All these methods receive the value of a parameter, and other values that explicilty define the requirements. They return a true value if the parameter's value passed the test, or a false value otherwise.
required( $value, $boolean )
If $boolean has a true value, this method will check that a required parameter was indeed provided; otherwise (i.e. if $boolean is not true) this method will simply return a true value to indicate success.
You should note that if a parameter is required, and a non-true value is received (i.e. 0 or the empty string ""), this method considers the requirement as fulfilled (i.e. it will return true). If you need to make sure your parameters receive true values, take a look at the is_true() validation method.
Please note that if a parameter is not required and indeed isn't provided with the input parameters, any other validation methods defined on the parameter will not be checked.
forbidden( $value, $boolean )
If $boolean has a true value, this method will check that a forbidden parameter was indeed NOT provided; otherwise (i.e. if $boolean has a false value), this method will do nothing and simply return true.
is_true( $value, $boolean )
If $boolean has a true value, this method will check that $value has a true value (so, $value cannot be 0 or the empty string); otherwise (i.e. if $boolean has a false value), this method does nothing and simply returns true.
length_between( $value, $min_length, $max_length )
Makes sure the value's length (stringwise) is inside the range of $min_length-$max_length, or, if the value is an array reference, makes sure it has between $min_length and $max_length items.
min_length( $value, $min_length )
Makes sure the value's length (stringwise) is at least $min_length, or, if the value is an array reference, makes sure it has at least $min_length items.
max_length( $value, $max_length )
Makes sure the value's length (stringwise) is no more than $max_length, or, if the value is an array reference, makes sure it has no more than $max_length items.
exact_length( $value, $length )
Makes sure the value's length (stringwise) is exactly $length, or, if the value is an array reference, makes sure it has exactly $exact_length items.
integer( $value, $boolean )
If boolean is true, makes sure the value is an integer.
value_between( $value, $min_value, $max_value )
Makes sure the value is between $min_value and $max_value.
min_value( $value, $min_value )
Makes sure the value is at least $min_value.
max_value( $value, $max )
Makes sure the value is no more than $max_value.
array( $value, $boolean )
If $boolean is true, makes sure the value is actually an array reference.
hash( $value, $boolean )
If $boolean is true, makes sure the value is actually a hash reference.
one_of( $value, @values )
Makes sure a parameter's value is one of the provided acceptable values.
matches( $value, $regex )
Returns true if $value matches the regular express (qr//) provided. Will return false if $regex is not a regular expression.
USEFUL PASSPHRASE VALIDATION METHODS
The following validations are useful for passphrase strength validations:
min_alpha( $value, $integer )
Returns a true value if $value is a string that has at least $integer alphabetic (A-Z and a-z) characters.
max_alpha( $value, $integer )
Returns a true value if $value is a string that has at most $integer alphabetic (A-Z and a-z) characters.
min_digits( $value, $integer )
Returns a true value if $value is a string that has at least $integer digits (0-9).
max_digits( $value, $integer )
Returns a true value if $value is a string that has at most $integer digits (0-9).
min_signs( $value, $integer )
Returns a true value if $value has at least $integer special or sign characters (e.g. %^&!@#, or basically anything that isn't A-Za-z0-9).
max_signs( $value, $integer )
Returns a true value if $value has at most $integer special or sign characters (e.g. %^&!@#, or basically anything that isn't A-Za-z0-9).
max_consec( $value, $integer )
Returns a true value if $value does not have a sequence of consecutive characters longer than $integer. Consequtive characters are either alphabetic (e.g. abcd) or numeric (e.g. 1234).
max_reps( $value, $integer )
Returns a true value if $value does not contain a sequence of a repeated character longer than $integer. So, for example, if $integer is 3, then "aaa901" will return true (even though there's a repetition of the 'a' character it is not longer than three), while "9bbbb01" will return false.
max_dict( $value, $integer, [ \@dict_files ] )
Returns a true value if $value does not contain a dictionary word longer than $integer. By default, this method will look for the Unix dict files /usr/dict/words, /usr/share/dict/words and /usr/share/dict/linux.words. You can supply more dictionary files to look for with an array reference of full paths.
So, for example, if $integer is 3, then "a9dog51" will return true (even though "dog" is a dictionary word, it is not longer than three), but "a9punk51" will return false, as "punk" is longer.
WARNING: this method is known to not work properly when used in certain environments such as PSGI, I'm investigating the issue.
SEE ALSO
AUTHOR
Ido Perlmuter, <ido at ido50 dot net>
BUGS
Please report any bugs or feature requests to bug-brannigan at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Brannigan. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
SUPPORT
You can find documentation for this module with the perldoc command.
perldoc Brannigan::Validations
You can also look for information at:
RT: CPAN's request tracker
AnnoCPAN: Annotated CPAN documentation
CPAN Ratings
Search CPAN
LICENSE AND COPYRIGHT
Copyright 2010-2013 Ido Perlmuter.
This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.
See http://dev.perl.org/licenses/ for more information.