delay loading all optional prereqs until runtime
[gitmo/MooseX-Storage.git] / lib / MooseX / Storage / Format / YAML.pm
index 91d9749..c80e2e2 100644 (file)
@@ -1,4 +1,3 @@
-
 package MooseX::Storage::Format::YAML;
 use Moose::Role;
 
@@ -6,27 +5,23 @@ use Moose::Role;
 # Tests break because tye YAML is invalid...?
 # -dcp
 
-use Best [
-    [ qw[YAML::Syck YAML] ], 
-    [ qw[Load Dump] ]
-];
-
-our $VERSION   = '0.02';
-our $AUTHORITY = 'cpan:STEVAN';
-
 requires 'pack';
 requires 'unpack';
 
 sub thaw {
     my ( $class, $yaml, @args ) = @_;
-    $class->unpack( Load($yaml), @args );
+    require YAML::Any;
+    $class->unpack( YAML::Any::Load($yaml), @args );
 }
 
 sub freeze {
     my ( $self, @args ) = @_;
+    require YAML::Any;
     Dump( $self->pack(@args) );
 }
 
+no Moose::Role;
+
 1;
 
 __END__
@@ -42,32 +37,32 @@ MooseX::Storage::Format::YAML - A YAML serialization role
   package Point;
   use Moose;
   use MooseX::Storage;
-  
+
   with Storage('format' => 'YAML');
-  
+
   has 'x' => (is => 'rw', isa => 'Int');
   has 'y' => (is => 'rw', isa => 'Int');
-  
+
   1;
-  
+
   my $p = Point->new(x => 10, y => 10);
-  
-  ## methods to freeze/thaw into 
+
+  ## methods to freeze/thaw into
   ## a specified serialization format
   ## (in this case YAML)
-  
+
   # pack the class into a YAML string
-  $p->freeze(); 
+  $p->freeze();
 
   # ----
-  # __CLASS__: "Point" 
+  # __CLASS__: "Point"
   # x: 10
-  # y: 10  
-  
+  # y: 10
+
   # unpack the JSON string into a class
-  my $p2 = Point->thaw(<<YAML);  
+  my $p2 = Point->thaw(<<YAML);
   ----
-  __CLASS__: "Point" 
+  __CLASS__: "Point"
   x: 10
   y: 10
   YAML
@@ -92,7 +87,7 @@ MooseX::Storage::Format::YAML - A YAML serialization role
 
 =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.