},
);
+ class_has 'Built' =>
+ ( is => 'ro',
+ builder => '_BuildIt',
+ );
+
+ class_has 'LazyBuilt' =>
+ ( is => 'ro',
+ lazy => 1,
+ builder => '_BuildIt',
+ );
+
has 'size' =>
( is => 'rw',
isa => 'Int',
$self->ObjectCount( $self->ObjectCount() + 1 );
}
+ sub _BuildIt { 42 }
+
sub make_immutable
{
my $class = shift;
sub run_tests
{
- plan tests => 24;
+ plan tests => 26;
local $Test::Builder::Level = $Test::Builder::Level + 1;
is( HasClassAttribute->GetMapping('a'), 20,
'value for a in mapping is 20' );
}
+
+ {
+ is( HasClassAttribute->Built(), 42,
+ 'attribute with builder works' );
+
+ is( HasClassAttribute->LazyBuilt(), 42,
+ 'attribute with lazy builder works' );
+ }
}