Version 0.32
[gitmo/MooseX-Storage.git] / lib / MooseX / Storage / Meta / Attribute / DoNotSerialize.pm
index e7b3ad3..0060043 100644 (file)
@@ -2,7 +2,19 @@
 package MooseX::Storage::Meta::Attribute::DoNotSerialize;
 use Moose;
 
+our $VERSION   = '0.32';
+our $AUTHORITY = 'cpan:STEVAN';
+
 extends 'Moose::Meta::Attribute';
+   with 'MooseX::Storage::Meta::Attribute::Trait::DoNotSerialize';
+
+# register this alias ...
+package Moose::Meta::Attribute::Custom::DoNotSerialize;
+
+our $VERSION   = '0.32';
+our $AUTHORITY = 'cpan:STEVAN';
+
+sub register_implementation { 'MooseX::Storage::Meta::Attribute::DoNotSerialize' }
 
 1;
 
@@ -12,12 +24,34 @@ __END__
 
 =head1 NAME
 
-MooseX::Storage::Meta::Attribute::DoNotSerialize
+MooseX::Storage::Meta::Attribute::DoNotSerialize - A custom meta-attribute to bypass serialization
 
 =head1 SYNOPSIS
 
+  package Point;
+  use Moose;
+  use MooseX::Storage;
+  
+  with Storage('format' => 'JSON', 'io' => 'File');
+  
+  has 'x' => (is => 'rw', isa => 'Int');
+  has 'y' => (is => 'rw', isa => 'Int');
+  
+  has 'foo' => (
+      metaclass => 'DoNotSerialize',
+      is        => 'rw',
+      isa       => 'CodeRef',
+  );
+  
+  1;
+
 =head1 DESCRIPTION
 
+Sometimes you don't want a particular attribute to be part of the 
+serialization, in this case, you want to make sure that attribute 
+uses this custom meta-attribute. See the SYNOPSIS for a nice example
+that can be easily cargo-culted.
+
 =head1 METHODS
 
 =head2 Introspection
@@ -42,7 +76,7 @@ Stevan Little E<lt>stevan.little@iinteractive.comE<gt>
 
 =head1 COPYRIGHT AND LICENSE
 
-Copyright 2007 by Infinity Interactive, Inc.
+Copyright 2007-2008 by Infinity Interactive, Inc.
 
 L<http://www.iinteractive.com>