Checking in changes prior to tagging of version 0.50_04. Changelog diff is:
[gitmo/Mouse.git] / lib / Mouse / Meta / Class.pm
index 607de86..6683d52 100644 (file)
@@ -96,7 +96,7 @@ sub _reconcile_with_superclass_meta {
 
     my @roles;
     foreach my $role($super_meta->meta->calculate_all_roles){
-        if(!$self->meta->does_role($role->name)){
+        if(!$self->meta->does_role($role)){
             push @roles, $role->name;
         }
     }
@@ -362,10 +362,7 @@ sub _install_modifier {
             my $into = $self->name;
             $install_modifier->($into, $type, $name, $code);
 
-            $self->add_method($name => do{
-                no strict 'refs';
-                \&{ $into . '::' . $name };
-            });
+            $self->add_method($name => Mouse::Util::get_code_ref($into, $name));
             return;
         };
     }
@@ -442,6 +439,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;
+
     for my $class ($self->linearized_isa) {
         my $meta = Mouse::Util::get_metaclass_by_name($class)
             or next;
@@ -464,7 +463,7 @@ Mouse::Meta::Class - The Mouse class metaclass
 
 =head1 VERSION
 
-This document describes Mouse version 0.50_03
+This document describes Mouse version 0.50_04
 
 =head1 METHODS