diff options
-rw-r--r-- | Changes | 3 | ||||
-rw-r--r-- | lib/MooseX/NonMoose/Meta/Role/Class.pm | 2 | ||||
-rw-r--r-- | t/07-extends-moose-object.t | 33 |
3 files changed, 37 insertions, 1 deletions
@@ -1,6 +1,9 @@ Revision history for MooseX-NonMoose {{$NEXT}} + - Actually use the right test. + +0.10 2010-06-30 - Don't break if someone specifies a version to extends. 0.09 2010-06-15 diff --git a/lib/MooseX/NonMoose/Meta/Role/Class.pm b/lib/MooseX/NonMoose/Meta/Role/Class.pm index e56056a..1fac4a5 100644 --- a/lib/MooseX/NonMoose/Meta/Role/Class.pm +++ b/lib/MooseX/NonMoose/Meta/Role/Class.pm @@ -219,7 +219,7 @@ around superclasses => sub { my @superclasses = @_; push @superclasses, 'Moose::Object' - unless grep { blessed($_) && $_->isa('Moose::Object') } @superclasses; + unless grep { !ref($_) && $_->isa('Moose::Object') } @superclasses; my @ret = $self->$orig(@superclasses); diff --git a/t/07-extends-moose-object.t b/t/07-extends-moose-object.t new file mode 100644 index 0000000..699dfe5 --- /dev/null +++ b/t/07-extends-moose-object.t @@ -0,0 +1,33 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use Test::More; + +{ + package Foo; + sub new { bless {}, shift } +} + +{ + package Foo::Sub; + use Moose; + use MooseX::NonMoose; + extends 'Foo'; +} + +{ + package Bar; + use Moose; +} + +{ + package Bar::Sub; + use Moose; + use MooseX::NonMoose; + extends 'Bar'; +} + +is_deeply(\@Foo::Sub::ISA, ['Foo', 'Moose::Object'], "Moose::Object was added"); +is_deeply(\@Bar::Sub::ISA, ['Bar'], "Moose::Object wasn't added"); + +done_testing; |