X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMouse%2FMeta%2FRole.pm;h=5d1c57fea6de718f53a6aaf627c3be03fa062797;hb=cfa6d970245f1bbc9330c0e4bb3342356a43ac16;hp=87aaa8ea31e639badb9bf911944f4b3e96e16abf;hpb=c6d8f5caf4ee3eccf6d417ddb19d51ebdc209112;p=gitmo%2FMouse.git diff --git a/lib/Mouse/Meta/Role.pm b/lib/Mouse/Meta/Role.pm index 87aaa8e..5d1c57f 100644 --- a/lib/Mouse/Meta/Role.pm +++ b/lib/Mouse/Meta/Role.pm @@ -8,17 +8,6 @@ our @ISA = qw(Mouse::Meta::Module); sub method_metaclass(){ 'Mouse::Meta::Role::Method' } # required for get_method() -# XXX: for backward compatibility -my %foreign = map{ $_ => undef } qw(Mouse::Role Carp Scalar::Util UNIVERSAL); -sub _code_is_mine{ - my($self, $code) = @_; - - my($package, $name) = get_code_info($code); - - return $package && !exists $foreign{$package}; -} - - sub _construct_meta { my $class = shift; @@ -29,10 +18,12 @@ sub _construct_meta { $args{required_methods} ||= []; $args{roles} ||= []; -# return Mouse::Meta::Class->initialize($class)->new_object(%args) -# if $class ne __PACKAGE__; + my $self = bless \%args, ref($class) || $class; + if($class ne __PACKAGE__){ + $self->meta->_initialize_object($self, \%args); + } - return bless \%args, ref($class) || $class; + return $self; } sub create_anon_role{