require the minimum version of Class::Load that has load_first_existing_class
[gitmo/Moose.git] / lib / Moose / Util.pm
index da44827..8b4c34f 100644 (file)
@@ -3,6 +3,7 @@ package Moose::Util;
 use strict;
 use warnings;
 
+use Class::Load 0.07 qw(load_class load_first_existing_class);
 use Data::OptList;
 use Params::Util qw( _STRING );
 use Sub::Exporter;
@@ -44,7 +45,7 @@ sub find_meta { Class::MOP::class_of(@_) }
 sub does_role {
     my ($class_or_obj, $role) = @_;
 
-    if (try { $class_or_obj->can('does') }) {
+    if (try { $class_or_obj->isa('Moose::Object') }) {
         return $class_or_obj->does($role);
     }
 
@@ -122,7 +123,7 @@ sub _apply_all_roles {
             $meta = $role->[0];
         }
         else {
-            Class::MOP::load_class( $role->[0] , $role->[1] );
+            load_class( $role->[0] , $role->[1] );
             $meta = find_meta( $role->[0] );
         }
 
@@ -142,7 +143,7 @@ sub _apply_all_roles {
 
     return unless @role_metas;
 
-    Class::MOP::load_class($applicant)
+    load_class($applicant)
         unless blessed($applicant)
             || Class::MOP::class_of($applicant);
 
@@ -215,7 +216,7 @@ sub _build_alias_package_name {
             $type, $metaclass_name, $options{trait}
         );
 
-        my $loaded_class = Class::MOP::load_first_existing_class(
+        my $loaded_class = load_first_existing_class(
             $possible_full_name,
             $metaclass_name
         );
@@ -533,7 +534,7 @@ each of which can be followed by an optional hash reference of options
 
 =item B<ensure_all_roles($applicant, @roles)>
 
-This function is similar to L</apply_all_roles>, but only applies roles that
+This function is similar to C<apply_all_roles>, but only applies roles that
 C<$applicant> does not already consume.
 
 =item B<with_traits($class_name, @role_names)>