X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMooseX%2FStorage%2FTraits%2FOnlyWhenBuilt.pm;h=a2be798d4b9b8c81f510aae76288c7070679f5eb;hb=ec72518379c644ab85126ee0391773ee7028665c;hp=7464364a240ba4624ab64b7edfcea0dcb46d3355;hpb=99b6180c9ef7db26cb514bb6e305f73fbcbc588e;p=gitmo%2FMooseX-Storage.git diff --git a/lib/MooseX/Storage/Traits/OnlyWhenBuilt.pm b/lib/MooseX/Storage/Traits/OnlyWhenBuilt.pm index 7464364..a2be798 100644 --- a/lib/MooseX/Storage/Traits/OnlyWhenBuilt.pm +++ b/lib/MooseX/Storage/Traits/OnlyWhenBuilt.pm @@ -37,29 +37,28 @@ MooseX::Storage::Traits::OnlyWhenBuilt - A custom trait to bypass serialization { package Point; use Moose; use MooseX::Storage; - + with Storage( traits => [qw|OnlyWhenBuilt|] ); - + has 'x' => (is => 'rw', lazy_build => 1 ); has 'y' => (is => 'rw', lazy_build => 1 ); has 'z' => (is => 'rw', builder => '_build_z' ); - - + sub _build_x { 3 } sub _build_y { expensive_computation() } sub _build_z { 3 } - + } - + my $p = Point->new( 'x' => 4 ); - + # the result of ->pack will contain: # { x => 4, z => 3 } $p->pack; - + =head1 DESCRIPTION -Sometimes you don't want a particular attribute to be part of the +Sometimes you don't want a particular attribute to be part of the serialization if it has not been built yet. If you invoke C as outlined in the C, only attributes that have been built (ie, where the predicate returns 'true') will be serialized. @@ -79,7 +78,7 @@ See the SYNOPSIS for a nice example that can be easily cargo-culted. =head1 BUGS -All complex software has bugs lurking in it, and this module is no +All complex software has bugs lurking in it, and this module is no exception. If you find a bug please either email me, or add the bug to cpan-RT.