X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMoose%2FMeta%2FTypeConstraint%2FParameterizable.pm;h=7e7929fbb71e7374e972b604c36ec495ea9d294a;hb=a3319906531cef2b41a87138e75461ced7a3394b;hp=203132f05f222fd999a3f0b136b8e6acd5f5c884;hpb=7a388c12358603c8a3bb6769915bc0e3e7da4f03;p=gitmo%2FMoose.git diff --git a/lib/Moose/Meta/TypeConstraint/Parameterizable.pm b/lib/Moose/Meta/TypeConstraint/Parameterizable.pm index 203132f..7e7929f 100644 --- a/lib/Moose/Meta/TypeConstraint/Parameterizable.pm +++ b/lib/Moose/Meta/TypeConstraint/Parameterizable.pm @@ -4,7 +4,7 @@ use strict; use warnings; use metaclass; -our $VERSION = '0.61'; +our $VERSION = '0.73_01'; $VERSION = eval $VERSION; our $AUTHORITY = 'cpan:STEVAN'; @@ -57,8 +57,10 @@ sub parameterize { if(my $parent = $self->parent) { if($parent->can('type_parameter')) { - $contained_tc->is_a_type_of($parent->type_parameter) - || Moose->throw_error("$type_parameter is not a subtype of ".$parent->type_parameter); + unless ( $contained_tc->is_a_type_of($parent->type_parameter) ) { + require Moose; + Moose->throw_error("$type_parameter is not a subtype of ".$parent->type_parameter); + } } } @@ -71,6 +73,7 @@ sub parameterize { ); } else { + require Moose; Moose->throw_error("The type parameter must be a Moose meta type"); } } @@ -85,26 +88,29 @@ __END__ =head1 NAME -Moose::Meta::TypeConstraint::Parameterizable - Higher Order type constraints for Moose +Moose::Meta::TypeConstraint::Parameterizable - Type constraints which can take a parameter (ArrayRef) -=head1 METHODS - -=over 4 +=head1 DESCRIPTION -=item B +This class represents a parameterizable type constraint. This is a +type constraint like C or C, that can be +parameterized and made more specific by specifying a contained +type. For example, instead of just an C of anything, you can +specify that is an C. -=item B +A parameterizable constraint should not be used as an attribute type +constraint. Instead, when parameterized it creates a +L which should be used. -=item B +=head1 INHERITANCE -=item B +C is a subclass of +L. -Given a single type constraint string, this method parses the string -and parameterizes the type based on the parsed string. - -=item B +=head1 METHODS -=back +This class is intentionally not documented because the API is +confusing and needs some work. =head1 BUGS @@ -118,7 +124,7 @@ Stevan Little Estevan@iinteractive.comE =head1 COPYRIGHT AND LICENSE -Copyright 2006-2008 by Infinity Interactive, Inc. +Copyright 2006-2009 by Infinity Interactive, Inc. L