aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRafael Kitover <rkitover@cpan.org>2010-08-04 23:09:54 -0400
committerRafael Kitover <rkitover@cpan.org>2010-08-04 23:09:54 -0400
commit57d1fb144c7288216e33842337a21394703170b5 (patch)
tree1f2d7642b8e24834e537bbcbab406ec8ce08b4ae
parent13005566e6870be3ac9c1cd688f1e73b962eedf1 (diff)
downloadmx-alwayscoerce-57d1fb144c7288216e33842337a21394703170b5.tar.gz
mx-alwayscoerce-57d1fb144c7288216e33842337a21394703170b5.zip
support class_has with no isa, with test
-rw-r--r--Changes2
-rw-r--r--lib/MooseX/AlwaysCoerce.pm4
-rw-r--r--t/01-basic.t2
3 files changed, 7 insertions, 1 deletions
diff --git a/Changes b/Changes
index 9ef04c8..9164c45 100644
--- a/Changes
+++ b/Changes
@@ -1,5 +1,7 @@
Revision history for MooseX-AlwaysCoerce
+ - support class_has with no isa (Karen Etheridge)
+
0.06 2010-07-28 00:58:50
- Use modern Moose APIs, to avoid warnings with Moose 1.09 (Karen Etheridge)
diff --git a/lib/MooseX/AlwaysCoerce.pm b/lib/MooseX/AlwaysCoerce.pm
index 2738638..3b1893c 100644
--- a/lib/MooseX/AlwaysCoerce.pm
+++ b/lib/MooseX/AlwaysCoerce.pm
@@ -77,8 +77,10 @@ Use C<< coerce => 0 >> to disable a coercion explicitly.
my $self = shift;
my ($what, %opts) = @_;
+ return unless exists $opts{isa};
+
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;
+ $opts{coerce} = 1 if not exists $opts{coerce} and $type->has_coercion;
$self->$next($what, %opts);
};
diff --git a/t/01-basic.t b/t/01-basic.t
index b203699..f6d017f 100644
--- a/t/01-basic.t
+++ b/t/01-basic.t
@@ -28,6 +28,8 @@ use Test::NoWarnings;
has uncoerced_attr => (is => 'rw', isa => 'Uncoerced');
class_has uncoerced_class_attr => (is => 'rw', isa => 'Uncoerced');
+
+ class_has untyped_class_attr => (is => 'rw');
}
ok( (my $instance = MyClass->new), 'instance' );