r43973 - in /trunk/libmoosex-role-parameterized-perl: Changes META.yml debian/changelog 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:08:14 UTC 2009


Author: carnil-guest
Date: Sat Sep 12 08:08:04 2009
New Revision: 43973

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

Modified:
    trunk/libmoosex-role-parameterized-perl/Changes
    trunk/libmoosex-role-parameterized-perl/META.yml
    trunk/libmoosex-role-parameterized-perl/debian/changelog
    trunk/libmoosex-role-parameterized-perl/lib/MooseX/Role/Parameterized.pm
    trunk/libmoosex-role-parameterized-perl/lib/MooseX/Role/Parameterized/Tutorial.pod

Modified: trunk/libmoosex-role-parameterized-perl/Changes
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libmoosex-role-parameterized-perl/Changes?rev=43973&op=diff
==============================================================================
--- trunk/libmoosex-role-parameterized-perl/Changes (original)
+++ trunk/libmoosex-role-parameterized-perl/Changes Sat Sep 12 08:08:04 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: trunk/libmoosex-role-parameterized-perl/META.yml
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libmoosex-role-parameterized-perl/META.yml?rev=43973&op=diff
==============================================================================
--- trunk/libmoosex-role-parameterized-perl/META.yml (original)
+++ trunk/libmoosex-role-parameterized-perl/META.yml Sat Sep 12 08:08:04 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: trunk/libmoosex-role-parameterized-perl/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libmoosex-role-parameterized-perl/debian/changelog?rev=43973&op=diff
==============================================================================
--- trunk/libmoosex-role-parameterized-perl/debian/changelog (original)
+++ trunk/libmoosex-role-parameterized-perl/debian/changelog Sat Sep 12 08:08:04 2009
@@ -1,8 +1,13 @@
-libmoosex-role-parameterized-perl (0.12-2) UNRELEASED; urgency=low
+libmoosex-role-parameterized-perl (0.13-1) UNRELEASED; urgency=low
 
+  [ Ryan Niebur ]
   * Update jawnsy's email address
 
- -- Ryan Niebur <ryanryan52 at gmail.com>  Tue, 01 Sep 2009 21:19:19 -0700
+  [ Salvatore Bonaccorso ]
+  * New upstream release
+    - Documentation improvements
+
+ -- Salvatore Bonaccorso <salvatore.bonaccorso at gmail.com>  Sat, 12 Sep 2009 10:07:25 +0200
 
 libmoosex-role-parameterized-perl (0.12-1) unstable; urgency=low
 

Modified: trunk/libmoosex-role-parameterized-perl/lib/MooseX/Role/Parameterized.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libmoosex-role-parameterized-perl/lib/MooseX/Role/Parameterized.pm?rev=43973&op=diff
==============================================================================
--- trunk/libmoosex-role-parameterized-perl/lib/MooseX/Role/Parameterized.pm (original)
+++ trunk/libmoosex-role-parameterized-perl/lib/MooseX/Role/Parameterized.pm Sat Sep 12 08:08:04 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: trunk/libmoosex-role-parameterized-perl/lib/MooseX/Role/Parameterized/Tutorial.pod
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libmoosex-role-parameterized-perl/lib/MooseX/Role/Parameterized/Tutorial.pod?rev=43973&op=diff
==============================================================================
--- trunk/libmoosex-role-parameterized-perl/lib/MooseX/Role/Parameterized/Tutorial.pod (original)
+++ trunk/libmoosex-role-parameterized-perl/lib/MooseX/Role/Parameterized/Tutorial.pod Sat Sep 12 08:08:04 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