X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMouse%2FMeta%2FRole.pm;h=5f16cf50848f9c83fb88ade81c7e14b457aa90ff;hb=123fd4f8368c8a468d735c9ee43ee871e22dc301;hp=a41d5a69c2b763df0d0a0e46bc93736eab4e5616;hpb=467c4815ec15a74e6aa4970b6d69bcb4a6fa0b7f;p=gitmo%2FMouse.git diff --git a/lib/Mouse/Meta/Role.pm b/lib/Mouse/Meta/Role.pm index a41d5a6..5f16cf5 100644 --- a/lib/Mouse/Meta/Role.pm +++ b/lib/Mouse/Meta/Role.pm @@ -129,7 +129,8 @@ sub _apply_methods{ } sub _apply_attributes{ - my($role, $consumer, $args) = @_; + #my($role, $consumer, $args) = @_; + my($role, $consumer) = @_; for my $attr_name ($role->get_attribute_list) { next if $consumer->has_attribute($attr_name); @@ -140,7 +141,9 @@ sub _apply_attributes{ } sub _apply_modifiers{ - my($role, $consumer, $args) = @_; + #my($role, $consumer, $args) = @_; + my($role, $consumer) = @_; + if(my $modifiers = $role->{override_method_modifiers}){ foreach my $method_name (keys %{$modifiers}){ @@ -165,12 +168,13 @@ sub _apply_modifiers{ } sub _append_roles{ - my($role, $consumer, $args) = @_; + #my($role, $consumer, $args) = @_; + my($role, $consumer) = @_; my $roles = $consumer->{roles}; foreach my $r($role, @{$role->get_roles}){ - if(!$consumer->does_role($r->name)){ + if(!$consumer->does_role($r)){ push @{$roles}, $r; } } @@ -242,7 +246,7 @@ sub apply { sub combine { - my($role_class, @role_specs) = @_; + my($self, @role_specs) = @_; require 'Mouse/Meta/Role/Composite.pm'; # we don't want to create its namespace @@ -288,6 +292,8 @@ sub does_role { (defined $role_name) || $self->throw_error("You must supply a role name to look for"); + $role_name = $role_name->name if ref $role_name; + # if we are it,.. then return true return 1 if $role_name eq $self->name; # otherwise.. check our children @@ -306,7 +312,7 @@ Mouse::Meta::Role - The Mouse Role metaclass =head1 VERSION -This document describes Mouse version 0.50_03 +This document describes Mouse version 0.50_09 =head1 SEE ALSO