adding new tests
[gitmo/MooseX-Storage.git] / lib / MooseX / Storage.pm
index ccf48f4..b58562f 100644 (file)
@@ -4,6 +4,8 @@ use Moose qw(confess);
 
 use MooseX::Storage::Meta::Attribute::DoNotSerialize;
 
+our $VERSION = '0.03';
+
 sub import {
     my $pkg = caller();
     
@@ -15,7 +17,12 @@ sub import {
     $pkg->meta->alias_method('Storage' => sub {
         my %params = @_;
         
-        $params{'base'} ||= 'Basic';
+        if (exists $params{'base'}) {
+            $params{'base'} = ('Base::' . $params{'base'});        
+        }
+        else {
+            $params{'base'} = 'Basic';        
+        }
         
         my @roles = (
             ('MooseX::Storage::' . $params{'base'}),
@@ -62,6 +69,8 @@ MooseX::Storage - An serialization framework for Moose classes
   use Moose;
   use MooseX::Storage;
   
+  our $VERSION = '0.01';
+  
   with Storage('format' => 'JSON', 'io' => 'File');
   
   has 'x' => (is => 'rw', isa => 'Int');
@@ -75,20 +84,20 @@ MooseX::Storage - An serialization framework for Moose classes
   ## object in perl data structures
   
   # pack the class into a hash
-  $p->pack(); # { __CLASS__ => 'Point', x => 10, y => 10 }
+  $p->pack(); # { __CLASS__ => 'Point-0.01', x => 10, y => 10 }
   
   # unpack the hash into a class
-  my $p2 = Point->unpack({ __CLASS__ => 'Point', x => 10, y => 10 });
+  my $p2 = Point->unpack({ __CLASS__ => 'Point-0.01', x => 10, y => 10 });
 
   ## methods to freeze/thaw into 
   ## a specified serialization format
   ## (in this case JSON)
   
   # pack the class into a JSON string
-  $p->freeze(); # { "__CLASS__" : "Point", "x" : 10, "y" : 10 }
+  $p->freeze(); # { "__CLASS__" : "Point-0.01", "x" : 10, "y" : 10 }
   
   # unpack the JSON string into a class
-  my $p2 = Point->thaw('{ "__CLASS__" : "Point", "x" : 10, "y" : 10 }');  
+  my $p2 = Point->thaw('{ "__CLASS__" : "Point-0.01", "x" : 10, "y" : 10 }');  
 
   ## methods to load/store a class 
   ## on the file system
@@ -103,6 +112,14 @@ MooseX::Storage is a serialization framework for Moose, it provides
 a very flexible and highly pluggable way to serialize Moose classes
 to a number of different formats and styles.
 
+=head2 Important Note
+
+This is still an early release of this module, so use with caution. 
+It's outward facing serialization API should be considered stable, 
+but I still reserve the right to make tweaks if I need too. Anything
+beyond the basic pack/unpack, freeze/thaw and load/store should not 
+be relied on.
+
 =head2 Levels of Serialization
 
 There are 3 levels to the serialization, each of which builds upon 
@@ -216,8 +233,8 @@ hand if you like.
 
 =head1 TODO
 
-This module needs docs and probably a couple a Cookbook of some kind 
-as well. This is an early release, so that is my excuse for now :)
+This module needs docs and probably a Cookbook of some kind as well. 
+This is an early release, so that is my excuse for now :)
 
 For the time being, please read the tests and feel free to email me 
 if you have any questions. This module can also be discussed on IRC