Declare::Constraints::Simple::Library::General - General Constraints
# custom error messages my $constraint = And( Message( 'You need to specify a Value', IsDefined ), Message( 'The specified Value is not an Int', IsInt )); # build results my $valid = ReturnTrue; my $invalid = ReturnFalse('Just because');
This library is meant to contain those constraints and constraint-like elements that apply generally to the whole framework.
Overrides the message set on the result object for failures in $constraint. For example:
message
$constraint
my $message = 'How hard is it to give me a number?'; my $constraint = Message($message, IsNumber); my $result = $constraint->('duh...'); print $result->message, "\n";
The Message constraint overrides the error message returned by it's whole subtree, however, the Message specification nearest to the point of failure will win. So while this
Message
my $constraint = Message( 'Foo', IsArrayRef( Message( 'Bar', IsInt ))); my $result = $constraint->(['I am not an Integer']); print $result->message;
will print Bar, this
Bar
my $result = $constraint->('I\'m not even an ArrayRef'); print $result->message;
will output Foo.
Foo
Executes the passed $constraint in a newly generated scope named $name.
$name
Stores the result ov an evaluation of $constraint in $scope under $name.
$scope
Returns a true result if the result $name, which has to have been stored previously in the scope named $scope, was valid.
Returns a true result.
Returns a false result containing $msg as error message.
$msg
Declare::Constraints::Simple, Declare::Constraints::Simple::Library
Robert 'phaylon' Sedlacek <phaylon@dunkelheit.at>
<phaylon@dunkelheit.at>
This module is free software, you can redistribute it and/or modify it under the same terms as perl itself.
To install Declare::Constraints::Simple, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Declare::Constraints::Simple
CPAN shell
perl -MCPAN -e shell install Declare::Constraints::Simple
For more information on module installation, please visit the detailed CPAN module installation guide.