summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2010-06-30 00:38:32 -0500
committerJesse Luehrs <doy@tozt.net>2010-06-30 00:38:32 -0500
commit46c48ccfa158c6ba099d7dcf16ae0e6dc870eb06 (patch)
tree61fa7d6ac33bd568116cb5b427a086330bdb05be
parent5dd74025d6be063af08875aa2656d1ee0fa605cf (diff)
downloadmoosex-nonmoose-46c48ccfa158c6ba099d7dcf16ae0e6dc870eb06.tar.gz
moosex-nonmoose-46c48ccfa158c6ba099d7dcf16ae0e6dc870eb06.zip
don't break if someone specifies a version to extends
-rw-r--r--lib/MooseX/NonMoose/Meta/Role/Class.pm2
-rw-r--r--t/60-extends-version.t21
2 files changed, 22 insertions, 1 deletions
diff --git a/lib/MooseX/NonMoose/Meta/Role/Class.pm b/lib/MooseX/NonMoose/Meta/Role/Class.pm
index 1b90c7d..e56056a 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 { $_->isa('Moose::Object') } @superclasses;
+ unless grep { blessed($_) && $_->isa('Moose::Object') } @superclasses;
my @ret = $self->$orig(@superclasses);
diff --git a/t/60-extends-version.t b/t/60-extends-version.t
new file mode 100644
index 0000000..7f1f97f
--- /dev/null
+++ b/t/60-extends-version.t
@@ -0,0 +1,21 @@
+#!/usr/bin/env perl
+use strict;
+use warnings;
+use Test::More;
+use Test::Exception;
+
+{
+ package Foo;
+ our $VERSION = '0.02';
+ sub new { bless {}, shift }
+}
+
+{
+ package Bar;
+ use Moose;
+ use MooseX::NonMoose;
+ ::lives_ok { extends 'Foo' => { -version => '0.02' } }
+ "specifying arguments to superclasses doesn't break";
+}
+
+done_testing;