r59051 - in /trunk/libmoosex-method-signatures-perl: Changes META.yml README debian/changelog lib/MooseX/Method/Signatures.pm lib/MooseX/Method/Signatures/Meta/Method.pm t/meta.t

ansgar-guest at users.alioth.debian.org ansgar-guest at users.alioth.debian.org
Tue Jun 8 03:20:16 UTC 2010


Author: ansgar-guest
Date: Tue Jun  8 03:12:22 2010
New Revision: 59051

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

Modified:
    trunk/libmoosex-method-signatures-perl/Changes
    trunk/libmoosex-method-signatures-perl/META.yml
    trunk/libmoosex-method-signatures-perl/README
    trunk/libmoosex-method-signatures-perl/debian/changelog
    trunk/libmoosex-method-signatures-perl/lib/MooseX/Method/Signatures.pm
    trunk/libmoosex-method-signatures-perl/lib/MooseX/Method/Signatures/Meta/Method.pm
    trunk/libmoosex-method-signatures-perl/t/meta.t

Modified: trunk/libmoosex-method-signatures-perl/Changes
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libmoosex-method-signatures-perl/Changes?rev=59051&op=diff
==============================================================================
--- trunk/libmoosex-method-signatures-perl/Changes (original)
+++ trunk/libmoosex-method-signatures-perl/Changes Tue Jun  8 03:12:22 2010
@@ -1,4 +1,11 @@
 Version history for MooseX::Method::Signatures
+
+0.33  Thu, 01 Jun 2010 13:47:34 -0300
+  * CatalystX::Declare seems to create a method object without a code
+    reference at all.
+
+0.32  Thu, 01 Jun 2010 13:47:34 -0300
+  * Detect usage of old MXMS::Meta::Method API and retro-compatibilize.
 
 0.31  Thu, 01 Jun 2010 13:47:34 -0300
   * Add support for "does" as a trait declarator

Modified: trunk/libmoosex-method-signatures-perl/META.yml
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libmoosex-method-signatures-perl/META.yml?rev=59051&op=diff
==============================================================================
--- trunk/libmoosex-method-signatures-perl/META.yml (original)
+++ trunk/libmoosex-method-signatures-perl/META.yml Tue Jun  8 03:12:22 2010
@@ -41,4 +41,4 @@
   bugtracker: http://rt.cpan.org/Public/Dist/Display.html?Name=MooseX-Method-Signatures
   license: http://dev.perl.org/licenses/
   repository: git://github.com/rafl/moosex-method-signatures.git
-version: 0.31
+version: 0.33

Modified: trunk/libmoosex-method-signatures-perl/README
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libmoosex-method-signatures-perl/README?rev=59051&op=diff
==============================================================================
--- trunk/libmoosex-method-signatures-perl/README (original)
+++ trunk/libmoosex-method-signatures-perl/README Tue Jun  8 03:12:22 2010
@@ -250,6 +250,7 @@
 
     Ash Berlin <ash at cpan.org>
     Cory Watson <gphat at cpan.org>
+    Daniel Ruoso <daniel at ruoso.com>
     Hakim Cassimally <hakim.cassimally at gmail.com>
     Jonathan Scott Duff <duff at pobox.com>
     Justin Hunter <justin.d.hunter at gmail.com>

Modified: trunk/libmoosex-method-signatures-perl/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libmoosex-method-signatures-perl/debian/changelog?rev=59051&op=diff
==============================================================================
--- trunk/libmoosex-method-signatures-perl/debian/changelog (original)
+++ trunk/libmoosex-method-signatures-perl/debian/changelog Tue Jun  8 03:12:22 2010
@@ -1,3 +1,9 @@
+libmoosex-method-signatures-perl (0.33-1) unstable; urgency=low
+
+  * New upstream release.
+
+ -- Ansgar Burchardt <ansgar at 43-1.org>  Tue, 08 Jun 2010 12:11:20 +0900
+
 libmoosex-method-signatures-perl (0.31-1) unstable; urgency=low
 
   * New upstream release.

Modified: trunk/libmoosex-method-signatures-perl/lib/MooseX/Method/Signatures.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libmoosex-method-signatures-perl/lib/MooseX/Method/Signatures.pm?rev=59051&op=diff
==============================================================================
--- trunk/libmoosex-method-signatures-perl/lib/MooseX/Method/Signatures.pm (original)
+++ trunk/libmoosex-method-signatures-perl/lib/MooseX/Method/Signatures.pm Tue Jun  8 03:12:22 2010
@@ -19,7 +19,7 @@
 
 use namespace::autoclean;
 
-our $VERSION = '0.31';
+our $VERSION = '0.33';
 
 has package => (
     is            => 'ro',
@@ -626,6 +626,8 @@
 
 =item Cory Watson E<lt>gphat at cpan.orgE<gt>
 
+=item Daniel Ruoso E<lt>daniel at ruoso.comE<gt>
+
 =item Hakim Cassimally E<lt>hakim.cassimally at gmail.comE<gt>
 
 =item Jonathan Scott Duff E<lt>duff at pobox.comE<gt>

Modified: trunk/libmoosex-method-signatures-perl/lib/MooseX/Method/Signatures/Meta/Method.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libmoosex-method-signatures-perl/lib/MooseX/Method/Signatures/Meta/Method.pm?rev=59051&op=diff
==============================================================================
--- trunk/libmoosex-method-signatures-perl/lib/MooseX/Method/Signatures/Meta/Method.pm (original)
+++ trunk/libmoosex-method-signatures-perl/lib/MooseX/Method/Signatures/Meta/Method.pm Tue Jun  8 03:12:22 2010
@@ -152,10 +152,16 @@
 around wrap => sub {
     my $orig = shift;
     my $self;
-    my ($class, $code, %args) = @_;
+    my ($class, $code, %args);
+    if (ref $_[1]) {
+        ($class, $code, %args) = @_;
+    } else {
+        ($class, %args) = @_;
+        $code = delete $args{body};
+    }
 
     my $wrapped = $class->_wrapped_body(\$self, %args);
-    $self = $class->$orig($wrapped, %args, actual_body => $code);
+    $self = $class->$orig($wrapped, %args, $code ? (actual_body => $code) : ());
 
     # Vivify the type constraints so TC lookups happen before namespace::clean
     # removes them
@@ -167,6 +173,16 @@
 
     return $self;
 };
+
+sub reify {
+    my $self = shift;
+
+    my %other_args = %{$self};
+    delete $other_args{body};
+    delete $other_args{actual_body};
+
+    return $self->meta->name->wrap($self->body, %other_args, @_);
+}
 
 sub _build_parsed_signature {
     my ($self) = @_;

Modified: trunk/libmoosex-method-signatures-perl/t/meta.t
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libmoosex-method-signatures-perl/t/meta.t?rev=59051&op=diff
==============================================================================
--- trunk/libmoosex-method-signatures-perl/t/meta.t (original)
+++ trunk/libmoosex-method-signatures-perl/t/meta.t Tue Jun  8 03:12:22 2010
@@ -1,6 +1,6 @@
 use strict;
 use warnings;
-use Test::More tests => 3;
+use Test::More tests => 8;
 use Test::Exception;
 
 use MooseX::Method::Signatures::Meta::Method;
@@ -30,3 +30,52 @@
 dies_ok(sub {
     Foo->bar(foo => 'moo', bar => 'baz');
 });
+
+# Makes sure we still support the old API.
+
+{
+    package Bar;
+    use metaclass;
+
+    my $method = MooseX::Method::Signatures::Meta::Method->wrap(
+        signature    => '($class: Int :$foo, Str :$bar)',
+        package_name => __PACKAGE__,
+        name         => 'bar',
+        body         => sub {
+            my ($class, $foo, $bar) = @_;
+            return $bar x $foo;
+        },
+    );
+    ::isa_ok($method, 'Moose::Meta::Method');
+
+    Bar->meta->add_method(bar => $method);
+}
+
+lives_and(sub {
+    is(Bar->bar(foo => 3, bar => 'baz'), 'bazbazbaz');
+});
+
+dies_ok(sub {
+    Bar->bar(foo => 'moo', bar => 'baz');
+});
+
+
+# CatalystX::Declare seems to create a method without a code at all.
+lives_and(sub {
+    package Bar;
+    use metaclass;
+
+    my $method = MooseX::Method::Signatures::Meta::Method->wrap(
+        signature    => '($class: Int :$foo, Str :$bar)',
+        package_name => __PACKAGE__,
+        name         => 'bar',
+    );
+    ::isa_ok($method, 'Moose::Meta::Method');
+
+    # CatalystX::Declare uses reify directly. too bad.
+    my $other = $method->reify
+      ( actual_body => sub { },
+      );
+    ::isa_ok($method, 'Moose::Meta::Method');
+
+});




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