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