r22955 - in /trunk/libclass-mop-perl: ./ debian/ lib/ lib/Class/ lib/Class/MOP/ lib/Class/MOP/Method/ t/

gregoa at users.alioth.debian.org gregoa at users.alioth.debian.org
Wed Jul 9 15:39:29 UTC 2008


Author: gregoa
Date: Wed Jul  9 15:39:29 2008
New Revision: 22955

URL: http://svn.debian.org/wsvn/pkg-perl/?sc=1&rev=22955
Log:
New upstream release.

Modified:
    trunk/libclass-mop-perl/Changes
    trunk/libclass-mop-perl/META.yml
    trunk/libclass-mop-perl/README
    trunk/libclass-mop-perl/debian/changelog
    trunk/libclass-mop-perl/lib/Class/MOP.pm
    trunk/libclass-mop-perl/lib/Class/MOP/Attribute.pm
    trunk/libclass-mop-perl/lib/Class/MOP/Class.pm
    trunk/libclass-mop-perl/lib/Class/MOP/Immutable.pm
    trunk/libclass-mop-perl/lib/Class/MOP/Instance.pm
    trunk/libclass-mop-perl/lib/Class/MOP/Method.pm
    trunk/libclass-mop-perl/lib/Class/MOP/Method/Accessor.pm
    trunk/libclass-mop-perl/lib/Class/MOP/Method/Constructor.pm
    trunk/libclass-mop-perl/lib/Class/MOP/Method/Generated.pm
    trunk/libclass-mop-perl/lib/Class/MOP/Method/Wrapped.pm
    trunk/libclass-mop-perl/lib/Class/MOP/Module.pm
    trunk/libclass-mop-perl/lib/Class/MOP/Object.pm
    trunk/libclass-mop-perl/lib/Class/MOP/Package.pm
    trunk/libclass-mop-perl/lib/metaclass.pm
    trunk/libclass-mop-perl/t/083_load_class.t

Modified: trunk/libclass-mop-perl/Changes
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libclass-mop-perl/Changes?rev=22955&op=diff
==============================================================================
--- trunk/libclass-mop-perl/Changes (original)
+++ trunk/libclass-mop-perl/Changes Wed Jul  9 15:39:29 2008
@@ -1,4 +1,14 @@
 Revision history for Perl extension Class-MOP.
+
+0.63 Mon July 7, 2008
+    * Class::MOP
+      - load_class will initialize a metaclass even if
+        the class is already loaded (sartak)
+      - load_class now returns the metaclass instance
+        instead of just 1 (sartak)
+
+    * elsewhere
+      - better error messages (sartak and Dave Rolsky)
 
 0.62 Wed June 18, 2008
     - in is_class_loaded, recognize scalar references (as opposed to globs) in

Modified: trunk/libclass-mop-perl/META.yml
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libclass-mop-perl/META.yml?rev=22955&op=diff
==============================================================================
--- trunk/libclass-mop-perl/META.yml (original)
+++ trunk/libclass-mop-perl/META.yml Wed Jul  9 15:39:29 2008
@@ -22,50 +22,50 @@
 provides:
   Class::MOP:
     file: lib/Class/MOP.pm
-    version: 0.62
+    version: 0.63
   Class::MOP::Attribute:
     file: lib/Class/MOP/Attribute.pm
-    version: 0.62
+    version: 0.63
   Class::MOP::Class:
     file: lib/Class/MOP/Class.pm
-    version: 0.62
+    version: 0.63
   Class::MOP::Immutable:
     file: lib/Class/MOP/Immutable.pm
-    version: 0.62
+    version: 0.63
   Class::MOP::Instance:
     file: lib/Class/MOP/Instance.pm
-    version: 0.62
+    version: 0.63
   Class::MOP::Method:
     file: lib/Class/MOP/Method.pm
-    version: 0.62
+    version: 0.63
   Class::MOP::Method::Accessor:
     file: lib/Class/MOP/Method/Accessor.pm
-    version: 0.62
+    version: 0.63
   Class::MOP::Method::Constructor:
     file: lib/Class/MOP/Method/Constructor.pm
-    version: 0.62
+    version: 0.63
   Class::MOP::Method::Generated:
     file: lib/Class/MOP/Method/Generated.pm
-    version: 0.62
+    version: 0.63
   Class::MOP::Method::Wrapped:
     file: lib/Class/MOP/Method/Wrapped.pm
-    version: 0.62
+    version: 0.63
   Class::MOP::Module:
     file: lib/Class/MOP/Module.pm
-    version: 0.62
+    version: 0.63
   Class::MOP::Object:
     file: lib/Class/MOP/Object.pm
-    version: 0.62
+    version: 0.63
   Class::MOP::Package:
     file: lib/Class/MOP/Package.pm
-    version: 0.62
+    version: 0.63
   metaclass:
     file: lib/metaclass.pm
-    version: 0.62
+    version: 0.63
 requires:
   Carp: 0
   MRO::Compat: 0.05
   Scalar::Util: 1.18
   Sub::Identify: 0.03
   Sub::Name: 0.02
-version: 0.62
+version: 0.63

Modified: trunk/libclass-mop-perl/README
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libclass-mop-perl/README?rev=22955&op=diff
==============================================================================
--- trunk/libclass-mop-perl/README (original)
+++ trunk/libclass-mop-perl/README Wed Jul  9 15:39:29 2008
@@ -1,4 +1,4 @@
-Class::MOP version 0.61
+Class::MOP version 0.63
 ===========================
 
 See the individual module documentation for more information

Modified: trunk/libclass-mop-perl/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libclass-mop-perl/debian/changelog?rev=22955&op=diff
==============================================================================
--- trunk/libclass-mop-perl/debian/changelog (original)
+++ trunk/libclass-mop-perl/debian/changelog Wed Jul  9 15:39:29 2008
@@ -1,3 +1,9 @@
+libclass-mop-perl (0.63-1) UNRELEASED; urgency=low
+
+  * New upstream release.
+
+ -- gregor herrmann <gregoa at debian.org>  Wed, 09 Jul 2008 17:38:30 +0200
+
 libclass-mop-perl (0.62-1) unstable; urgency=low
 
   * New upstream release

Modified: trunk/libclass-mop-perl/lib/Class/MOP.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libclass-mop-perl/lib/Class/MOP.pm?rev=22955&op=diff
==============================================================================
--- trunk/libclass-mop-perl/lib/Class/MOP.pm (original)
+++ trunk/libclass-mop-perl/lib/Class/MOP.pm Wed Jul  9 15:39:29 2008
@@ -17,7 +17,7 @@
 
 BEGIN {
     
-    our $VERSION   = '0.62';
+    our $VERSION   = '0.63';
     our $AUTHORITY = 'cpan:STEVAN';    
     
     *IS_RUNNING_ON_5_10 = ($] < 5.009_005) 
@@ -131,19 +131,22 @@
         confess "Invalid class name ($display)";
     }
 
-    # see if this is already
-    # loaded in the symbol table
-    return 1 if is_class_loaded($class);
-    # otherwise require it ...
-    my $file = $class . '.pm';
-    $file =~ s{::}{/}g;
-    eval { CORE::require($file) };
-    confess "Could not load class ($class) because : $@" if $@;
+    # if the class is not already loaded in the symbol table..
+    unless (is_class_loaded($class)) {
+        # require it
+        my $file = $class . '.pm';
+        $file =~ s{::}{/}g;
+        eval { CORE::require($file) };
+        confess "Could not load class ($class) because : $@" if $@;
+    }
+
+    # initialize a metaclass if necessary
     unless (does_metaclass_exist($class)) {
         eval { Class::MOP::Class->initialize($class) };
         confess "Could not initialize class ($class) because : $@" if $@;
     }
-    1; # return true if it worked
+
+    return get_metaclass_by_name($class);
 }
 
 sub is_class_loaded {

Modified: trunk/libclass-mop-perl/lib/Class/MOP/Attribute.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libclass-mop-perl/lib/Class/MOP/Attribute.pm?rev=22955&op=diff
==============================================================================
--- trunk/libclass-mop-perl/lib/Class/MOP/Attribute.pm (original)
+++ trunk/libclass-mop-perl/lib/Class/MOP/Attribute.pm Wed Jul  9 15:39:29 2008
@@ -9,7 +9,7 @@
 use Carp         'confess';
 use Scalar::Util 'blessed', 'weaken';
 
-our $VERSION   = '0.62';
+our $VERSION   = '0.63';
 our $AUTHORITY = 'cpan:STEVAN';
 
 use base 'Class::MOP::Object';

Modified: trunk/libclass-mop-perl/lib/Class/MOP/Class.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libclass-mop-perl/lib/Class/MOP/Class.pm?rev=22955&op=diff
==============================================================================
--- trunk/libclass-mop-perl/lib/Class/MOP/Class.pm (original)
+++ trunk/libclass-mop-perl/lib/Class/MOP/Class.pm Wed Jul  9 15:39:29 2008
@@ -11,7 +11,7 @@
 use Carp         'confess';
 use Scalar::Util 'blessed', 'weaken';
 
-our $VERSION   = '0.62';
+our $VERSION   = '0.63';
 our $AUTHORITY = 'cpan:STEVAN';
 
 use base 'Class::MOP::Module';
@@ -407,7 +407,8 @@
     my $class    = shift;
     my $instance = shift;
     (blessed($instance) && $instance->isa($class->name))
-        || confess "You must pass an instance ($instance) of the metaclass (" . $class->name . ")";
+        || confess "You must pass an instance of the metaclass (" . $class->name . "), not ($instance)";
+
     # NOTE:
     # we need to protect the integrity of the
     # Class::MOP::Class singletons here, they
@@ -419,7 +420,7 @@
 sub clone_instance {
     my ($class, $instance, %params) = @_;
     (blessed($instance))
-        || confess "You can only clone instances, \$self is not a blessed instance";
+        || confess "You can only clone instances, ($instance) is not a blessed instance";
     my $meta_instance = $class->get_meta_instance();
     my $clone = $meta_instance->clone_instance($instance);
     foreach my $attr ($class->compute_all_applicable_attributes()) {
@@ -586,7 +587,7 @@
         $body = $method->body;
         if ($method->package_name ne $self->name && 
             $method->name         ne $method_name) {
-            warn "Hello there, got somethig for you." 
+            warn "Hello there, got something for you." 
                 . " Method says " . $method->package_name . " " . $method->name
                 . " Class says " . $self->name . " " . $method_name;
             $method = $method->clone(

Modified: trunk/libclass-mop-perl/lib/Class/MOP/Immutable.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libclass-mop-perl/lib/Class/MOP/Immutable.pm?rev=22955&op=diff
==============================================================================
--- trunk/libclass-mop-perl/lib/Class/MOP/Immutable.pm (original)
+++ trunk/libclass-mop-perl/lib/Class/MOP/Immutable.pm Wed Jul  9 15:39:29 2008
@@ -9,7 +9,7 @@
 use Carp         'confess';
 use Scalar::Util 'blessed';
 
-our $VERSION   = '0.62';
+our $VERSION   = '0.63';
 our $AUTHORITY = 'cpan:STEVAN';
 
 use base 'Class::MOP::Object';

Modified: trunk/libclass-mop-perl/lib/Class/MOP/Instance.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libclass-mop-perl/lib/Class/MOP/Instance.pm?rev=22955&op=diff
==============================================================================
--- trunk/libclass-mop-perl/lib/Class/MOP/Instance.pm (original)
+++ trunk/libclass-mop-perl/lib/Class/MOP/Instance.pm Wed Jul  9 15:39:29 2008
@@ -6,7 +6,7 @@
 
 use Scalar::Util 'weaken', 'blessed';
 
-our $VERSION   = '0.62';
+our $VERSION   = '0.63';
 our $AUTHORITY = 'cpan:STEVAN';
 
 use base 'Class::MOP::Object';

Modified: trunk/libclass-mop-perl/lib/Class/MOP/Method.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libclass-mop-perl/lib/Class/MOP/Method.pm?rev=22955&op=diff
==============================================================================
--- trunk/libclass-mop-perl/lib/Class/MOP/Method.pm (original)
+++ trunk/libclass-mop-perl/lib/Class/MOP/Method.pm Wed Jul  9 15:39:29 2008
@@ -7,7 +7,7 @@
 use Carp         'confess';
 use Scalar::Util 'blessed';
 
-our $VERSION   = '0.62';
+our $VERSION   = '0.63';
 our $AUTHORITY = 'cpan:STEVAN';
 
 use base 'Class::MOP::Object';

Modified: trunk/libclass-mop-perl/lib/Class/MOP/Method/Accessor.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libclass-mop-perl/lib/Class/MOP/Method/Accessor.pm?rev=22955&op=diff
==============================================================================
--- trunk/libclass-mop-perl/lib/Class/MOP/Method/Accessor.pm (original)
+++ trunk/libclass-mop-perl/lib/Class/MOP/Method/Accessor.pm Wed Jul  9 15:39:29 2008
@@ -7,7 +7,7 @@
 use Carp         'confess';
 use Scalar::Util 'blessed', 'weaken';
 
-our $VERSION   = '0.62';
+our $VERSION   = '0.63';
 our $AUTHORITY = 'cpan:STEVAN';
 
 use base 'Class::MOP::Method::Generated';

Modified: trunk/libclass-mop-perl/lib/Class/MOP/Method/Constructor.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libclass-mop-perl/lib/Class/MOP/Method/Constructor.pm?rev=22955&op=diff
==============================================================================
--- trunk/libclass-mop-perl/lib/Class/MOP/Method/Constructor.pm (original)
+++ trunk/libclass-mop-perl/lib/Class/MOP/Method/Constructor.pm Wed Jul  9 15:39:29 2008
@@ -7,7 +7,7 @@
 use Carp         'confess';
 use Scalar::Util 'blessed', 'weaken', 'looks_like_number';
 
-our $VERSION   = '0.62';
+our $VERSION   = '0.63';
 our $AUTHORITY = 'cpan:STEVAN';
 
 use base 'Class::MOP::Method::Generated';

Modified: trunk/libclass-mop-perl/lib/Class/MOP/Method/Generated.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libclass-mop-perl/lib/Class/MOP/Method/Generated.pm?rev=22955&op=diff
==============================================================================
--- trunk/libclass-mop-perl/lib/Class/MOP/Method/Generated.pm (original)
+++ trunk/libclass-mop-perl/lib/Class/MOP/Method/Generated.pm Wed Jul  9 15:39:29 2008
@@ -6,7 +6,7 @@
 
 use Carp 'confess';
 
-our $VERSION   = '0.62';
+our $VERSION   = '0.63';
 our $AUTHORITY = 'cpan:STEVAN';
 
 use base 'Class::MOP::Method';

Modified: trunk/libclass-mop-perl/lib/Class/MOP/Method/Wrapped.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libclass-mop-perl/lib/Class/MOP/Method/Wrapped.pm?rev=22955&op=diff
==============================================================================
--- trunk/libclass-mop-perl/lib/Class/MOP/Method/Wrapped.pm (original)
+++ trunk/libclass-mop-perl/lib/Class/MOP/Method/Wrapped.pm Wed Jul  9 15:39:29 2008
@@ -7,7 +7,7 @@
 use Carp         'confess';
 use Scalar::Util 'blessed';
 
-our $VERSION   = '0.62';
+our $VERSION   = '0.63';
 our $AUTHORITY = 'cpan:STEVAN';
 
 use base 'Class::MOP::Method';

Modified: trunk/libclass-mop-perl/lib/Class/MOP/Module.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libclass-mop-perl/lib/Class/MOP/Module.pm?rev=22955&op=diff
==============================================================================
--- trunk/libclass-mop-perl/lib/Class/MOP/Module.pm (original)
+++ trunk/libclass-mop-perl/lib/Class/MOP/Module.pm Wed Jul  9 15:39:29 2008
@@ -6,7 +6,7 @@
 
 use Scalar::Util 'blessed';
 
-our $VERSION   = '0.62';
+our $VERSION   = '0.63';
 our $AUTHORITY = 'cpan:STEVAN';
 
 use base 'Class::MOP::Package';

Modified: trunk/libclass-mop-perl/lib/Class/MOP/Object.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libclass-mop-perl/lib/Class/MOP/Object.pm?rev=22955&op=diff
==============================================================================
--- trunk/libclass-mop-perl/lib/Class/MOP/Object.pm (original)
+++ trunk/libclass-mop-perl/lib/Class/MOP/Object.pm Wed Jul  9 15:39:29 2008
@@ -6,7 +6,7 @@
 
 use Scalar::Util 'blessed';
 
-our $VERSION   = '0.62';
+our $VERSION   = '0.63';
 our $AUTHORITY = 'cpan:STEVAN';
 
 # introspection

Modified: trunk/libclass-mop-perl/lib/Class/MOP/Package.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libclass-mop-perl/lib/Class/MOP/Package.pm?rev=22955&op=diff
==============================================================================
--- trunk/libclass-mop-perl/lib/Class/MOP/Package.pm (original)
+++ trunk/libclass-mop-perl/lib/Class/MOP/Package.pm Wed Jul  9 15:39:29 2008
@@ -7,7 +7,7 @@
 use Scalar::Util 'blessed';
 use Carp         'confess';
 
-our $VERSION   = '0.62';
+our $VERSION   = '0.63';
 our $AUTHORITY = 'cpan:STEVAN';
 
 use base 'Class::MOP::Object';

Modified: trunk/libclass-mop-perl/lib/metaclass.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libclass-mop-perl/lib/metaclass.pm?rev=22955&op=diff
==============================================================================
--- trunk/libclass-mop-perl/lib/metaclass.pm (original)
+++ trunk/libclass-mop-perl/lib/metaclass.pm Wed Jul  9 15:39:29 2008
@@ -7,7 +7,7 @@
 use Carp         'confess';
 use Scalar::Util 'blessed';
 
-our $VERSION   = '0.62';
+our $VERSION   = '0.63';
 our $AUTHORITY = 'cpan:STEVAN';
 
 use Class::MOP;

Modified: trunk/libclass-mop-perl/t/083_load_class.t
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libclass-mop-perl/t/083_load_class.t?rev=22955&op=diff
==============================================================================
--- trunk/libclass-mop-perl/t/083_load_class.t (original)
+++ trunk/libclass-mop-perl/t/083_load_class.t Wed Jul  9 15:39:29 2008
@@ -1,7 +1,7 @@
 #!/usr/bin/env perl
 use strict;
 use warnings;
-use Test::More tests => 13;
+use Test::More tests => 14;
 use Test::Exception;
 
 require Class::MOP;
@@ -15,7 +15,9 @@
 throws_ok { Class::MOP::load_class('')     } qr/Invalid class name \(\)/;
 throws_ok { Class::MOP::load_class(\"foo") } qr/Invalid class name \(SCALAR\(\w+\)\)/;
 
-ok(Class::MOP::load_class('BinaryTree'));
+my $meta = Class::MOP::load_class('BinaryTree');
+ok($meta, "successfully loaded the class BinaryTree");
+is($meta->name, "BinaryTree", "load_class returns the metaclass");
 can_ok('BinaryTree' => 'traverse');
 
 do {




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