Changes to work with (and require) Moose 0.73_01
[gitmo/MooseX-ClassAttribute.git] / lib / MooseX / ClassAttribute / Meta / Method / Accessor.pm
index 506f736..e446ee6 100644 (file)
@@ -8,14 +8,13 @@ use Moose;
 extends 'Moose::Meta::Method::Accessor';
 
 
-sub generate_predicate_method_inline
+sub _generate_predicate_method_inline
 {
     my $attr      = (shift)->associated_attribute;
-    my $attr_name = $attr->name;
 
     my $code =
         eval 'sub {'
-        . $attr->associated_class()->inline_is_class_slot_initialized( "'$attr_name'" )
+        . $attr->associated_class()->inline_is_class_slot_initialized( $attr->name() )
         . '}';
 
     confess "Could not generate inline predicate because : $@" if $@;
@@ -23,15 +22,14 @@ sub generate_predicate_method_inline
     return $code;
 }
 
-sub generate_clearer_method_inline
+sub _generate_clearer_method_inline
 {
     my $attr          = (shift)->associated_attribute;
-    my $attr_name     = $attr->name;
     my $meta_instance = $attr->associated_class->instance_metaclass;
 
     my $code =
         eval 'sub {'
-        . $attr->associated_class()->inline_deinitialize_class_slot( "'$attr_name'" )
+        . $attr->associated_class()->inline_deinitialize_class_slot( $attr->name() )
         . '}';
 
     confess "Could not generate inline clearer because : $@" if $@;
@@ -47,12 +45,10 @@ sub _inline_store
 
     my $attr = $self->associated_attribute();
 
-    my $slot_name = sprintf "'%s'", $attr->slots();
-
     my $meta = $attr->associated_class();
 
-    my $code = $meta->inline_set_class_slot_value($slot_name, $value)    . ";";
-    $code   .= $meta->inline_weaken_class_slot_value($slot_name, $value) . ";"
+    my $code = $meta->inline_set_class_slot_value( $attr->slots(), $value )    . ";";
+    $code   .= $meta->inline_weaken_class_slot_value( $attr->slots(), $value ) . ";"
         if $attr->is_weak_ref();
 
     return $code;
@@ -65,9 +61,7 @@ sub _inline_get
     my $attr = $self->associated_attribute;
     my $meta = $attr->associated_class();
 
-    my $slot_name = sprintf "'%s'", $attr->slots;
-
-    return $meta->inline_get_class_slot_value($slot_name);
+    return $meta->inline_get_class_slot_value( $attr->slots() );
 }
 
 sub _inline_access
@@ -77,9 +71,7 @@ sub _inline_access
     my $attr = $self->associated_attribute;
     my $meta = $attr->associated_class();
 
-    my $slot_name = sprintf "'%s'", $attr->slots;
-
-    return $meta->inline_class_slot_access($slot_name);
+    return $meta->inline_class_slot_access( $attr->slots() );
 }
 
 sub _inline_has
@@ -89,9 +81,7 @@ sub _inline_has
     my $attr = $self->associated_attribute;
     my $meta = $attr->associated_class();
 
-    my $slot_name = sprintf "'%s'", $attr->slots;
-
-    return $meta->inline_is_class_slot_initialized($slot_name);
+    return $meta->inline_is_class_slot_initialized( $attr->slots() );
 }
 
 sub _inline_init_slot
@@ -114,3 +104,30 @@ no Moose;
 
 1;
 
+=pod
+
+=head1 NAME
+
+MooseX::ClassAttribute::Meta::Method::Accessor - Accessor method generation for class attributes
+
+=head1 DESCRIPTION
+
+This class overrides L<Moose::Meta::Method::Accessor> to do code
+generation properly for class attributes.
+
+=head1 AUTHOR
+
+Dave Rolsky, C<< <autarch@urth.org> >>
+
+=head1 BUGS
+
+See L<MooseX::ClassAttribute> for details.
+
+=head1 COPYRIGHT & LICENSE
+
+Copyright 2007-2008 Dave Rolsky, All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the same terms as Perl itself.
+
+=cut