r43970 - in /branches/upstream/libmoosex-role-parameterized-perl/current: Changes META.yml lib/MooseX/Role/Parameterized.pm lib/MooseX/Role/Parameterized/Tutorial.pod

carnil-guest at users.alioth.debian.org carnil-guest at users.alioth.debian.org
Sat Sep 12 08:06:08 UTC 2009


Author: carnil-guest
Date: Sat Sep 12 08:06:01 2009
New Revision: 43970

URL: http://svn.debian.org/wsvn/pkg-perl/?sc=1&rev=43970
Log:
[svn-upgrade] Integrating new upstream version, libmoosex-role-parameterized-perl (0.13)

Modified:
    branches/upstream/libmoosex-role-parameterized-perl/current/Changes
    branches/upstream/libmoosex-role-parameterized-perl/current/META.yml
    branches/upstream/libmoosex-role-parameterized-perl/current/lib/MooseX/Role/Parameterized.pm
    branches/upstream/libmoosex-role-parameterized-perl/current/lib/MooseX/Role/Parameterized/Tutorial.pod

Modified: branches/upstream/libmoosex-role-parameterized-perl/current/Changes
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmoosex-role-parameterized-perl/current/Changes?rev=43970&op=diff
==============================================================================
--- branches/upstream/libmoosex-role-parameterized-perl/current/Changes (original)
+++ branches/upstream/libmoosex-role-parameterized-perl/current/Changes Sat Sep 12 08:06:01 2009
@@ -1,4 +1,7 @@
 Changes for MooseX-Role-Parameterized
+
+0.13  Sep 11, 2009
+    * Documentation improvements (Sartak)
 
 0.12  Aug 15, 2009
     * Add MooseX::Role::Parameterized->current_metaclass for forward compat

Modified: branches/upstream/libmoosex-role-parameterized-perl/current/META.yml
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmoosex-role-parameterized-perl/current/META.yml?rev=43970&op=diff
==============================================================================
--- branches/upstream/libmoosex-role-parameterized-perl/current/META.yml (original)
+++ branches/upstream/libmoosex-role-parameterized-perl/current/META.yml Sat Sep 12 08:06:01 2009
@@ -26,4 +26,4 @@
   homepage: http://github.com/sartak/MooseX-Role-Parameterized/tree
   license: http://dev.perl.org/licenses/
   repository: git://github.com/sartak/MooseX-Role-Parameterized.git
-version: 0.12
+version: 0.13

Modified: branches/upstream/libmoosex-role-parameterized-perl/current/lib/MooseX/Role/Parameterized.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmoosex-role-parameterized-perl/current/lib/MooseX/Role/Parameterized.pm?rev=43970&op=diff
==============================================================================
--- branches/upstream/libmoosex-role-parameterized-perl/current/lib/MooseX/Role/Parameterized.pm (original)
+++ branches/upstream/libmoosex-role-parameterized-perl/current/lib/MooseX/Role/Parameterized.pm Sat Sep 12 08:06:01 2009
@@ -7,7 +7,7 @@
 
 use MooseX::Role::Parameterized::Meta::Role::Parameterizable;
 
-our $VERSION = '0.12';
+our $VERSION = '0.13';
 our $CURRENT_METACLASS;
 
 Moose::Exporter->setup_import_methods(
@@ -160,7 +160,7 @@
 
 =head1 SYNOPSIS
 
-    package MyRole::Counter;
+    package Counter;
     use MooseX::Role::Parameterized;
 
     parameter name => (
@@ -193,12 +193,12 @@
     package MyGame::Weapon;
     use Moose;
 
-    with 'MyRole::Counter' => { name => 'enchantment' };
+    with Counter => { name => 'enchantment' };
 
     package MyGame::Wand;
     use Moose;
 
-    with 'MyRole::Counter' => { name => 'zapped' };
+    with Counter => { name => 'zapped' };
 
 =head1 L<MooseX::Role::Parameterized::Tutorial>
 
@@ -280,6 +280,8 @@
 
 =item L<MooseX::Role::XMLRPC::Client>
 
+=item L<MooseX::WithCache>
+
 =item L<Net::Journyx::Object::Loadable>
 
 =item L<NetHack::Item::Role::IncorporatesStats>
@@ -295,6 +297,8 @@
 L<http://sartak.blogspot.com/2009/05/parameterized-roles.html>
 
 L<http://stevan-little.blogspot.com/2009/07/thoughts-on-parameterized-roles.html>
+
+L<http://sartak.org/talks/yapc-asia-2009/(parameterized)-roles/>
 
 =head1 COPYRIGHT AND LICENSE
 

Modified: branches/upstream/libmoosex-role-parameterized-perl/current/lib/MooseX/Role/Parameterized/Tutorial.pod
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libmoosex-role-parameterized-perl/current/lib/MooseX/Role/Parameterized/Tutorial.pod?rev=43970&op=diff
==============================================================================
--- branches/upstream/libmoosex-role-parameterized-perl/current/lib/MooseX/Role/Parameterized/Tutorial.pod (original)
+++ branches/upstream/libmoosex-role-parameterized-perl/current/lib/MooseX/Role/Parameterized/Tutorial.pod Sat Sep 12 08:06:01 2009
@@ -169,6 +169,32 @@
         ...
     }
 
+=item Additional validation
+
+Ordinary roles can require that its consumers have a particular list of method
+names. Since parameterized roles have direct access to its consumer, you can inspect it and throw errors if the consumer does not meet your needs.
+
+    role {
+        my $p    = shift;
+        my %args = @_;
+        my $consumer = $args{consumer};
+
+        $consumer->find_attribute_by_name('stack')
+            or confess "You must have a 'stack' attribute";
+
+        my $push = $consumer->find_method_by_name('push')
+            or confess "You must have a 'push' method";
+
+        my $params = $push->parsed_signature->positional_params->params;
+        @$params == 1
+            or confess "Your push method must take a single parameter";
+
+        $params->[0]->sigil eq '$'
+            or confess "Your push parameter must be a scalar";
+
+        ...
+    }
+
 =back
 
 =cut




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