implement lazy_build
Yuval Kogman [Mon, 16 Jun 2008 21:51:47 +0000 (21:51 +0000)]
lib/Mouse/Meta/Attribute.pm
t/023-builder.t

index ff1a3ff..733c129 100644 (file)
@@ -12,8 +12,14 @@ sub new {
 
     $args{init_arg} = $args{name}
         unless exists $args{init_arg};
+
     $args{is} ||= '';
 
+    if ( $args{lazy_build} ) {
+        $args{lazy} = 1;
+        $args{builder} ||= "_build_$args{name}";
+    }
+
     bless \%args, $class;
 }
 
index 25b7fa8..a72f900 100644 (file)
@@ -25,12 +25,11 @@ do {
     };
 
     has age => (
-        is        => 'ro',
-        isa       => 'Int',
-        builder   => '_build_age',
-        lazy      => 1,
-        clearer   => 'clear_age',
-        predicate => 'has_age',
+        is         => 'ro',
+        isa        => 'Int',
+        lazy_build => 1,
+        clearer    => 'clear_age',
+        predicate  => 'has_age',
     );
 
     sub default_age { 20 }