use namespace::clean -except => [qw( meta )];
use 5.008;
-our $VERSION = '0.12';
+our $VERSION = '0.17';
my $UndefMsg = q{Action for type '%s' not yet defined in library '%s'};
=head1 SYNOPSIS
PositiveInt NegativeInt
ArrayRefOfPositiveInt ArrayRefOfAtLeastThreeNegativeInts
LotsOfInnerConstraints StrOrArrayRef
+ MyDateTime
)];
# import builtin types
subtype StrOrArrayRef,
as Str|ArrayRef;
+ # class types
+
class_type 'DateTime';
- coerce 'DateTime',
+ # or better
+
+ class_type MyDateTime, { class => 'DateTime' };
+
+ coerce MyDateTime,
from HashRef,
via { DateTime->new(%$_) };
=cut
sub create_arged_type_constraint {
- my ($class, $name, @args) = @_;
- my $type_constraint = Moose::Util::TypeConstraints::find_or_create_type_constraint("$name");
- return $type_constraint->parameterize(@args);
+ my ($class, $name, $arg) = @_;
+
+ my $container_tc =
+ Moose::Util::TypeConstraints::find_or_create_type_constraint("$name");
+ my $contained_tc =
+ Moose::Util::TypeConstraints::find_or_create_type_constraint("$arg");
+
+ my $tc_name = $container_tc->name . '[' . $contained_tc->name . ']';
+
+ return Moose::Util::TypeConstraints::find_or_create_type_constraint($tc_name);
}
=head2 create_base_type_constraint ($name)
L<MooseX::Types::Moose>,
L<Sub::Exporter>
-=head1 AUTHOR AND COPYRIGHT
+=head1 ACKNOWLEDGEMENTS
+
+Many thanks to the C<#moose> cabal on C<irc.perl.org>.
+
+=head1 AUTHOR
+
+Robert "phaylon" Sedlacek <rs@474.at>
+
+=head1 CONTRIBUTORS
+
+jnapiorkowski: John Napiorkowski <jjnapiork@cpan.org>
+
+caelum: Rafael Kitover <rkitover@cpan.org>
-Robert 'phaylon' Sedlacek C<E<lt>rs@474.atE<gt>>, with many thanks to
-the C<#moose> cabal on C<irc.perl.org>.
+rafl: Florian Ragwitz <rafl@debian.org>
-Additional features by John Napiorkowski (jnapiorkowski) <jjnapiork@cpan.org>.
+=head1 COPYRIGHT & LICENSE
-=head1 LICENSE
+Copyright (c) 2007-2009 Robert Sedlacek
This program is free software; you can redistribute it and/or modify
it under the same terms as perl itself.