X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMoose%2FUtil%2FMetaRole.pm;h=e44cba65aecc30798c5c17bcdc1d77e6f62cd45d;hb=dbe21639d532a07229d0beeffafafba66a7e26f5;hp=d78cff791f9dcffa0c83bd95fddf6f984c5a6255;hpb=9f6053681287929ddbaaf80ecd4d53c8863617b2;p=gitmo%2FMoose.git diff --git a/lib/Moose/Util/MetaRole.pm b/lib/Moose/Util/MetaRole.pm index d78cff7..e44cba6 100644 --- a/lib/Moose/Util/MetaRole.pm +++ b/lib/Moose/Util/MetaRole.pm @@ -3,7 +3,7 @@ package Moose::Util::MetaRole; use strict; use warnings; -our $VERSION = '0.73'; +our $VERSION = '0.79'; $VERSION = eval $VERSION; our $AUTHORITY = 'cpan:STEVAN'; @@ -43,7 +43,7 @@ sub _make_new_metaclass { my $for = shift; my $options = shift; - return $for->meta() + return Class::MOP::class_of($for) unless grep { exists $options->{ $_ . '_roles' } } qw( metaclass @@ -53,10 +53,9 @@ sub _make_new_metaclass { instance_metaclass ); + my $old_meta = Class::MOP::class_of($for); my $new_metaclass - = _make_new_class( ref $for->meta(), $options->{metaclass_roles} ); - - my $old_meta = $for->meta(); + = _make_new_class( ref $old_meta, $options->{metaclass_roles} ); # This could get called for a Moose::Meta::Role as well as a Moose::Meta::Class my %classes = map { @@ -78,7 +77,7 @@ sub apply_base_class_roles { my $for = $options{for_class}; - my $meta = $for->meta(); + my $meta = Class::MOP::class_of($for); my $new_base = _make_new_class( $for, @@ -121,9 +120,6 @@ Moose::Util::MetaRole - Apply roles to any metaclass, as well as the object base package MyApp::Moose; - use strict; - use warnings; - use Moose (); use Moose::Exporter; use Moose::Util::MetaRole;