From eb7ad4a5316649951e20c8df7e734f309e07e595 Mon Sep 17 00:00:00 2001 From: doy Date: Tue, 14 Apr 2009 22:58:34 -0500 Subject: stop using Moose::extends --- lib/MooseX/NonMoose.pm | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'lib') diff --git a/lib/MooseX/NonMoose.pm b/lib/MooseX/NonMoose.pm index 778adf8..488e5e5 100644 --- a/lib/MooseX/NonMoose.pm +++ b/lib/MooseX/NonMoose.pm @@ -8,17 +8,16 @@ Moose::Exporter->setup_import_methods( sub extends { my $caller = shift; - my @superclasses = @_; + Moose->throw_error("Must derive at least one class") unless @_; + + my @superclasses = @_; push @superclasses, 'Moose::Object' unless grep { $_->isa('Moose::Object') } @superclasses; - # XXX: should move the validation out of Moose::extends and into - # MMC::superclasses, and then just call that directly. will still need to - # check that @_ isn't empty in that case. - Moose::extends($caller, @superclasses); + my $caller_meta = Moose::Meta::Class->initialize($caller); + $caller_meta->superclasses(@superclasses); - my $caller_meta = Class::MOP::Class->initialize($caller); # we need to get the non-moose constructor from the superclass # of the class where this method actually exists, regardless of what class # we're calling it on -- cgit v1.2.3-54-g00ecf