logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Declare::Constraints::Simple::Library::General - General Constraints

Author

       Robert 'phaylon' Sedlacek "<phaylon@dunkelheit.at>"

Constraints

Message($message,$constraint)
       Overrides the "message" set on the result object for failures in $constraint. For example:

         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

         my $constraint = Message( 'Foo',
                                   IsArrayRef( Message( 'Bar', IsInt )));

         my $result = $constraint->(['I am not an Integer']);
         print $result->message;

       will print "Bar", this

         my $result = $constraint->('I\'m not even an ArrayRef');
         print $result->message;

       will output "Foo".

   Scope($name,$constraint)
       Executes the passed $constraint in a newly generated scope named $name.

   SetResult($scope,$name,$constraint)
       Stores the result ov an evaluation of $constraint in $scope under $name.

   IsValid($scope,$name)
       Returns a true result if the result $name, which has to have been stored previously in the scope named
       $scope, was valid.

   ReturnTrue()
       Returns a true result.

   ReturnFalse($msg)
       Returns a false result containing $msg as error message.

Description

       This library is meant to contain those constraints and constraint-like elements that apply generally to
       the whole framework.

Name

       Declare::Constraints::Simple::Library::General - General Constraints

See Also

       Declare::Constraints::Simple, Declare::Constraints::Simple::Library

Synopsis

         # 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');

See Also