diff options
author | Rafael Kitover <rkitover@cpan.org> | 2009-06-16 10:49:47 -0700 |
---|---|---|
committer | Rafael Kitover <rkitover@cpan.org> | 2009-06-16 10:49:47 -0700 |
commit | 44b44091fa8a04bbadc986236b09e7d1bd117965 (patch) | |
tree | 6c16c832078848d1901177a6b53b568b9a154e2d /lib | |
parent | 2429fb7e636733a986bb4211b1e049418284c25e (diff) | |
download | mx-alwayscoerce-44b44091fa8a04bbadc986236b09e7d1bd117965.tar.gz mx-alwayscoerce-44b44091fa8a04bbadc986236b09e7d1bd117965.zip |
make coerce => 0 work for class_has
Diffstat (limited to 'lib')
-rw-r--r-- | lib/MooseX/AlwaysCoerce.pm | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/MooseX/AlwaysCoerce.pm b/lib/MooseX/AlwaysCoerce.pm index ab98a64..4247664 100644 --- a/lib/MooseX/AlwaysCoerce.pm +++ b/lib/MooseX/AlwaysCoerce.pm @@ -45,6 +45,8 @@ coercion not run?" only to find out that you forgot C<< coerce => 1 >> ? Just load this module in your L<Moose> class and C<< coerce => 1 >> will be enabled for every attribute and class attribute automatically. +Use C<< coerce => 0 >> to disable a coercion explicitly. + =cut { @@ -61,7 +63,11 @@ enabled for every attribute and class attribute automatically. around add_class_attribute => sub { my $next = shift; my $self = shift; - $self->$next(@_, coerce => 1); + my ($what, %opts) = @_; + + $opts{coerce} = 1 unless exists $opts{coerce}; + + $self->$next($what, %opts); }; } |