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.