Declare::Constraints::Simple::Library::Base man page on Fedora

Man page or keyword search:  
man Server   31170 pages
apropos Keyword Search (all sections)
Output format
Fedora logo
[printable version]

Declare::Constraints::UserlContrDeclare::Constraints::Simple::Library::Base(3)

NAME
       Declare::Constraints::Simple::Library::Base - Library Base Class

SYNOPSIS
	 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;

DESCRIPTION
       This base class contains the common library functionalities. This
       includes helper functions and install mechanisms.

METHODS
   install_into($target)
       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.

   fetch_constraint_declarations()
       Class method. Returns all constraints registered to the class.

   fetch_constraint_generator($name)
       Class method. Returns the constraint generator code reference
       registered under $name. The call will raise a "croak" if the generator
       could not be found.

   prepare_generator($constraint_name, $generator)
       Class method. This wraps the $generator in a closure that provides
       stack and failure-collapsing decisions.

   add_constraint_generator($name, $code)
       Class method. The actual registration method, used by "constraint".

HELPER FUNCTIONS
       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($name, $code)
	 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).

   _result($bool, $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.

   _false($msg)
       Returns a non-valid result object, with it's message set to $msg.

   _true()
       Returns a valid result object.

   _info($info)
       Sets the current failure info to use in the stack info part.

   _apply_checks($value, \@constraints, [$info])
       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.

   _listify($value)
       Puts $value into an array reference and returns it, if it isn't already
       one.

   _with_message($msg, $closure, @args)
       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.

   _with_scope($scope_name, $constraint, @args)
       Applies the $constraint to @args in a newly created scope named by
       $scope_name.

   _set_result($scope, $name, $result)
       Stores the given $result unter the name $name in $scope.

   _get_result($scope, $name)
       Returns the result named $name from $scope.

   _has_result($scope, $name)
       Returns true only if such a result was registered already.

SEE ALSO
       Declare::Constraints::Simple, Declare::Constraints::Simple::Library

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

LICENSE AND COPYRIGHT
       This module is free software, you can redistribute it and/or modify it
       under the same terms as perl itself.

perl v5.14.1			Declare::Constraints::Simple::Library::Base(3)
[top]

List of man pages available for Fedora

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net