=head1 NAME
-MooseX::Storage::Engine::IO::AtomicFile
-
-=head1 SYNOPSIS
+MooseX::Storage::Engine::IO::AtomicFile - The actually atomic file storage mechanism.
=head1 DESCRIPTION
+This provides the actual means to store data to a file atomically.
+
=head1 METHODS
=over 4
=head1 NAME
-MooseX::Storage::Engine::IO::File
-
-=head1 SYNOPSIS
+MooseX::Storage::Engine::IO::File - The actually file storage mechanism.
=head1 DESCRIPTION
+This provides the actual means to store data to a file.
+
=head1 METHODS
=over 4
# unpack the JSON string into a class
my $p2 = Point->thaw('{ "__CLASS__" : "Point", "x" : 10, "y" : 10 }');
-=head1 DESCRIPTION
-
=head1 METHODS
=over 4
x: 10
y: 10
YAML
-
-=head1 DESCRIPTION
=head1 METHODS
=head1 SYNOPSIS
-=head1 DESCRIPTION
+ package Point;
+ use Moose;
+ use MooseX::Storage;
+
+ with Storage('format' => 'JSON', 'io' => 'AtomicFile');
+
+ has 'x' => (is => 'rw', isa => 'Int');
+ has 'y' => (is => 'rw', isa => 'Int');
+
+ 1;
+
+ my $p = Point->new(x => 10, y => 10);
+
+ ## methods to load/store a class
+ ## on the file system
+
+ $p->store('my_point.json');
+
+ my $p2 = Point->load('my_point.json');
=head1 METHODS
=head1 SYNOPSIS
-=head1 DESCRIPTION
+ 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');
+
+ 1;
+
+ my $p = Point->new(x => 10, y => 10);
+
+ ## methods to load/store a class
+ ## on the file system
+
+ $p->store('my_point.json');
+
+ my $p2 = Point->load('my_point.json');
=head1 METHODS
=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