r13721 - in /branches/upstream/libclass-mop-perl/current: Changes META.yml lib/Class/MOP.pm lib/Class/MOP/Class.pm lib/Class/MOP/Method/Constructor.pm

gregoa-guest at users.alioth.debian.org gregoa-guest at users.alioth.debian.org
Sun Jan 27 21:42:22 UTC 2008


Author: gregoa-guest
Date: Sun Jan 27 21:42:21 2008
New Revision: 13721

URL: http://svn.debian.org/wsvn/?sc=1&rev=13721
Log:
[svn-upgrade] Integrating new upstream version, libclass-mop-perl (0.52)

Modified:
    branches/upstream/libclass-mop-perl/current/Changes
    branches/upstream/libclass-mop-perl/current/META.yml
    branches/upstream/libclass-mop-perl/current/lib/Class/MOP.pm
    branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Class.pm
    branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Method/Constructor.pm

Modified: branches/upstream/libclass-mop-perl/current/Changes
URL: http://svn.debian.org/wsvn/branches/upstream/libclass-mop-perl/current/Changes?rev=13721&op=diff
==============================================================================
--- branches/upstream/libclass-mop-perl/current/Changes (original)
+++ branches/upstream/libclass-mop-perl/current/Changes Sun Jan 27 21:42:21 2008
@@ -1,4 +1,13 @@
 Revision history for Perl extension Class-MOP.
+
+0.52 Tues. Jan. 22, 2008
+    * Class::MOP::Class
+      - fixed bug in rebless_instance 
+        (discovered by ash)
+
+    * Class::MOP::Method::Constructor
+      - removed assumptions about the existence of 
+        a &meta method
 
 0.51 Mon. Jan. 14, 2008
     ~~~ some misc. doc. fixes ~~~

Modified: branches/upstream/libclass-mop-perl/current/META.yml
URL: http://svn.debian.org/wsvn/branches/upstream/libclass-mop-perl/current/META.yml?rev=13721&op=diff
==============================================================================
--- branches/upstream/libclass-mop-perl/current/META.yml (original)
+++ branches/upstream/libclass-mop-perl/current/META.yml Sun Jan 27 21:42:21 2008
@@ -20,13 +20,13 @@
 provides: 
   Class::MOP: 
     file: lib/Class/MOP.pm
-    version: 0.51
+    version: 0.52
   Class::MOP::Attribute: 
     file: lib/Class/MOP/Attribute.pm
     version: 0.22
   Class::MOP::Class: 
     file: lib/Class/MOP/Class.pm
-    version: 0.26
+    version: 0.27
   Class::MOP::Immutable: 
     file: lib/Class/MOP/Immutable.pm
     version: 0.04
@@ -41,7 +41,7 @@
     version: 0.02
   Class::MOP::Method::Constructor: 
     file: lib/Class/MOP/Method/Constructor.pm
-    version: 0.02
+    version: 0.03
   Class::MOP::Method::Generated: 
     file: lib/Class/MOP/Method/Generated.pm
     version: 0.01
@@ -64,4 +64,4 @@
   Carp: 0
   Scalar::Util: 1.18
   Sub::Name: 0.02
-version: 0.51
+version: 0.52

Modified: branches/upstream/libclass-mop-perl/current/lib/Class/MOP.pm
URL: http://svn.debian.org/wsvn/branches/upstream/libclass-mop-perl/current/lib/Class/MOP.pm?rev=13721&op=diff
==============================================================================
--- branches/upstream/libclass-mop-perl/current/lib/Class/MOP.pm (original)
+++ branches/upstream/libclass-mop-perl/current/lib/Class/MOP.pm Sun Jan 27 21:42:21 2008
@@ -14,7 +14,7 @@
 use Class::MOP::Immutable;
 
 BEGIN {
-    our $VERSION   = '0.51';
+    our $VERSION   = '0.52';
     our $AUTHORITY = 'cpan:STEVAN';    
     
     use XSLoader;

Modified: branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Class.pm
URL: http://svn.debian.org/wsvn/branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Class.pm?rev=13721&op=diff
==============================================================================
--- branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Class.pm (original)
+++ branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Class.pm Sun Jan 27 21:42:21 2008
@@ -12,7 +12,7 @@
 use Scalar::Util 'blessed', 'reftype', 'weaken';
 use Sub::Name    'subname';
 
-our $VERSION   = '0.26';
+our $VERSION   = '0.27';
 our $AUTHORITY = 'cpan:STEVAN';
 
 use base 'Class::MOP::Module';
@@ -395,7 +395,17 @@
 
 sub rebless_instance {
     my ($self, $instance) = @_;
-    my $old_metaclass = $instance->meta();
+
+    my $old_metaclass;
+    if ($instance->can('meta')) {
+        ($instance->meta->isa('Class::MOP::Class'))
+            || confess 'Cannot rebless instance if ->meta is not an instance of Class::MOP::Class';
+        $old_metaclass = $instance->meta;
+    }
+    else {
+        $old_metaclass = $self->initialize(blessed($instance));
+    }
+
     my $meta_instance = $self->get_meta_instance();
 
     $self->name->isa($old_metaclass->name)

Modified: branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Method/Constructor.pm
URL: http://svn.debian.org/wsvn/branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Method/Constructor.pm?rev=13721&op=diff
==============================================================================
--- branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Method/Constructor.pm (original)
+++ branches/upstream/libclass-mop-perl/current/lib/Class/MOP/Method/Constructor.pm Sun Jan 27 21:42:21 2008
@@ -7,7 +7,7 @@
 use Carp         'confess';
 use Scalar::Util 'blessed', 'weaken', 'looks_like_number';
 
-our $VERSION   = '0.02';
+our $VERSION   = '0.03';
 our $AUTHORITY = 'cpan:STEVAN';
 
 use base 'Class::MOP::Method::Generated';
@@ -68,7 +68,7 @@
 }
 
 sub generate_constructor_method {
-    return sub { (shift)->meta->new_object(@_) }
+    return sub { Class::MOP::Class->initialize(shift)->new_object(@_) }
 }
 
 sub generate_constructor_method_inline {
@@ -77,7 +77,7 @@
     my $source = 'sub {';
     $source .= "\n" . 'my ($class, %params) = @_;';
 
-    $source .= "\n" . 'return $class->meta->new_object(%params)';
+    $source .= "\n" . 'return Class::MOP::Class->initialize($class)->new_object(%params)';
     $source .= "\n" . '    if $class ne \'' . $self->associated_metaclass->name . '\';';
 
     $source .= "\n" . 'my $instance = ' . $self->meta_instance->inline_create_instance('$class');




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