r3179 - in /packages/libset-object-perl/branches/upstream/current: Changes.pod MANIFEST META.yml lib/Set/Object.pm t/scalar/storable.t

eloy at users.alioth.debian.org eloy at users.alioth.debian.org
Wed Jun 28 10:35:07 UTC 2006


Author: eloy
Date: Wed Jun 28 10:35:02 2006
New Revision: 3179

URL: http://svn.debian.org/wsvn/pkg-perl/?sc=1&rev=3179
Log:
Load /tmp/tmp.qXrmf14063/libset-object-perl-1.15 into
packages/libset-object-perl/branches/upstream/current.

Added:
    packages/libset-object-perl/branches/upstream/current/t/scalar/storable.t
Modified:
    packages/libset-object-perl/branches/upstream/current/Changes.pod
    packages/libset-object-perl/branches/upstream/current/MANIFEST
    packages/libset-object-perl/branches/upstream/current/META.yml
    packages/libset-object-perl/branches/upstream/current/lib/Set/Object.pm

Modified: packages/libset-object-perl/branches/upstream/current/Changes.pod
URL: http://svn.debian.org/wsvn/pkg-perl/packages/libset-object-perl/branches/upstream/current/Changes.pod?rev=3179&op=diff
==============================================================================
--- packages/libset-object-perl/branches/upstream/current/Changes.pod (original)
+++ packages/libset-object-perl/branches/upstream/current/Changes.pod Wed Jun 28 10:35:02 2006
@@ -1,5 +1,15 @@
 
 =head1 REVISION HISTORY FOR Set::Object
+
+=head1 1.15, 21 Jun 2006
+
+=over
+
+=item *
+
+Dumping sets with scalars in them via L<Storable> now works.
+
+=back
 
 =head1 1.14
 

Modified: packages/libset-object-perl/branches/upstream/current/MANIFEST
URL: http://svn.debian.org/wsvn/pkg-perl/packages/libset-object-perl/branches/upstream/current/MANIFEST?rev=3179&op=diff
==============================================================================
--- packages/libset-object-perl/branches/upstream/current/MANIFEST (original)
+++ packages/libset-object-perl/branches/upstream/current/MANIFEST Wed Jun 28 10:35:02 2006
@@ -37,6 +37,7 @@
 t/scalar/member.t
 t/scalar/misc.t
 t/scalar/set_set.t
+t/scalar/storable.t
 t/scalar/symmdiff.t
 t/scalar/union.t
 t/scalar/unique.t

Modified: packages/libset-object-perl/branches/upstream/current/META.yml
URL: http://svn.debian.org/wsvn/pkg-perl/packages/libset-object-perl/branches/upstream/current/META.yml?rev=3179&op=diff
==============================================================================
--- packages/libset-object-perl/branches/upstream/current/META.yml (original)
+++ packages/libset-object-perl/branches/upstream/current/META.yml Wed Jun 28 10:35:02 2006
@@ -1,7 +1,7 @@
 # http://module-build.sourceforge.net/META-spec.html
 #XXXXXXX This is a prototype!!!  It will change in the future!!! XXXXX#
 name:         Set-Object
-version:      1.14
+version:      1.15
 version_from: lib/Set/Object.pm
 installdirs:  site
 requires:

Modified: packages/libset-object-perl/branches/upstream/current/lib/Set/Object.pm
URL: http://svn.debian.org/wsvn/pkg-perl/packages/libset-object-perl/branches/upstream/current/lib/Set/Object.pm?rev=3179&op=diff
==============================================================================
--- packages/libset-object-perl/branches/upstream/current/lib/Set/Object.pm (original)
+++ packages/libset-object-perl/branches/upstream/current/lib/Set/Object.pm Wed Jun 28 10:35:02 2006
@@ -343,6 +343,8 @@
 
 Portions Copyright (c) 2003 - 2005, Sam Vilain.  Same license.
 
+Portions Copyright (c) 2006, Catalyst IT (NZ) Limited.  Same license.
+
 =head1 SEE ALSO
 
 perl(1), perltie(1), L<Set::Scalar>, overload.pm
@@ -366,7 +368,7 @@
 
 @EXPORT_OK = qw( ish_int is_int is_string is_double blessed reftype
 		 refaddr is_overloaded is_object is_key set );
-$VERSION = '1.14';
+$VERSION = '1.15';
 
 bootstrap Set::Object $VERSION;
 
@@ -808,13 +810,18 @@
 sub STORABLE_freeze {
     my $obj = shift;
     my $am_cloning = shift;
-    return ("", $obj->members);
+    return ("v2", [ $obj->members ]);
 }
 
 use Devel::Peek qw(Dump);
 
 sub STORABLE_thaw {
     #print Dump $_ foreach (@_);
+
+    $DB::single = 1;
+    if ( $_[2] and $_[2] eq "v2" ) {
+	@_ = (@_[0,1], "", @{ $_[3] });
+    }
 
     goto &_STORABLE_thaw;
     #print "Got here\n";

Added: packages/libset-object-perl/branches/upstream/current/t/scalar/storable.t
URL: http://svn.debian.org/wsvn/pkg-perl/packages/libset-object-perl/branches/upstream/current/t/scalar/storable.t?rev=3179&op=file
==============================================================================
--- packages/libset-object-perl/branches/upstream/current/t/scalar/storable.t (added)
+++ packages/libset-object-perl/branches/upstream/current/t/scalar/storable.t Wed Jun 28 10:35:02 2006
@@ -1,0 +1,47 @@
+#  -*- cperl -*-
+#
+#  Storable test for Set::Object objects
+
+use strict;
+
+BEGIN {
+    eval "use Storable qw(freeze thaw dclone)";
+    if ($@) {
+	eval 'use Test::More skip_all => "Storable not installed"';
+	exit(0);
+    } else {
+	eval 'use Test::More tests => 7';
+    }
+}
+
+use_ok("Set::Object", qw(refaddr));
+my $objects = [ qw(Barnie Fred Wilma)                 ];
+
+my $stored = freeze ($objects);
+is_deeply(thaw($stored), $objects, "Storable works");
+
+my $set = Set::Object->new(@$objects);
+$stored = freeze($set);
+
+use Data::Dumper;
+#print Dumper $stored;
+
+my $returned = thaw($stored);
+#print "no segfault yet!\n";
+#diag(Dumper($returned, $set));
+is_deeply([ sort { ref($a) cmp ref($b) } $returned->members ],
+	  [ sort { ref($a) cmp ref($b) } $set->members ],
+	  "Set::Object serialises via Storable!");
+isnt($$returned, $$set, "thaw returned a new Set::Object");
+
+my $spawned = dclone($set);
+is_deeply([ sort { ref($a) cmp ref($b) } $spawned->members ],
+	  [ sort { ref($a) cmp ref($b) } $set->members ],
+	  "Set::Object dclones via Storable!");
+isnt($$spawned, $$set, "dclone returned a new Set::Object");
+
+my $old;
+my $test = dclone ($old = [ map { Set::Object->new() } (1..1000) ]);
+
+is(@$old, @$test, "empty sets");
+




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