r56161 - in /branches/upstream/libmoosex-storage-perl/current: ./ lib/MooseX/ lib/MooseX/Storage/ lib/MooseX/Storage/Base/ lib/MooseX/Storage/Engine/IO/ lib/MooseX/Storage/Format/ lib/MooseX/Storage/IO/ lib/MooseX/Storage/Meta/Attribute/ lib/MooseX/Storage/Meta/Attribute/Trait/ lib/MooseX/Storage/Traits/ t/

ansgar-guest at users.alioth.debian.org ansgar-guest at users.alioth.debian.org
Fri Apr 16 01:33:52 UTC 2010


Author: ansgar-guest
Date: Fri Apr 16 01:33:34 2010
New Revision: 56161

URL: http://svn.debian.org/wsvn/pkg-perl/?sc=1&rev=56161
Log:
[svn-upgrade] Integrating new upstream version, libmoosex-storage-perl (0.27)

Modified:
    branches/upstream/libmoosex-storage-perl/current/Changes
    branches/upstream/libmoosex-storage-perl/current/META.yml
    branches/upstream/libmoosex-storage-perl/current/README
    branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage.pm
    branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Base/WithChecksum.pm
    branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Basic.pm
    branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Deferred.pm
    branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Engine.pm
    branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Engine/IO/AtomicFile.pm
    branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Engine/IO/File.pm
    branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Format/JSON.pm
    branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Format/Storable.pm
    branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Format/YAML.pm
    branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/IO/AtomicFile.pm
    branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/IO/File.pm
    branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/IO/StorableFile.pm
    branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Meta/Attribute/DoNotSerialize.pm
    branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Meta/Attribute/Trait/DoNotSerialize.pm
    branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Traits/DisableCycleDetection.pm
    branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Traits/OnlyWhenBuilt.pm
    branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Util.pm
    branches/upstream/libmoosex-storage-perl/current/t/012_param_json.t

Modified: branches/upstream/libmoosex-storage-perl/current/Changes
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmoosex-storage-perl/current/Changes?rev=56161&op=diff
==============================================================================
--- branches/upstream/libmoosex-storage-perl/current/Changes (original)
+++ branches/upstream/libmoosex-storage-perl/current/Changes Fri Apr 16 01:33:34 2010
@@ -1,4 +1,8 @@
 Revision history for MooseX-Storage
+
+0.27
+  * use of parameterized roles (first added in 0.22) now works in Deferred
+    Example: $object->freeze({ format => [ $role_name => \%args ] })
 
 0.26
   * Fix URI for repository in metadata.

Modified: branches/upstream/libmoosex-storage-perl/current/META.yml
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmoosex-storage-perl/current/META.yml?rev=56161&op=diff
==============================================================================
--- branches/upstream/libmoosex-storage-perl/current/META.yml (original)
+++ branches/upstream/libmoosex-storage-perl/current/META.yml Fri Apr 16 01:33:34 2010
@@ -27,4 +27,4 @@
 resources:
   license: http://dev.perl.org/licenses/
   repository: git://git.moose.perl.org/MooseX-Storage.git
-version: 0.26
+version: 0.27

Modified: branches/upstream/libmoosex-storage-perl/current/README
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmoosex-storage-perl/current/README?rev=56161&op=diff
==============================================================================
--- branches/upstream/libmoosex-storage-perl/current/README (original)
+++ branches/upstream/libmoosex-storage-perl/current/README Fri Apr 16 01:33:34 2010
@@ -1,4 +1,4 @@
-MooseX-Storage version 0.26
+MooseX-Storage version 0.27
 
 INSTALLATION
 

Modified: branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage.pm?rev=56161&op=diff
==============================================================================
--- branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage.pm (original)
+++ branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage.pm Fri Apr 16 01:33:34 2010
@@ -5,7 +5,7 @@
 use MooseX::Storage::Meta::Attribute::DoNotSerialize;
 use String::RewritePrefix ();
 
-our $VERSION   = '0.26';
+our $VERSION   = '0.27';
 our $AUTHORITY = 'cpan:STEVAN';
 
 sub import {
@@ -21,16 +21,28 @@
 
 my %HORRIBLE_GC_AVOIDANCE_HACK;
 
-sub __expand_role {
-    my ($base, $value) = @_;
+sub _rewrite_role_name {
+    my ($self, $base, $string) = @_;
+
+    my $role_name = scalar String::RewritePrefix->rewrite(
+        {
+            ''  => "MooseX::Storage::$base\::",
+            '=' => '',
+        },
+        $string,
+    );
+}
+
+sub _expand_role {
+    my ($self, $base, $value) = @_;
 
     return unless defined $value;
 
     if (ref $value) {
-        my ($class, $param, $no) = @$value;
-        confess "too many args in arrayref role declaration" if defined $no;
-
-        $class = __expand_role($base => $class);
+        confess "too many args in arrayref role declaration" if @$value > 2;
+        my ($class, $param) = @$value;
+
+        $class = $self->_rewrite_role_name($base => $class);
         Class::MOP::load_class($class);
 
         my $role = $class->meta->generate_role(parameters => $param);
@@ -38,16 +50,20 @@
         $HORRIBLE_GC_AVOIDANCE_HACK{ $role->name } = $role;
         return $role->name;
     } else {
-        my $role = scalar String::RewritePrefix->rewrite(
-            {
-                ''  => "MooseX::Storage::$base\::",
-                '=' => '',
-            },
-            $value,
-        );
-
-        Class::MOP::load_class($role);
-        return $role;
+        my $class = $self->_rewrite_role_name($base, $value);
+        Class::MOP::load_class($class);
+
+        my $role = $class;
+
+        if ($class->meta->isa(
+            'MooseX::Role::Parameterized::Meta::Role::Parameterizable'
+        )) {
+            $role = $class->meta->generate_role(parameters => undef);
+            $HORRIBLE_GC_AVOIDANCE_HACK{ $role->name } = $role;
+            return $role->name;
+        }
+
+        return $class;
     }
 }
 
@@ -56,13 +72,13 @@
 
     $params{base} = '=MooseX::Storage::Basic' unless defined $params{base};
 
-    my @roles = __expand_role(Base => $params{base});
+    my @roles = __PACKAGE__->_expand_role(Base => $params{base});
 
     # NOTE:
     # you don't have to have a format
     # role, this just means you dont
     # get anything other than pack/unpack
-    push @roles, __expand_role(Format => $params{format});
+    push @roles, __PACKAGE__->_expand_role(Format => $params{format});
 
     # NOTE:
     # many IO roles don't make sense unless
@@ -75,13 +91,13 @@
     # us. This allows the StorableFile to work
     #(exists $params{'format'})
     #    || confess "You must specify a format role in order to use an IO role";
-    push @roles, __expand_role(IO => $params{io});
+    push @roles, __PACKAGE__->_expand_role(IO => $params{io});
 
     # Note:
     # These traits alter the behaviour of the engine, the user can
     # specify these per role-usage
     for my $trait ( @{ $params{'traits'} ||= [] } ) {
-        push @roles, __expand_role(Traits => $trait);
+        push @roles, __PACKAGE__->_expand_role(Traits => $trait);
     }
 
     return @roles;

Modified: branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Base/WithChecksum.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Base/WithChecksum.pm?rev=56161&op=diff
==============================================================================
--- branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Base/WithChecksum.pm (original)
+++ branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Base/WithChecksum.pm Fri Apr 16 01:33:34 2010
@@ -6,7 +6,7 @@
 use Digest       ();
 use Data::Dumper ();
 
-our $VERSION   = '0.26';
+our $VERSION   = '0.27';
 our $AUTHORITY = 'cpan:STEVAN';
 
 our $DIGEST_MARKER = '__DIGEST__';

Modified: branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Basic.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Basic.pm?rev=56161&op=diff
==============================================================================
--- branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Basic.pm (original)
+++ branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Basic.pm Fri Apr 16 01:33:34 2010
@@ -3,7 +3,7 @@
 
 use MooseX::Storage::Engine;
 
-our $VERSION   = '0.26';
+our $VERSION   = '0.27';
 our $AUTHORITY = 'cpan:STEVAN';
 
 sub pack {

Modified: branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Deferred.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Deferred.pm?rev=56161&op=diff
==============================================================================
--- branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Deferred.pm (original)
+++ branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Deferred.pm Fri Apr 16 01:33:34 2010
@@ -1,10 +1,17 @@
 package MooseX::Storage::Deferred;
 use Moose::Role;
 
-our $VERSION   = '0.26';
+our $VERSION   = '0.27';
 our $AUTHORITY = 'cpan:STEVAN';
 
 with 'MooseX::Storage::Basic';
+
+sub __get_method {
+    my ( $self, $basename, $value, $method_name ) = @_;
+
+    my $role   = MooseX::Storage->_expand_role($basename => $value)->meta;
+    my $method = $role->get_method($method_name)->body;
+}
 
 sub thaw {
     my ( $class, $packed, $type, @args ) = @_;
@@ -12,12 +19,9 @@
     (exists $type->{format})
         || confess "You must specify a format type to thaw from";
 
-    my $class_to_load = 'MooseX::Storage::Format::' . $type->{format};
-    Class::MOP::load_class($class_to_load);
+    my $code = $class->__get_method(Format => $type->{format} => 'thaw');
 
-    my $method_to_call = $class_to_load . '::thaw';
-
-    $class->$method_to_call($packed, @args);
+    $class->$code($packed, @args);
 }
 
 sub freeze {
@@ -26,12 +30,9 @@
     (exists $type->{format})
         || confess "You must specify a format type to freeze into";
 
-    my $class_to_load = 'MooseX::Storage::Format::' . $type->{format};
-    Class::MOP::load_class($class_to_load);
+    my $code = $self->__get_method(Format => $type->{format} => 'freeze');
 
-    my $method_to_call = $class_to_load . '::freeze';
-
-    $self->$method_to_call(@args);
+    $self->$code(@args);
 }
 
 sub load {
@@ -40,12 +41,9 @@
     (exists $type->{io})
         || confess "You must specify an I/O type to load with";
 
-    my $class_to_load = 'MooseX::Storage::IO::' . $type->{io};
-    Class::MOP::load_class($class_to_load);
+    my $code = $class->__get_method(IO => $type->{io} => 'load');
 
-    my $method_to_call = $class_to_load . '::load';
-
-    $class->$method_to_call($filename, $type, @args);
+    $class->$code($filename, $type, @args);
 }
 
 sub store {
@@ -54,12 +52,9 @@
     (exists $type->{io})
         || confess "You must specify an I/O type to store with";
 
-    my $class_to_load = 'MooseX::Storage::IO::' . $type->{io};
-    Class::MOP::load_class($class_to_load);
+    my $code = $self->__get_method(IO => $type->{io} => 'store');
 
-    my $method_to_call = $class_to_load . '::store';
-
-    $self->$method_to_call($filename, $type, @args);
+    $self->$code($filename, $type, @args);
 }
 
 no Moose::Role;
@@ -98,6 +93,9 @@
   # pack the class into a JSON string
   $p->freeze({ format => 'JSON' }); # { "__CLASS__" : "Point", "x" : 10, "y" : 10 }
 
+  # pack the class into a JSON string using parameterized JSONpm role
+  $p->freeze({ format => [ JSONpm => { json_opts => { pretty => 1 } } ] });
+
   # unpack the JSON string into a class
   my $p2 = Point->thaw(
       '{ "__CLASS__" : "Point", "x" : 10, "y" : 10 }',
@@ -118,6 +116,8 @@
 =over 4
 
 =item I<JSON>
+
+=item I<JSONpm>
 
 =item I<YAML>
 

Modified: branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Engine.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Engine.pm?rev=56161&op=diff
==============================================================================
--- branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Engine.pm (original)
+++ branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Engine.pm Fri Apr 16 01:33:34 2010
@@ -3,7 +3,7 @@
 use Moose;
 use Scalar::Util qw(refaddr);
 
-our $VERSION   = '0.26';
+our $VERSION   = '0.27';
 our $AUTHORITY = 'cpan:STEVAN';
 
 # the class marker when

Modified: branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Engine/IO/AtomicFile.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Engine/IO/AtomicFile.pm?rev=56161&op=diff
==============================================================================
--- branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Engine/IO/AtomicFile.pm (original)
+++ branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Engine/IO/AtomicFile.pm Fri Apr 16 01:33:34 2010
@@ -5,7 +5,7 @@
 use utf8 ();
 use IO::AtomicFile;
 
-our $VERSION   = '0.26';
+our $VERSION   = '0.27';
 our $AUTHORITY = 'cpan:STEVAN';
 
 extends 'MooseX::Storage::Engine::IO::File';

Modified: branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Engine/IO/File.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Engine/IO/File.pm?rev=56161&op=diff
==============================================================================
--- branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Engine/IO/File.pm (original)
+++ branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Engine/IO/File.pm Fri Apr 16 01:33:34 2010
@@ -5,7 +5,7 @@
 use utf8 ();
 use IO::File;
 
-our $VERSION   = '0.26';
+our $VERSION   = '0.27';
 our $AUTHORITY = 'cpan:STEVAN';
 
 has 'file' => (

Modified: branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Format/JSON.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Format/JSON.pm?rev=56161&op=diff
==============================================================================
--- branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Format/JSON.pm (original)
+++ branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Format/JSON.pm Fri Apr 16 01:33:34 2010
@@ -7,7 +7,7 @@
 use JSON::Any;
 use utf8 ();
 
-our $VERSION   = '0.26';
+our $VERSION   = '0.27';
 our $AUTHORITY = 'cpan:STEVAN';
 
 requires 'pack';

Modified: branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Format/Storable.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Format/Storable.pm?rev=56161&op=diff
==============================================================================
--- branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Format/Storable.pm (original)
+++ branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Format/Storable.pm Fri Apr 16 01:33:34 2010
@@ -4,7 +4,7 @@
 
 use Storable ();
 
-our $VERSION   = '0.26';
+our $VERSION   = '0.27';
 our $AUTHORITY = 'cpan:STEVAN';
 
 requires 'pack';

Modified: branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Format/YAML.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Format/YAML.pm?rev=56161&op=diff
==============================================================================
--- branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Format/YAML.pm (original)
+++ branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Format/YAML.pm Fri Apr 16 01:33:34 2010
@@ -7,7 +7,7 @@
 
 use YAML::Any qw(Load Dump);
 
-our $VERSION   = '0.26';
+our $VERSION   = '0.27';
 our $AUTHORITY = 'cpan:STEVAN';
 
 requires 'pack';

Modified: branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/IO/AtomicFile.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/IO/AtomicFile.pm?rev=56161&op=diff
==============================================================================
--- branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/IO/AtomicFile.pm (original)
+++ branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/IO/AtomicFile.pm Fri Apr 16 01:33:34 2010
@@ -3,7 +3,7 @@
 
 use MooseX::Storage::Engine::IO::AtomicFile;
 
-our $VERSION   = '0.26';
+our $VERSION   = '0.27';
 our $AUTHORITY = 'cpan:STEVAN';
 
 with 'MooseX::Storage::IO::File';

Modified: branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/IO/File.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/IO/File.pm?rev=56161&op=diff
==============================================================================
--- branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/IO/File.pm (original)
+++ branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/IO/File.pm Fri Apr 16 01:33:34 2010
@@ -3,7 +3,7 @@
 
 use MooseX::Storage::Engine::IO::File;
 
-our $VERSION   = '0.26';
+our $VERSION   = '0.27';
 our $AUTHORITY = 'cpan:STEVAN';
 
 requires 'thaw';

Modified: branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/IO/StorableFile.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/IO/StorableFile.pm?rev=56161&op=diff
==============================================================================
--- branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/IO/StorableFile.pm (original)
+++ branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/IO/StorableFile.pm Fri Apr 16 01:33:34 2010
@@ -3,7 +3,7 @@
 
 use Storable ();
 
-our $VERSION   = '0.26';
+our $VERSION   = '0.27';
 our $AUTHORITY = 'cpan:STEVAN';
 
 requires 'pack';

Modified: branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Meta/Attribute/DoNotSerialize.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Meta/Attribute/DoNotSerialize.pm?rev=56161&op=diff
==============================================================================
--- branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Meta/Attribute/DoNotSerialize.pm (original)
+++ branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Meta/Attribute/DoNotSerialize.pm Fri Apr 16 01:33:34 2010
@@ -2,7 +2,7 @@
 package MooseX::Storage::Meta::Attribute::DoNotSerialize;
 use Moose;
 
-our $VERSION   = '0.26';
+our $VERSION   = '0.27';
 our $AUTHORITY = 'cpan:STEVAN';
 
 extends 'Moose::Meta::Attribute';
@@ -11,7 +11,7 @@
 # register this alias ...
 package Moose::Meta::Attribute::Custom::DoNotSerialize;
 
-our $VERSION   = '0.26';
+our $VERSION   = '0.27';
 our $AUTHORITY = 'cpan:STEVAN';
 
 sub register_implementation { 'MooseX::Storage::Meta::Attribute::DoNotSerialize' }

Modified: branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Meta/Attribute/Trait/DoNotSerialize.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Meta/Attribute/Trait/DoNotSerialize.pm?rev=56161&op=diff
==============================================================================
--- branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Meta/Attribute/Trait/DoNotSerialize.pm (original)
+++ branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Meta/Attribute/Trait/DoNotSerialize.pm Fri Apr 16 01:33:34 2010
@@ -2,13 +2,13 @@
 package MooseX::Storage::Meta::Attribute::Trait::DoNotSerialize;
 use Moose::Role;
 
-our $VERSION   = '0.26';
+our $VERSION   = '0.27';
 our $AUTHORITY = 'cpan:STEVAN';
 
 # register this alias ...
 package Moose::Meta::Attribute::Custom::Trait::DoNotSerialize;
 
-our $VERSION   = '0.26';
+our $VERSION   = '0.27';
 our $AUTHORITY = 'cpan:STEVAN';
 
 sub register_implementation { 'MooseX::Storage::Meta::Attribute::Trait::DoNotSerialize' }

Modified: branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Traits/DisableCycleDetection.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Traits/DisableCycleDetection.pm?rev=56161&op=diff
==============================================================================
--- branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Traits/DisableCycleDetection.pm (original)
+++ branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Traits/DisableCycleDetection.pm Fri Apr 16 01:33:34 2010
@@ -1,7 +1,7 @@
 package MooseX::Storage::Traits::DisableCycleDetection;
 use Moose::Role;
 
-our $VERSION   = '0.26';
+our $VERSION   = '0.27';
 our $AUTHORITY = 'cpan:STEVAN';
 
 requires 'pack';

Modified: branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Traits/OnlyWhenBuilt.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Traits/OnlyWhenBuilt.pm?rev=56161&op=diff
==============================================================================
--- branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Traits/OnlyWhenBuilt.pm (original)
+++ branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Traits/OnlyWhenBuilt.pm Fri Apr 16 01:33:34 2010
@@ -1,7 +1,7 @@
 package MooseX::Storage::Traits::OnlyWhenBuilt;
 use Moose::Role;
 
-our $VERSION   = '0.26';
+our $VERSION   = '0.27';
 our $AUTHORITY = 'cpan:STEVAN';
 
 requires 'pack';

Modified: branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Util.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Util.pm?rev=56161&op=diff
==============================================================================
--- branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Util.pm (original)
+++ branches/upstream/libmoosex-storage-perl/current/lib/MooseX/Storage/Util.pm Fri Apr 16 01:33:34 2010
@@ -4,7 +4,7 @@
 use MooseX::Storage::Engine ();
 use utf8 ();
 
-our $VERSION   = '0.26';
+our $VERSION   = '0.27';
 our $AUTHORITY = 'cpan:STEVAN';
 
 sub peek {

Modified: branches/upstream/libmoosex-storage-perl/current/t/012_param_json.t
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmoosex-storage-perl/current/t/012_param_json.t?rev=56161&op=diff
==============================================================================
--- branches/upstream/libmoosex-storage-perl/current/t/012_param_json.t (original)
+++ branches/upstream/libmoosex-storage-perl/current/t/012_param_json.t Fri Apr 16 01:33:34 2010
@@ -11,17 +11,15 @@
         unless eval "require MooseX::Storage::Format::JSONpm; 1";
 }
 
-plan tests => 3;
+plan tests => 6;
 use_ok('MooseX::Storage');
 
 {
-
     package Foo;
     use Moose;
     use MooseX::Storage;
 
     with Storage(format => [ JSONpm => { json_opts => { pretty => 1 } } ] );
-    # with Storage(format => 'JSONpm');
 
     has 'string' => ( is => 'ro', isa => 'Str' );
     has 'float'  => ( is => 'ro', isa => 'Num' );
@@ -44,3 +42,35 @@
 
 }
 
+{
+    package Bar;
+    use Moose;
+    use MooseX::Storage;
+
+    our $VERSION = '0.01';
+
+    with 'MooseX::Storage::Deferred';
+
+    has 'x' => (is => 'rw', isa => 'Int');
+    has 'y' => (is => 'rw', isa => 'Int');
+}
+
+for my $jsonpm (
+  [ string => 'JSONpm' ],
+  [ aref0p => [ JSONpm => ] ],
+  [ aref1p => [ JSONpm => { json_opts => { pretty => 1 } } ] ],
+) {
+    my ($name, $p) = @$jsonpm;
+
+    my $json = eval { Bar->new(x => 10, y => 20)->freeze({ format => $p }) };
+
+    is_deeply(
+        JSON->new->decode($json),
+        {
+            '__CLASS__' => 'Bar-0.01',
+            x => 10,
+            y => 20,
+        },
+        "correct deferred freeze from $name",
+    );
+}




More information about the Pkg-perl-cvs-commits mailing list