use CMOP::class_of instead of CMOP::Class->initialize
[gitmo/MooseX-ClassAttribute.git] / lib / MooseX / ClassAttribute / Role / Meta / Class.pm
index 64545ab..eb798a3 100644 (file)
@@ -141,16 +141,11 @@ sub remove_class_attribute
 
 sub get_all_class_attributes
 {
-    shift->compute_all_applicable_class_attributes(@_);
-}
-
-sub compute_all_applicable_class_attributes
-{
     my $self = shift;
 
     my %attrs =
-        map { my $meta = Class::MOP::Class->initialize($_);
-              $meta->can('get_class_attribute_map')
+        map { my $meta = Class::MOP::class_of($_);
+              $meta && $meta->can('get_class_attribute_map')
               ? %{ $meta->get_class_attribute_map() }
               : ()
             }
@@ -159,6 +154,14 @@ sub compute_all_applicable_class_attributes
     return values %attrs;
 }
 
+sub compute_all_applicable_class_attributes
+{
+    warn 'The compute_all_applicable_class_attributes method has been deprecated.'
+        . " Use get_all_class_attributes instead.\n";
+
+    shift->compute_all_applicable_class_attributes(@_);
+}
+
 sub find_class_attribute_by_name
 {
     my $self = shift;
@@ -166,7 +169,8 @@ sub find_class_attribute_by_name
 
     foreach my $class ( $self->linearized_isa() )
     {
-        my $meta = Class::MOP::Class->initialize($class);
+        my $meta = Class::MOP::class_of($class)
+            or next;
 
         return $meta->get_class_attribute($name)
             if $meta->can('has_class_attribute') && $meta->has_class_attribute($name);
@@ -195,7 +199,7 @@ sub inline_class_slot_access
     my $self = shift;
     my $name = shift;
 
-    return '$' . $self->_class_attribute_var_name . '{' . $name . '}';
+    return '$' . $self->_class_attribute_var_name . '{"' . quotemeta($name) . '"}';
 }
 
 sub inline_get_class_slot_value
@@ -292,9 +296,7 @@ along with its accessor methods.
 
 =head2 $meta->get_all_class_attributes()
 
-=head2 $meta->compute_all_applicable_class_attributes()
-
-These methods return a list of attribute objects for the class and all
+This method returns a list of attribute objects for the class and all
 its parent classes.
 
 =head2 $meta->find_class_attribute_by_name($name)