[libmoosex-semiaffordanceaccessor-perl] 02/10: Use applied_attribute metarole with Moose 1.9900+

Intrigeri intrigeri at moszumanska.debian.org
Thu Aug 28 15:44:28 UTC 2014


This is an automated email from the git hooks/post-receive script.

intrigeri pushed a commit to annotated tag v0.09
in repository libmoosex-semiaffordanceaccessor-perl.

commit 8a1964e9ff0241b5b0247821b1eedb12b6b0478e
Author: Dave Rolsky <autarch at urth.org>
Date:   Sat Feb 26 12:44:44 2011 -0600

    Use applied_attribute metarole with Moose 1.9900+
---
 lib/MooseX/SemiAffordanceAccessor.pm |  8 +++++++-
 t/role.t                             | 39 ++++++++++++++++++++++++++++++++++++
 2 files changed, 46 insertions(+), 1 deletion(-)

diff --git a/lib/MooseX/SemiAffordanceAccessor.pm b/lib/MooseX/SemiAffordanceAccessor.pm
index f1a5834..baae5d5 100644
--- a/lib/MooseX/SemiAffordanceAccessor.pm
+++ b/lib/MooseX/SemiAffordanceAccessor.pm
@@ -8,7 +8,7 @@ use Moose::Exporter;
 use Moose::Util::MetaRole;
 use MooseX::SemiAffordanceAccessor::Role::Attribute;
 
-Moose::Exporter->setup_import_methods(
+my %metaroles = (
     class_metaroles => {
         attribute => ['MooseX::SemiAffordanceAccessor::Role::Attribute'],
     },
@@ -17,6 +17,12 @@ Moose::Exporter->setup_import_methods(
     },
 );
 
+$metaroles{role_metaroles} = {
+    applied_attribute => ['MooseX::SemiAffordanceAccessor::Role::Attribute'],
+} if $Moose::VERSION >= 1.9900;
+
+Moose::Exporter->setup_import_methods(%metaroles);
+
 1;
 
 # ABSTRACT: Name your accessors foo() and set_foo()
diff --git a/t/role.t b/t/role.t
new file mode 100644
index 0000000..ffb5de0
--- /dev/null
+++ b/t/role.t
@@ -0,0 +1,39 @@
+use strict;
+use warnings;
+
+use Test::More;
+
+use Moose ();
+
+plan skip_all => 'This test requires Moose 1.9900+'
+    unless $Moose::VERSION ge '1.9900';
+
+{
+    package Role::SAA;
+
+    use Moose::Role;
+    use MooseX::SemiAffordanceAccessor;
+
+    has 'foo'  => ( is => 'rw' );
+    has '_bar' => ( is => 'rw' );
+}
+
+{
+    package Class;
+
+    use Moose;
+
+    with 'Role::SAA';
+
+    has 'thing'    => ( is => 'rw' );
+    has '_private' => ( is => 'rw' );
+}
+
+can_ok( 'Class', 'thing' );
+ok( ! Class->can('set_thing') );
+can_ok( 'Class', '_private' );
+ok( ! Class->can('_set_private') );
+
+can_ok( 'Class', qw( foo set_foo _bar _set_bar ) );
+
+done_testing();

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/libmoosex-semiaffordanceaccessor-perl.git



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