aboutsummaryrefslogtreecommitdiffstats
path: root/lib/MooseX
diff options
context:
space:
mode:
authorRafael Kitover <rkitover@cpan.org>2009-06-16 10:49:47 -0700
committerRafael Kitover <rkitover@cpan.org>2009-06-16 10:49:47 -0700
commit44b44091fa8a04bbadc986236b09e7d1bd117965 (patch)
tree6c16c832078848d1901177a6b53b568b9a154e2d /lib/MooseX
parent2429fb7e636733a986bb4211b1e049418284c25e (diff)
downloadmx-alwayscoerce-44b44091fa8a04bbadc986236b09e7d1bd117965.tar.gz
mx-alwayscoerce-44b44091fa8a04bbadc986236b09e7d1bd117965.zip
make coerce => 0 work for class_has
Diffstat (limited to 'lib/MooseX')
-rw-r--r--lib/MooseX/AlwaysCoerce.pm8
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);
};
}