r32717 - in /branches/upstream/libclass-accessor-grouped-perl/current: Changes MANIFEST META.yml lib/Class/Accessor/Grouped.pm t/inherited.t t/lib/ExtraInheritedGroups.pm

eloy at users.alioth.debian.org eloy at users.alioth.debian.org
Tue Apr 7 14:14:21 UTC 2009


Author: eloy
Date: Tue Apr  7 14:14:13 2009
New Revision: 32717

URL: http://svn.debian.org/wsvn/pkg-perl/?sc=1&rev=32717
Log:
[svn-upgrade] Integrating new upstream version, libclass-accessor-grouped-perl (0.08003)

Added:
    branches/upstream/libclass-accessor-grouped-perl/current/t/lib/ExtraInheritedGroups.pm
Modified:
    branches/upstream/libclass-accessor-grouped-perl/current/Changes
    branches/upstream/libclass-accessor-grouped-perl/current/MANIFEST
    branches/upstream/libclass-accessor-grouped-perl/current/META.yml
    branches/upstream/libclass-accessor-grouped-perl/current/lib/Class/Accessor/Grouped.pm
    branches/upstream/libclass-accessor-grouped-perl/current/t/inherited.t

Modified: branches/upstream/libclass-accessor-grouped-perl/current/Changes
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libclass-accessor-grouped-perl/current/Changes?rev=32717&op=diff
==============================================================================
--- branches/upstream/libclass-accessor-grouped-perl/current/Changes (original)
+++ branches/upstream/libclass-accessor-grouped-perl/current/Changes Tue Apr  7 14:14:13 2009
@@ -1,4 +1,7 @@
 Revision history for Class::Accessor::Grouped.
+
+0.08003 Sat Mar 21 9:27:24 2009
+    - Fixed set_inherited under C3::Componentised: RT#43702, RIBASUSHI
 
 0.08002 Mon Nov 17 20:27:22 2008
     - Removed unnecessary code in get_simple: RT#40992, BUCHMULLER Norbert

Modified: branches/upstream/libclass-accessor-grouped-perl/current/MANIFEST
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libclass-accessor-grouped-perl/current/MANIFEST?rev=32717&op=diff
==============================================================================
--- branches/upstream/libclass-accessor-grouped-perl/current/MANIFEST (original)
+++ branches/upstream/libclass-accessor-grouped-perl/current/MANIFEST Tue Apr  7 14:14:13 2009
@@ -23,6 +23,7 @@
 t/lib/AccessorGroupsRO.pm
 t/lib/AccessorGroupsWO.pm
 t/lib/BaseInheritedGroups.pm
+t/lib/ExtraInheritedGroups.pm
 t/lib/NotHashBased.pm
 t/lib/NotReallyAClass.pm
 t/lib/SuperInheritedGroups.pm

Modified: branches/upstream/libclass-accessor-grouped-perl/current/META.yml
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libclass-accessor-grouped-perl/current/META.yml?rev=32717&op=diff
==============================================================================
--- branches/upstream/libclass-accessor-grouped-perl/current/META.yml (original)
+++ branches/upstream/libclass-accessor-grouped-perl/current/META.yml Tue Apr  7 14:14:13 2009
@@ -23,4 +23,4 @@
   perl: 5.6.1
 resources:
   license: http://dev.perl.org/licenses/
-version: 0.08002
+version: 0.08003

Modified: branches/upstream/libclass-accessor-grouped-perl/current/lib/Class/Accessor/Grouped.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libclass-accessor-grouped-perl/current/lib/Class/Accessor/Grouped.pm?rev=32717&op=diff
==============================================================================
--- branches/upstream/libclass-accessor-grouped-perl/current/lib/Class/Accessor/Grouped.pm (original)
+++ branches/upstream/libclass-accessor-grouped-perl/current/lib/Class/Accessor/Grouped.pm Tue Apr  7 14:14:13 2009
@@ -6,7 +6,7 @@
 use Scalar::Util ();
 use MRO::Compat;
 
-our $VERSION = '0.08002';
+our $VERSION = '0.08003';
 
 =head1 NAME
 
@@ -301,10 +301,14 @@
     };
 
     no strict 'refs';
+    no warnings qw/uninitialized/;
     return ${$class.'::__cag_'.$_[1]} if defined(${$class.'::__cag_'.$_[1]});
 
-    if (!@{$class.'::__cag_supers'}) {
+    # we need to be smarter about recalculation, as @ISA (thus supers) can very well change in-flight
+    my $pkg_gen = mro::get_pkg_gen ($class);
+    if ( ${$class.'::__cag_pkg_gen'} != $pkg_gen ) {
         @{$class.'::__cag_supers'} = $_[0]->get_super_paths;
+        ${$class.'::__cag_pkg_gen'} = $pkg_gen;
     };
 
     foreach (@{$class.'::__cag_supers'}) {

Modified: branches/upstream/libclass-accessor-grouped-perl/current/t/inherited.t
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libclass-accessor-grouped-perl/current/t/inherited.t?rev=32717&op=diff
==============================================================================
--- branches/upstream/libclass-accessor-grouped-perl/current/t/inherited.t (original)
+++ branches/upstream/libclass-accessor-grouped-perl/current/t/inherited.t Tue Apr  7 14:14:13 2009
@@ -1,4 +1,4 @@
-use Test::More tests => 35;
+use Test::More tests => 36;
 use strict;
 use warnings;
 use lib 't/lib';
@@ -81,3 +81,14 @@
 is(SuperInheritedGroups->basefield, 'base');
 
 is(BaseInheritedGroups->undefined, undef);
+
+# make sure run-time @ISA changes trigger an inheritance chain recalculation
+SuperInheritedGroups->basefield(undef);
+BaseInheritedGroups->basefield('your base');
+
+# dirty hack, emulate Class::C3::Componentised
+require ExtraInheritedGroups;
+unshift @SuperInheritedGroups::ISA, qw/ExtraInheritedGroups/;
+
+# this comes from ExtraInheritedGroups
+is(SuperInheritedGroups->basefield, 'your extra base!');

Added: branches/upstream/libclass-accessor-grouped-perl/current/t/lib/ExtraInheritedGroups.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libclass-accessor-grouped-perl/current/t/lib/ExtraInheritedGroups.pm?rev=32717&op=file
==============================================================================
--- branches/upstream/libclass-accessor-grouped-perl/current/t/lib/ExtraInheritedGroups.pm (added)
+++ branches/upstream/libclass-accessor-grouped-perl/current/t/lib/ExtraInheritedGroups.pm Tue Apr  7 14:14:13 2009
@@ -1,0 +1,9 @@
+package ExtraInheritedGroups;
+use strict;
+use warnings;
+use base 'Class::Accessor::Grouped';
+
+__PACKAGE__->mk_group_accessors('inherited', 'basefield');
+__PACKAGE__->set_inherited (basefield => 'your extra base!');
+
+1;




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