summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authordoy <doy@tozt.net>2009-04-08 00:09:55 -0500
committerdoy <doy@tozt.net>2009-04-08 00:09:55 -0500
commit42b51eaa66c76046918efa04a46e36b73251414a (patch)
treec641465c97f7619de993f25247f3f01bad8af50b /lib
parent77ca40a1e55f9e082a08480d40e8099d34cdc80c (diff)
downloadmoosex-nonmoose-42b51eaa66c76046918efa04a46e36b73251414a.tar.gz
moosex-nonmoose-42b51eaa66c76046918efa04a46e36b73251414a.zip
error if we try to extend moose classes
Diffstat (limited to 'lib')
-rw-r--r--lib/MooseX/NonMoose.pm11
1 files changed, 9 insertions, 2 deletions
diff --git a/lib/MooseX/NonMoose.pm b/lib/MooseX/NonMoose.pm
index d3004e0..7a41b2d 100644
--- a/lib/MooseX/NonMoose.pm
+++ b/lib/MooseX/NonMoose.pm
@@ -8,8 +8,15 @@ Moose::Exporter->setup_import_methods(
sub extends_nonmoose {
my $caller = shift;
- my @superclasses = (@_, 'Moose::Object');
- Moose::extends($caller, @superclasses);
+
+ my @moose_classes = grep { $_->isa('Moose::Object') } @_;
+ Moose->throw_error(
+ 'extends_nonmoose can only be used on non-Moose classes; '
+ . join(', ', @moose_classes)
+ . (@moose_classes == 1 ? ' is a Moose class' : ' are Moose classes')
+ ) if @moose_classes;
+
+ Moose::extends($caller, @_, 'Moose::Object');
Class::MOP::Class->initialize($caller)->add_method(new => sub {
my $class = shift;
my $meta = Class::MOP::Class->initialize($class);