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;
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
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 },
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;
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<MooseX::Types::Moose> or L<MooseX::Types::Common::String>.
+
+The L<MooseX::Types::Combine> module provides a simple API for combining a set
+of type libraries together.
+
=head1 SEE ALSO
L<Moose>,
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>
autarch: Dave Rolsky <autarch@urth.org>
-=head1 COPYRIGHT & LICENSE
-
-Copyright (c) 2007-2009 Robert Sedlacek <rs@474.at>
-
-This program is free software; you can redistribute it and/or modify
-it under the same terms as perl itself.
-
=cut
1;