X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMoose%2FMeta%2FTypeConstraint%2FRegistry.pm;h=f71fcfac46d669dc0a555afba929fad736794c52;hb=f9b1ab71234d11a9121de96c574ca980bbfb3eaa;hp=03602e0790d315a48d37d19b7103cfb211448e6d;hpb=4b2189ce8dae168787b635b71a918bd64461ed7a;p=gitmo%2FMoose.git diff --git a/lib/Moose/Meta/TypeConstraint/Registry.pm b/lib/Moose/Meta/TypeConstraint/Registry.pm index 03602e0..f71fcfa 100644 --- a/lib/Moose/Meta/TypeConstraint/Registry.pm +++ b/lib/Moose/Meta/TypeConstraint/Registry.pm @@ -7,7 +7,7 @@ use metaclass; use Scalar::Util 'blessed'; -our $VERSION = '0.72'; +our $VERSION = '0.74'; $VERSION = eval $VERSION; our $AUTHORITY = 'cpan:STEVAN'; @@ -74,42 +74,71 @@ Moose::Meta::TypeConstraint::Registry - registry for type constraints =head1 DESCRIPTION -This module is currently only use internally by L. -It can be used to create your own private type constraint registry as well, but -the details of that are currently left as an exercise to the reader. (One hint: -You can use the 'parent_registry' feature to connect your private version with the -base Moose registry and base Moose types will automagically be found too). +This class is a registry that maps type constraint names to +L objects. + +Currently, it is only used internally by +L, which creates a single global +registry. + +=head1 INHERITANCE + +C is a subclass of +L. =head1 METHODS =over 4 -=item B +=item B<< Moose::Meta::TypeConstraint::Registry->new(%options) >> + +This creates a new registry object based on the provided C<%options>: + +=over 8 + +=item * parent_registry + +This is an optional L +object. + +=item * type_constraints + +This is hash reference of type names to type objects. This is +optional. Constraints can be added to the registry after it is +created. + +=back + +=item B<< $registry->get_parent_registry >> + +Returns the registry's parent registry, if it has one. + +=item B<< $registry->has_parent_registry >> + +Returns true if the registry has a parent. -=item B +=item B<< $registry->set_parent_registry($registry) >> -=item B +Sets the parent registry. -=item B - -=item B +=item B<< $registry->get_type_constraint($type_name) >> -=item B +This returns the L object from the +registry for the given name, if one exists. -=item B +=item B<< $registry->has_type_constraint($type_name) >> -=item B +Returns true if the registry has a type of the given name. -Returns a type constraint object from the registry by name. Will return -false if the supplied type name cannot be found. +=item B<< $registry->add_type_constraint($type) >> -=item B +Adds a new L object to the registry. -Adds a type constraint object to the registry. Will throw an exception if -no type is supplied, or the supplied object does not inherit from -L +=item B<< $registry->find_type_constraint($type_name) >> -=item B +This method looks in the current registry for the named type. If the +type is not found, then this method will look in the registry's +parent, if it has one. =back