 |
|
| |
Declare::Constraints::Simple::Library::Base(3) |
User Contributed Perl Documentation |
Declare::Constraints::Simple::Library::Base(3) |
Declare::Constraints::Simple::Library::Base - Library Base Class
package My::Constraint::Library;
use warnings;
use strict;
# this installs the base class and helper functions
use Declare::Constraints::Simple-Library;
# we can also automagically provide other libraries
# to the importer
use base 'Declare::Constraints::Simple::Library::Numericals';
# with this we define a constraint to check a value
# against a serial number regular expression
constraint 'SomeSerial',
sub {
return sub {
return _true if $_[0] =~ /\d{3}-\d{3}-\d{4}/;
return _false('Not in SomeSerial format');
};
};
1;
This base class contains the common library functionalities. This includes
helper functions and install mechanisms.
Installs the base classes and helper functions into the
$target namespace. The
%CONSTRAINT_GENERATORS package variable of that class
will be used as storage for it's constraints.
Class method. Returns all constraints registered to the class.
Class method. Returns the constraint generator code reference registered under
$name. The call will raise a
"croak" if the generator could not be found.
Class method. This wraps the $generator in a closure
that provides stack and failure-collapsing decisions.
Class method. The actual registration method, used by
"constraint".
Note that some of the helper functions are prefixed with
"_". Although this means they are internal
functions, it is ok to call them, as they have a fixed API. They are not
distribution internal, but library internal, and only intended to be used from
inside constraints.
constraint 'Foo', sub { ... };
This registers a new constraint in the calling library. Note that
constraints have to return result objects. To do this, you can use
the helper functions "_result($bool,
$msg", _true() and _false($msg).
Returns a new result object. It's validity flag will depend on the
$bool argument. The $msg
argument is the error message to use on failure.
Returns a non-valid result object, with it's message set to
$msg.
Returns a valid result object.
Sets the current failure info to use in the stack info part.
This applies all constraints in the
"\@constraints" array reference to the
passed $value. You can optionally specify an
$info string to be used in the stack of the newly
created non-valid results.
Puts $value into an array reference and returns it, if
it isn't already one.
This is the internal version of the general
"Message" constraint. It sets the current
overriden message to $msg and executes the
$closure with @args as
arguments.
Applies the $constraint to @args
in a newly created scope named by $scope_name.
Stores the given $result unter the name
$name in $scope.
Returns the result named $name from
$scope.
Returns true only if such a result was registered already.
Declare::Constraints::Simple, Declare::Constraints::Simple::Library
Robert 'phaylon' Sedlacek
"<phaylon@dunkelheit.at>"
This module is free software, you can redistribute it and/or modify it under the
same terms as perl itself.
Visit the GSP FreeBSD Man Page Interface. Output converted with ManDoc.
|