add public set_initial_value method for Moose to consume setting lazy attrs
Ricardo SIGNES [Wed, 6 Feb 2008 02:01:14 +0000 (02:01 +0000)]
lib/Class/MOP/Attribute.pm
t/014_attribute_introspection.t

index 9b6aae7..bee7036 100644 (file)
@@ -240,6 +240,14 @@ sub associate_method {
 
 ## Slot management
 
+sub set_initial_value {
+    my ($self, $instance, $value) = @_;
+
+    Class::MOP::Class->initialize(blessed($instance))
+                     ->get_meta_instance
+                     ->_set_initial_slot_value($instance, $self->name, $value, $self->initializer);
+}
+
 sub set_value {
     my ($self, $instance, $value) = @_;
 
index afb9c20..6fab683 100644 (file)
@@ -3,7 +3,7 @@
 use strict;
 use warnings;
 
-use Test::More tests => 59;
+use Test::More tests => 60;
 use Test::Exception;
 
 BEGIN {
@@ -39,6 +39,7 @@ BEGIN {
         slots
         get_value
         set_value
+        set_initial_value
         has_value
         clear_value