X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMooseX%2FTypes.pm;h=c0118151169547ca08c6da717c82c9edcc28c645;hb=7b880bf1299a85294d3f0f104d81ceb62fad38fa;hp=f1a016d5352439b9e9d4bff840d0aeb040c484e2;hpb=e2d7e14bfc22917ac67b47eb3592b5d0ceb6f8f9;p=gitmo%2FMooseX-Types.git diff --git a/lib/MooseX/Types.pm b/lib/MooseX/Types.pm index f1a016d..c011815 100644 --- a/lib/MooseX/Types.pm +++ b/lib/MooseX/Types.pm @@ -1,11 +1,7 @@ package MooseX::Types; use Moose; -=head1 NAME - -MooseX::Types - Organise your Moose types in libraries - -=cut +# ABSTRACT: Organise your Moose types in libraries use Moose::Util::TypeConstraints; use MooseX::Types::TypeDecorator; @@ -20,7 +16,6 @@ use Scalar::Util 'reftype'; use namespace::clean -except => [qw( meta )]; use 5.008; -our $VERSION = '0.24'; my $UndefMsg = q{Action for type '%s' not yet defined in library '%s'}; =head1 SYNOPSIS @@ -30,23 +25,27 @@ my $UndefMsg = q{Action for type '%s' not yet defined in library '%s'}; package MyLibrary; # predeclare our own types - use MooseX::Types - -declare => [qw( - PositiveInt NegativeInt - ArrayRefOfPositiveInt ArrayRefOfAtLeastThreeNegativeInts - LotsOfInnerConstraints StrOrArrayRef - MyDateTime - )]; + use MooseX::Types -declare => [ + qw( + PositiveInt + NegativeInt + ArrayRefOfPositiveInt + ArrayRefOfAtLeastThreeNegativeInts + LotsOfInnerConstraints + StrOrArrayRef + MyDateTime + ) + ]; # import builtin types use MooseX::Types::Moose qw/Int HashRef/; # type definition. - subtype PositiveInt, - as Int, + subtype PositiveInt, + as Int, where { $_ > 0 }, message { "Int is not larger than 0" }; - + subtype NegativeInt, as Int, where { $_ < 0 }, @@ -58,19 +57,19 @@ my $UndefMsg = q{Action for type '%s' not yet defined in library '%s'}; via { 1 }; # with parameterized constraints. - + subtype ArrayRefOfPositiveInt, as ArrayRef[PositiveInt]; - + subtype ArrayRefOfAtLeastThreeNegativeInts, as ArrayRef[NegativeInt], where { scalar(@$_) > 2 }; subtype LotsOfInnerConstraints, as ArrayRef[ArrayRef[HashRef[Int]]]; - + # with TypeConstraint Unions - + subtype StrOrArrayRef, as Str|ArrayRef; @@ -571,7 +570,15 @@ This is a workaround and I am exploring how to make these modules work better together. I realize this workaround will lead a lot of duplication in your export declarations and will be onerous for large type libraries. Patches and detailed test cases welcome. See the tests directory for a start on this. - + +=head1 COMBINING TYPE LIBRARIES + +You may want to combine a set of types for your application with other type +libraries, like L or L. + +The L module provides a simple API for combining a set +of type libraries together. + =head1 SEE ALSO L, @@ -583,10 +590,6 @@ L Many thanks to the C<#moose> cabal on C. -=head1 AUTHOR - -Robert "phaylon" Sedlacek - =head1 CONTRIBUTORS jnapiorkowski: John Napiorkowski @@ -599,13 +602,6 @@ hdp: Hans Dieter Pearcey autarch: Dave Rolsky -=head1 COPYRIGHT & 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. - =cut 1;