X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMooseX%2FAlwaysCoerce.pm;h=e5ffeeac27ed2e679d8a95ee8fa3be3b017466c4;hb=9e40d3662cb2d194951fe95156a4aa8806c2f794;hp=2738638927429033054c530d030a4dd370a7bc91;hpb=8210a2f9207a60a672e8730cb188a072c5d2d2a2;p=gitmo%2FMooseX-AlwaysCoerce.git diff --git a/lib/MooseX/AlwaysCoerce.pm b/lib/MooseX/AlwaysCoerce.pm index 2738638..e5ffeea 100644 --- a/lib/MooseX/AlwaysCoerce.pm +++ b/lib/MooseX/AlwaysCoerce.pm @@ -18,11 +18,11 @@ MooseX::AlwaysCoerce - Automatically enable coercions for Moose attributes =head1 VERSION -Version 0.07 +Version 0.12 =cut -our $VERSION = '0.07'; +our $VERSION = '0.13'; =head1 SYNOPSIS @@ -62,7 +62,7 @@ Use C<< coerce => 0 >> to disable a coercion explicitly. return $current_val if defined $current_val; - return 1 if $self->type_constraint->has_coercion; + return 1 if $self->type_constraint && $self->type_constraint->has_coercion; return 0; }; @@ -70,15 +70,16 @@ Use C<< coerce => 0 >> to disable a coercion explicitly. use namespace::autoclean; use Moose::Role; use Moose::Util::TypeConstraints; - use MooseX::ClassAttribute; around add_class_attribute => sub { my $next = shift; my $self = shift; my ($what, %opts) = @_; - my $type = Moose::Util::TypeConstraints::find_or_parse_type_constraint($opts{isa}); - $opts{coerce} = 1 if $type and not exists $opts{coerce} and $type->has_coercion; + if (exists $opts{isa}) { + my $type = Moose::Util::TypeConstraints::find_or_parse_type_constraint($opts{isa}); + $opts{coerce} = 1 if not exists $opts{coerce} and $type->has_coercion; + } $self->$next($what, %opts); }; @@ -165,3 +166,4 @@ under the same terms as Perl itself. =cut 1; # End of MooseX::AlwaysCoerce +# vim:et sts=4 sw=4 tw=0: