Use applied_attribute metarole with Moose 1.9900+
[gitmo/MooseX-SemiAffordanceAccessor.git] / lib / MooseX / SemiAffordanceAccessor.pm
1 package MooseX::SemiAffordanceAccessor;
2
3 use strict;
4 use warnings;
5
6 use Moose 0.94 ();
7 use Moose::Exporter;
8 use Moose::Util::MetaRole;
9 use MooseX::SemiAffordanceAccessor::Role::Attribute;
10
11 my %metaroles = (
12     class_metaroles => {
13         attribute => ['MooseX::SemiAffordanceAccessor::Role::Attribute'],
14     },
15     role_metaroles => {
16         applied_attribute => ['MooseX::SemiAffordanceAccessor::Role::Attribute'],
17     },
18 );
19
20 $metaroles{role_metaroles} = {
21     applied_attribute => ['MooseX::SemiAffordanceAccessor::Role::Attribute'],
22 } if $Moose::VERSION >= 1.9900;
23
24 Moose::Exporter->setup_import_methods(%metaroles);
25
26 1;
27
28 # ABSTRACT: Name your accessors foo() and set_foo()
29
30 __END__
31
32 =pod
33
34 =head1 SYNOPSIS
35
36     use Moose;
37     use MooseX::SemiAffordanceAccessor;
38
39     # make some attributes
40
41 =head1 DESCRIPTION
42
43 This module does not provide any methods. Simply loading it changes
44 the default naming policy for the loading class so that accessors are
45 separated into get and set methods. The get methods have the same name
46 as the accessor, while set methods are prefixed with "set_".
47
48 If you define an attribute with a leading underscore, then the set
49 method will start with "_set_".
50
51 If you explicitly set a "reader" or "writer" name when creating an
52 attribute, then that attribute's naming scheme is left unchanged.
53
54 The name "semi-affordance" comes from David Wheeler's Class::Meta
55 module.
56
57 =head1 BUGS
58
59 Please report any bugs or feature requests to
60 C<bug-moosex-semiaffordanceaccessor@rt.cpan.org>, or through
61 the web interface at L<http://rt.cpan.org>.  I will be notified, and
62 then you'll automatically be notified of progress on your bug as I
63 make changes.
64
65 =cut