X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMooseX%2FTypes%2FTypeDecorator.pm;h=3eba05dc4c377373a198483a240b40665a5b3537;hb=5a1fdc82b77fa6c2b8491b540d1625cbf63b596e;hp=a94c5c34656cb227eb69541ad89d8c2dab85b56c;hpb=b55332a8c759716048630d99e936c3817d68de73;p=gitmo%2FMooseX-Types.git diff --git a/lib/MooseX/Types/TypeDecorator.pm b/lib/MooseX/Types/TypeDecorator.pm index a94c5c3..3eba05d 100644 --- a/lib/MooseX/Types/TypeDecorator.pm +++ b/lib/MooseX/Types/TypeDecorator.pm @@ -1,15 +1,21 @@ package MooseX::Types::TypeDecorator; +#ABSTRACT: Wraps Moose::Meta::TypeConstraint objects with added features + use strict; use warnings; - use Carp::Clan qw( ^MooseX::Types ); use Moose::Util::TypeConstraints (); use Moose::Meta::TypeConstraint::Union; use Scalar::Util qw(blessed); use overload( + '0+' => sub { + my $self = shift @_; + my $tc = $self->{__type_constraint}; + return 0+$tc; + }, '""' => sub { my $self = shift @_; if(blessed $self) { @@ -18,6 +24,7 @@ use overload( return "$self"; } }, + bool => sub { 1 }, '|' => sub { ## It's kind of ugly that we need to know about Union Types, but this @@ -45,10 +52,6 @@ use overload( ); -=head1 NAME - -MooseX::Types::TypeDecorator - More flexible access to a Type Constraint - =head1 DESCRIPTION This is a decorator object that contains an underlying type constraint. We use @@ -180,7 +183,7 @@ sub DESTROY { =head2 AUTOLOAD -Delegate to the decorator targe +Delegate to the decorator target. =cut @@ -194,7 +197,6 @@ sub AUTOLOAD { ## MooseX::Types::UndefinedType which AUTOLOADs during autovivication. my $return; - eval { $return = $self->__type_constraint->$method(@args); }; if($@) { @@ -204,10 +206,6 @@ sub AUTOLOAD { } } -=head1 AUTHOR - -See L. - =head1 LICENSE This program is free software; you can redistribute it and/or modify