[svn-inject] Installing original source of libmoosex-followpbp-perl (0.04)
Ansgar Burchardt
13 years ago
0 | 0.04 2010-07-20 | |
1 | ||
2 | - Respect "is => 'bare'" attributes. | |
3 | ||
4 | ||
5 | 0.03 2010-07-14 | |
6 | ||
7 | - Use modern Moose APIs, to avoid warnings with the next Moose release. | |
8 | ||
9 | ||
10 | 0.02 2008-02-06 | |
11 | ||
12 | - Add a missing dependency on Moose so it gets tested. | |
13 | ||
14 | ||
15 | 0.01 2008-12-16 | |
16 | ||
17 | - This code was extracted from Moose::Policy, and works without | |
18 | needing said module. |
0 | ||
1 | This is the Perl distribution MooseX-FollowPBP. | |
2 | ||
3 | Installing MooseX-FollowPBP is straightforward. | |
4 | ||
5 | ## Installation with cpanm | |
6 | ||
7 | If you have cpanm, you only need one line: | |
8 | ||
9 | % cpanm MooseX::FollowPBP | |
10 | ||
11 | If you are installing into a system-wide directory, you may need to pass the | |
12 | "-S" flag to cpanm, which uses sudo to install the module: | |
13 | ||
14 | % cpanm -S MooseX::FollowPBP | |
15 | ||
16 | ## Installing with the CPAN shell | |
17 | ||
18 | Alternatively, if your CPAN shell is set up, you should just be able to do: | |
19 | ||
20 | % cpan MooseX::FollowPBP | |
21 | ||
22 | ## Manual installation | |
23 | ||
24 | As a last resort, you can manually install it. Download the tarball, untar it, | |
25 | then build it: | |
26 | ||
27 | % perl Makefile.PL | |
28 | % make && make test | |
29 | ||
30 | Then install it: | |
31 | ||
32 | % make install | |
33 | ||
34 | If you are installing into a system-wide directory, you may need to run: | |
35 | ||
36 | % sudo make install | |
37 | ||
38 | ## Documentation | |
39 | ||
40 | MooseX-FollowPBP documentation is available as in POD. | |
41 | You can run perldoc from a shell to read the documentation: | |
42 | ||
43 | % perldoc MooseX::FollowPBP |
0 | This software is Copyright (c) 2010 by Dave Rolsky. | |
1 | ||
2 | This is free software, licensed under: | |
3 | ||
4 | The Artistic License 2.0 | |
5 | ||
6 | The Artistic License 2.0 | |
7 | ||
8 | Copyright (c) 2000-2006, The Perl Foundation. | |
9 | ||
10 | Everyone is permitted to copy and distribute verbatim copies | |
11 | of this license document, but changing it is not allowed. | |
12 | ||
13 | Preamble | |
14 | ||
15 | This license establishes the terms under which a given free software | |
16 | Package may be copied, modified, distributed, and/or redistributed. | |
17 | The intent is that the Copyright Holder maintains some artistic | |
18 | control over the development of that Package while still keeping the | |
19 | Package available as open source and free software. | |
20 | ||
21 | You are always permitted to make arrangements wholly outside of this | |
22 | license directly with the Copyright Holder of a given Package. If the | |
23 | terms of this license do not permit the full use that you propose to | |
24 | make of the Package, you should contact the Copyright Holder and seek | |
25 | a different licensing arrangement. | |
26 | ||
27 | Definitions | |
28 | ||
29 | "Copyright Holder" means the individual(s) or organization(s) | |
30 | named in the copyright notice for the entire Package. | |
31 | ||
32 | "Contributor" means any party that has contributed code or other | |
33 | material to the Package, in accordance with the Copyright Holder's | |
34 | procedures. | |
35 | ||
36 | "You" and "your" means any person who would like to copy, | |
37 | distribute, or modify the Package. | |
38 | ||
39 | "Package" means the collection of files distributed by the | |
40 | Copyright Holder, and derivatives of that collection and/or of | |
41 | those files. A given Package may consist of either the Standard | |
42 | Version, or a Modified Version. | |
43 | ||
44 | "Distribute" means providing a copy of the Package or making it | |
45 | accessible to anyone else, or in the case of a company or | |
46 | organization, to others outside of your company or organization. | |
47 | ||
48 | "Distributor Fee" means any fee that you charge for Distributing | |
49 | this Package or providing support for this Package to another | |
50 | party. It does not mean licensing fees. | |
51 | ||
52 | "Standard Version" refers to the Package if it has not been | |
53 | modified, or has been modified only in ways explicitly requested | |
54 | by the Copyright Holder. | |
55 | ||
56 | "Modified Version" means the Package, if it has been changed, and | |
57 | such changes were not explicitly requested by the Copyright | |
58 | Holder. | |
59 | ||
60 | "Original License" means this Artistic License as Distributed with | |
61 | the Standard Version of the Package, in its current version or as | |
62 | it may be modified by The Perl Foundation in the future. | |
63 | ||
64 | "Source" form means the source code, documentation source, and | |
65 | configuration files for the Package. | |
66 | ||
67 | "Compiled" form means the compiled bytecode, object code, binary, | |
68 | or any other form resulting from mechanical transformation or | |
69 | translation of the Source form. | |
70 | ||
71 | ||
72 | Permission for Use and Modification Without Distribution | |
73 | ||
74 | (1) You are permitted to use the Standard Version and create and use | |
75 | Modified Versions for any purpose without restriction, provided that | |
76 | you do not Distribute the Modified Version. | |
77 | ||
78 | ||
79 | Permissions for Redistribution of the Standard Version | |
80 | ||
81 | (2) You may Distribute verbatim copies of the Source form of the | |
82 | Standard Version of this Package in any medium without restriction, | |
83 | either gratis or for a Distributor Fee, provided that you duplicate | |
84 | all of the original copyright notices and associated disclaimers. At | |
85 | your discretion, such verbatim copies may or may not include a | |
86 | Compiled form of the Package. | |
87 | ||
88 | (3) You may apply any bug fixes, portability changes, and other | |
89 | modifications made available from the Copyright Holder. The resulting | |
90 | Package will still be considered the Standard Version, and as such | |
91 | will be subject to the Original License. | |
92 | ||
93 | ||
94 | Distribution of Modified Versions of the Package as Source | |
95 | ||
96 | (4) You may Distribute your Modified Version as Source (either gratis | |
97 | or for a Distributor Fee, and with or without a Compiled form of the | |
98 | Modified Version) provided that you clearly document how it differs | |
99 | from the Standard Version, including, but not limited to, documenting | |
100 | any non-standard features, executables, or modules, and provided that | |
101 | you do at least ONE of the following: | |
102 | ||
103 | (a) make the Modified Version available to the Copyright Holder | |
104 | of the Standard Version, under the Original License, so that the | |
105 | Copyright Holder may include your modifications in the Standard | |
106 | Version. | |
107 | ||
108 | (b) ensure that installation of your Modified Version does not | |
109 | prevent the user installing or running the Standard Version. In | |
110 | addition, the Modified Version must bear a name that is different | |
111 | from the name of the Standard Version. | |
112 | ||
113 | (c) allow anyone who receives a copy of the Modified Version to | |
114 | make the Source form of the Modified Version available to others | |
115 | under | |
116 | ||
117 | (i) the Original License or | |
118 | ||
119 | (ii) a license that permits the licensee to freely copy, | |
120 | modify and redistribute the Modified Version using the same | |
121 | licensing terms that apply to the copy that the licensee | |
122 | received, and requires that the Source form of the Modified | |
123 | Version, and of any works derived from it, be made freely | |
124 | available in that license fees are prohibited but Distributor | |
125 | Fees are allowed. | |
126 | ||
127 | ||
128 | Distribution of Compiled Forms of the Standard Version | |
129 | or Modified Versions without the Source | |
130 | ||
131 | (5) You may Distribute Compiled forms of the Standard Version without | |
132 | the Source, provided that you include complete instructions on how to | |
133 | get the Source of the Standard Version. Such instructions must be | |
134 | valid at the time of your distribution. If these instructions, at any | |
135 | time while you are carrying out such distribution, become invalid, you | |
136 | must provide new instructions on demand or cease further distribution. | |
137 | If you provide valid instructions or cease distribution within thirty | |
138 | days after you become aware that the instructions are invalid, then | |
139 | you do not forfeit any of your rights under this license. | |
140 | ||
141 | (6) You may Distribute a Modified Version in Compiled form without | |
142 | the Source, provided that you comply with Section 4 with respect to | |
143 | the Source of the Modified Version. | |
144 | ||
145 | ||
146 | Aggregating or Linking the Package | |
147 | ||
148 | (7) You may aggregate the Package (either the Standard Version or | |
149 | Modified Version) with other packages and Distribute the resulting | |
150 | aggregation provided that you do not charge a licensing fee for the | |
151 | Package. Distributor Fees are permitted, and licensing fees for other | |
152 | components in the aggregation are permitted. The terms of this license | |
153 | apply to the use and Distribution of the Standard or Modified Versions | |
154 | as included in the aggregation. | |
155 | ||
156 | (8) You are permitted to link Modified and Standard Versions with | |
157 | other works, to embed the Package in a larger work of your own, or to | |
158 | build stand-alone binary or bytecode versions of applications that | |
159 | include the Package, and Distribute the result without restriction, | |
160 | provided the result does not expose a direct interface to the Package. | |
161 | ||
162 | ||
163 | Items That are Not Considered Part of a Modified Version | |
164 | ||
165 | (9) Works (including, but not limited to, modules and scripts) that | |
166 | merely extend or make use of the Package, do not, by themselves, cause | |
167 | the Package to be a Modified Version. In addition, such works are not | |
168 | considered parts of the Package itself, and are not subject to the | |
169 | terms of this license. | |
170 | ||
171 | ||
172 | General Provisions | |
173 | ||
174 | (10) Any use, modification, and distribution of the Standard or | |
175 | Modified Versions is governed by this Artistic License. By using, | |
176 | modifying or distributing the Package, you accept this license. Do not | |
177 | use, modify, or distribute the Package, if you do not accept this | |
178 | license. | |
179 | ||
180 | (11) If your Modified Version has been derived from a Modified | |
181 | Version made by someone other than you, you are nevertheless required | |
182 | to ensure that your Modified Version complies with the requirements of | |
183 | this license. | |
184 | ||
185 | (12) This license does not grant you the right to use any trademark, | |
186 | service mark, tradename, or logo of the Copyright Holder. | |
187 | ||
188 | (13) This license includes the non-exclusive, worldwide, | |
189 | free-of-charge patent license to make, have made, use, offer to sell, | |
190 | sell, import and otherwise transfer the Package with respect to any | |
191 | patent claims licensable by the Copyright Holder that are necessarily | |
192 | infringed by the Package. If you institute patent litigation | |
193 | (including a cross-claim or counterclaim) against any party alleging | |
194 | that the Package constitutes direct or contributory patent | |
195 | infringement, then this Artistic License to you shall terminate on the | |
196 | date that such litigation is filed. | |
197 | ||
198 | (14) Disclaimer of Warranty: | |
199 | THE PACKAGE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS "AS | |
200 | IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. THE IMPLIED | |
201 | WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR | |
202 | NON-INFRINGEMENT ARE DISCLAIMED TO THE EXTENT PERMITTED BY YOUR LOCAL | |
203 | LAW. UNLESS REQUIRED BY LAW, NO COPYRIGHT HOLDER OR CONTRIBUTOR WILL | |
204 | BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL | |
205 | DAMAGES ARISING IN ANY WAY OUT OF THE USE OF THE PACKAGE, EVEN IF | |
206 | ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
0 | Changes | |
1 | INSTALL | |
2 | LICENSE | |
3 | MANIFEST | |
4 | META.json | |
5 | META.yml | |
6 | Makefile.PL | |
7 | README | |
8 | SIGNATURE | |
9 | dist.ini | |
10 | lib/MooseX/FollowPBP.pm | |
11 | lib/MooseX/FollowPBP/Role/Attribute.pm | |
12 | t/basic.t | |
13 | t/release-eol.t | |
14 | t/release-kwalitee.t | |
15 | t/release-no-tabs.t | |
16 | t/release-pod-coverage.t | |
17 | t/release-pod-spell.t | |
18 | t/release-pod-syntax.t |
0 | { | |
1 | "abstract" : "Name your accessors get_foo() and set_foo()", | |
2 | "author" : [ | |
3 | "Dave Rolsky <autarch@urth.org>" | |
4 | ], | |
5 | "dynamic_config" : 0, | |
6 | "generated_by" : "Dist::Zilla version 4.101900, CPAN::Meta::Converter version 2.101670", | |
7 | "license" : [ | |
8 | "artistic_2" | |
9 | ], | |
10 | "meta-spec" : { | |
11 | "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", | |
12 | "version" : "2" | |
13 | }, | |
14 | "name" : "MooseX-FollowPBP", | |
15 | "prereqs" : { | |
16 | "configure" : { | |
17 | "requires" : { | |
18 | "ExtUtils::MakeMaker" : "6.31" | |
19 | } | |
20 | }, | |
21 | "runtime" : { | |
22 | "requires" : { | |
23 | "Moose" : "0.94" | |
24 | } | |
25 | }, | |
26 | "test" : { | |
27 | "requires" : { | |
28 | "Test::More" : "0.88" | |
29 | } | |
30 | } | |
31 | }, | |
32 | "release_status" : "stable", | |
33 | "resources" : { | |
34 | "bugtracker" : { | |
35 | "mailto" : "bug-moosex-semiaffordanceaccessor@rt.cpan.org", | |
36 | "web" : "http://rt.cpan.org/NoAuth/Bugs.html?Dist=MooseX-FollowPBP" | |
37 | }, | |
38 | "repository" : { | |
39 | "type" : "git", | |
40 | "url" : "git://git.moose.perl.org/MooseX-FollowPBP.git", | |
41 | "web" : "http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=gitmo/MooseX-FollowPBP.git;a=summary" | |
42 | } | |
43 | }, | |
44 | "version" : "0.04" | |
45 | } | |
46 |
0 | --- | |
1 | abstract: 'Name your accessors get_foo() and set_foo()' | |
2 | author: | |
3 | - 'Dave Rolsky <autarch@urth.org>' | |
4 | build_requires: | |
5 | Test::More: 0.88 | |
6 | configure_requires: | |
7 | ExtUtils::MakeMaker: 6.31 | |
8 | dynamic_config: 0 | |
9 | generated_by: 'Dist::Zilla version 4.101900, CPAN::Meta::Converter version 2.101670' | |
10 | license: artistic_2 | |
11 | meta-spec: | |
12 | url: http://module-build.sourceforge.net/META-spec-v1.4.html | |
13 | version: 1.4 | |
14 | name: MooseX-FollowPBP | |
15 | requires: | |
16 | Moose: 0.94 | |
17 | resources: | |
18 | bugtracker: http://rt.cpan.org/NoAuth/Bugs.html?Dist=MooseX-FollowPBP | |
19 | repository: git://git.moose.perl.org/MooseX-FollowPBP.git | |
20 | version: 0.04 |
0 | ||
1 | use strict; | |
2 | use warnings; | |
3 | ||
4 | ||
5 | ||
6 | use ExtUtils::MakeMaker 6.31; | |
7 | ||
8 | ||
9 | ||
10 | my %WriteMakefileArgs = ( | |
11 | 'ABSTRACT' => 'Name your accessors get_foo() and set_foo()', | |
12 | 'AUTHOR' => 'Dave Rolsky <autarch@urth.org>', | |
13 | 'BUILD_REQUIRES' => { | |
14 | 'Test::More' => '0.88' | |
15 | }, | |
16 | 'CONFIGURE_REQUIRES' => { | |
17 | 'ExtUtils::MakeMaker' => '6.31' | |
18 | }, | |
19 | 'DISTNAME' => 'MooseX-FollowPBP', | |
20 | 'EXE_FILES' => [], | |
21 | 'LICENSE' => 'artistic_2', | |
22 | 'NAME' => 'MooseX::FollowPBP', | |
23 | 'PREREQ_PM' => { | |
24 | 'Moose' => '0.94' | |
25 | }, | |
26 | 'VERSION' => '0.04', | |
27 | 'test' => { | |
28 | 'TESTS' => 't/*.t' | |
29 | } | |
30 | ); | |
31 | ||
32 | ||
33 | unless ( eval { ExtUtils::MakeMaker->VERSION(6.56) } ) { | |
34 | my $br = delete $WriteMakefileArgs{BUILD_REQUIRES}; | |
35 | my $pp = $WriteMakefileArgs{PREREQ_PM}; | |
36 | for my $mod ( keys %$br ) { | |
37 | if ( exists $pp->{$mod} ) { | |
38 | $pp->{$mod} = $br->{$mod} if $br->{$mod} > $pp->{$mod}; | |
39 | } | |
40 | else { | |
41 | $pp->{$mod} = $br->{$mod}; | |
42 | } | |
43 | } | |
44 | } | |
45 | ||
46 | delete $WriteMakefileArgs{CONFIGURE_REQUIRES} | |
47 | unless eval { ExtUtils::MakeMaker->VERSION(6.52) }; | |
48 | ||
49 | WriteMakefile(%WriteMakefileArgs); | |
50 | ||
51 | ||
52 |
0 | ||
1 | ||
2 | This archive contains the distribution MooseX-FollowPBP, | |
3 | version 0.04: | |
4 | ||
5 | Name your accessors get_foo() and set_foo() | |
6 | ||
7 | This software is Copyright (c) 2010 by Dave Rolsky. | |
8 | ||
9 | This is free software, licensed under: | |
10 | ||
11 | The Artistic License 2.0 | |
12 | ||
13 |
0 | This file contains message digests of all files listed in MANIFEST, | |
1 | signed via the Module::Signature module, version 0.61. | |
2 | ||
3 | To verify the content in this distribution, first make sure you have | |
4 | Module::Signature installed, then type: | |
5 | ||
6 | % cpansign -v | |
7 | ||
8 | It will check each file's integrity, as well as the signature's | |
9 | validity. If "==> Signature verified OK! <==" is not displayed, | |
10 | the distribution may already have been compromised, and you should | |
11 | not run its Makefile.PL or Build.PL. | |
12 | ||
13 | -----BEGIN PGP SIGNED MESSAGE----- | |
14 | Hash: SHA1 | |
15 | ||
16 | SHA1 0a07a507c78c3627d133e9682e3e87e563ea531c Changes | |
17 | SHA1 bf82cb551685805c60f322d035eaf4c716d41ecb INSTALL | |
18 | SHA1 23c628b4a8a36738405ccdacaeb912d2e727b4c0 LICENSE | |
19 | SHA1 acef0d84fb59cdd7e64b975050e1df12230abfdb MANIFEST | |
20 | SHA1 f2321163f3993e324576b7eaf32ce40f2f686684 META.json | |
21 | SHA1 41e93f3967102e9cdab5ff936503459640bf749d META.yml | |
22 | SHA1 584e32c3b7c02b4392a890ab510960353a58d3e3 Makefile.PL | |
23 | SHA1 90f469351d5944b3ff6444e0df7cf3d8311103ae README | |
24 | SHA1 de259567bf6029a6579abe6dbc5883bb897c191b dist.ini | |
25 | SHA1 cc967c63e0dc47ae2f01a2a2976270ddc269d3d1 lib/MooseX/FollowPBP.pm | |
26 | SHA1 c38de5a57db2699f407fe6aac4133cdc6397c688 lib/MooseX/FollowPBP/Role/Attribute.pm | |
27 | SHA1 33235c2593361ec8d256ff6dc65fdd7646189c40 t/basic.t | |
28 | SHA1 24b525e3c18f37f8022a01ec30de757cefb679ff t/release-eol.t | |
29 | SHA1 961a1e2c92d836c8cad2d34b784cbc75345dec63 t/release-kwalitee.t | |
30 | SHA1 455d1dd1867212a665ad5ea4126b572411de300c t/release-no-tabs.t | |
31 | SHA1 9433c240fe590bc404ab68ff63984df763e347ed t/release-pod-coverage.t | |
32 | SHA1 cb3e2ea10fc7e63d3c8c82561439919d5780bace t/release-pod-spell.t | |
33 | SHA1 9775e90d40f094f3e5a23c695d6e6e436a2232c3 t/release-pod-syntax.t | |
34 | -----BEGIN PGP SIGNATURE----- | |
35 | Version: GnuPG v1.4.10 (GNU/Linux) | |
36 | ||
37 | iEYEARECAAYFAkxGPUsACgkQIgMCsV8qvRKkqgCeMfn1oJsPvWIvnH2il/8kDQRC | |
38 | QvMAoJJETSK4udlvA6a9/dqgR695uzkX | |
39 | =tVgv | |
40 | -----END PGP SIGNATURE----- |
0 | name = MooseX-FollowPBP | |
1 | author = Dave Rolsky <autarch@urth.org> | |
2 | copyright_year = 2010 | |
3 | ||
4 | version = 0.04 | |
5 | ||
6 | [@Basic] | |
7 | ||
8 | [InstallGuide] | |
9 | [MetaJSON] | |
10 | ||
11 | [MetaResources] | |
12 | bugtracker.web = http://rt.cpan.org/NoAuth/Bugs.html?Dist=MooseX-FollowPBP | |
13 | bugtracker.mailto = bug-moosex-semiaffordanceaccessor@rt.cpan.org | |
14 | repository.url = git://git.moose.perl.org/MooseX-FollowPBP.git | |
15 | repository.web = http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=gitmo/MooseX-FollowPBP.git;a=summary | |
16 | repository.type = git | |
17 | ||
18 | [PodWeaver] | |
19 | ||
20 | [PkgVersion] | |
21 | ||
22 | [KwaliteeTests] | |
23 | [PodTests] | |
24 | [NoTabsTests] | |
25 | [EOLTests] | |
26 | [Signature] | |
27 | ||
28 | [CheckChangeLog] | |
29 | ||
30 | [Prereqs] | |
31 | Moose = 0.94 | |
32 | ||
33 | [Prereqs / TestRequires] | |
34 | Test::More = 0.88 | |
35 | ||
36 | [@Git] |
0 | package MooseX::FollowPBP::Role::Attribute; | |
1 | BEGIN { | |
2 | $MooseX::FollowPBP::Role::Attribute::VERSION = '0.04'; | |
3 | } | |
4 | ||
5 | use strict; | |
6 | use warnings; | |
7 | ||
8 | use Moose::Role; | |
9 | ||
10 | before _process_options => sub { | |
11 | my $class = shift; | |
12 | my $name = shift; | |
13 | my $options = shift; | |
14 | ||
15 | if ( exists $options->{is} | |
16 | && !( exists $options->{reader} || exists $options->{writer} ) | |
17 | && $options->{is} ne 'bare' ) { | |
18 | my $get; | |
19 | my $set; | |
20 | ||
21 | if ( $name =~ s/^_// ) { | |
22 | $get = '_get_'; | |
23 | $set = '_set_'; | |
24 | } | |
25 | else { | |
26 | $get = 'get_'; | |
27 | $set = 'set_'; | |
28 | } | |
29 | ||
30 | $options->{reader} = $get . $name; | |
31 | ||
32 | if ( $options->{is} eq 'rw' ) { | |
33 | $options->{writer} = $set . $name; | |
34 | } | |
35 | ||
36 | delete $options->{is}; | |
37 | } | |
38 | }; | |
39 | ||
40 | no Moose::Role; | |
41 | ||
42 | 1; | |
43 | ||
44 | ||
45 | ||
46 | __END__ | |
47 | =pod | |
48 | ||
49 | =head1 NAME | |
50 | ||
51 | MooseX::FollowPBP::Role::Attribute | |
52 | ||
53 | =head1 VERSION | |
54 | ||
55 | version 0.04 | |
56 | ||
57 | =head1 SYNOPSIS | |
58 | ||
59 | Moose::Util::MetaRole::apply_metaclass_roles | |
60 | ( for_class => $p{for_class}, | |
61 | attribute_metaclass_roles => | |
62 | ['MooseX::FollowPBP::Role::Attribute'], | |
63 | ); | |
64 | ||
65 | =head1 DESCRIPTION | |
66 | ||
67 | This role applies a method modifier to the C<_process_options()> | |
68 | method, and tweaks the reader and writer parameters so that they | |
69 | follow the style recommended in I<Perl Best Practices>. | |
70 | ||
71 | =head1 AUTHOR | |
72 | ||
73 | Dave Rolsky <autarch@urth.org> | |
74 | ||
75 | =head1 COPYRIGHT AND LICENSE | |
76 | ||
77 | This software is Copyright (c) 2010 by Dave Rolsky. | |
78 | ||
79 | This is free software, licensed under: | |
80 | ||
81 | The Artistic License 2.0 | |
82 | ||
83 | =cut | |
84 |
0 | package MooseX::FollowPBP; | |
1 | BEGIN { | |
2 | $MooseX::FollowPBP::VERSION = '0.04'; | |
3 | } | |
4 | ||
5 | use strict; | |
6 | use warnings; | |
7 | ||
8 | use Moose 0.94 (); | |
9 | use Moose::Exporter; | |
10 | use Moose::Util::MetaRole; | |
11 | use MooseX::FollowPBP::Role::Attribute; | |
12 | ||
13 | Moose::Exporter->setup_import_methods( | |
14 | class_metaroles => { | |
15 | attribute => ['MooseX::FollowPBP::Role::Attribute'], | |
16 | }, | |
17 | ); | |
18 | ||
19 | 1; | |
20 | ||
21 | # ABSTRACT: Name your accessors get_foo() and set_foo() | |
22 | ||
23 | ||
24 | ||
25 | =pod | |
26 | ||
27 | =head1 NAME | |
28 | ||
29 | MooseX::FollowPBP - Name your accessors get_foo() and set_foo() | |
30 | ||
31 | =head1 VERSION | |
32 | ||
33 | version 0.04 | |
34 | ||
35 | =head1 SYNOPSIS | |
36 | ||
37 | use Moose; | |
38 | use MooseX::FollowPBP; | |
39 | ||
40 | # make some attributes | |
41 | ||
42 | =head1 DESCRIPTION | |
43 | ||
44 | This module does not provide any methods. Simply loading it changes | |
45 | the default naming policy for the loading class so that accessors are | |
46 | separated into get and set methods. The get methods are prefixed with | |
47 | "get_" as the accessor, while set methods are prefixed with | |
48 | "set_". This is the naming style recommended by Damian Conway in | |
49 | I<Perl Best Practices>. | |
50 | ||
51 | If you define an attribute with a leading underscore, then both the | |
52 | get and set method will also have an underscore prefix. | |
53 | ||
54 | If you explicitly set a "reader" or "writer" name when creating an | |
55 | attribute, then that attribute's naming scheme is left unchanged. | |
56 | ||
57 | =head1 BUGS | |
58 | ||
59 | Please report any bugs or feature requests to | |
60 | C<bug-moosex-followpbp@rt.cpan.org>, or through the web interface at | |
61 | L<http://rt.cpan.org>. I will be notified, and then you'll | |
62 | automatically be notified of progress on your bug as I make changes. | |
63 | ||
64 | =head1 AUTHOR | |
65 | ||
66 | Dave Rolsky <autarch@urth.org> | |
67 | ||
68 | =head1 COPYRIGHT AND LICENSE | |
69 | ||
70 | This software is Copyright (c) 2010 by Dave Rolsky. | |
71 | ||
72 | This is free software, licensed under: | |
73 | ||
74 | The Artistic License 2.0 | |
75 | ||
76 | =cut | |
77 | ||
78 | ||
79 | __END__ | |
80 |
0 | use strict; | |
1 | use warnings; | |
2 | ||
3 | use Test::More; | |
4 | ||
5 | ||
6 | { | |
7 | package Standard; | |
8 | ||
9 | use Moose; | |
10 | ||
11 | has 'thing' => ( is => 'rw' ); | |
12 | has '_private' => ( is => 'rw' ); | |
13 | } | |
14 | ||
15 | { | |
16 | package PBP; | |
17 | ||
18 | use Moose; | |
19 | use MooseX::FollowPBP; | |
20 | ||
21 | has 'thing' => ( is => 'rw' ); | |
22 | has '_private' => ( is => 'rw' ); | |
23 | } | |
24 | ||
25 | { | |
26 | package PBP3; | |
27 | ||
28 | use Moose; | |
29 | use MooseX::FollowPBP; | |
30 | ||
31 | has 'ro' => ( is => 'ro' ); | |
32 | has 'thing' => ( is => 'rw', reader => 'thing' ); | |
33 | has 'thing2' => ( is => 'rw', writer => 'set_it' ); | |
34 | } | |
35 | ||
36 | { | |
37 | package PBP4; | |
38 | ||
39 | use Moose; | |
40 | use MooseX::FollowPBP; | |
41 | ||
42 | has 'bare' => ( is => 'bare' ); | |
43 | } | |
44 | ||
45 | ||
46 | ok( ! Standard->can('get_thing'), 'Standard->get_thing() does not exist' ); | |
47 | ok( ! Standard->can('set_thing'), 'Standard->set_thing() does not exist' ); | |
48 | ok( ! Standard->can('_get_private'), 'Standard->_get_private() does not exist' ); | |
49 | ok( ! Standard->can('_set_private'), 'Standard->_set_private() does not exist' ); | |
50 | ||
51 | ok( PBP->can('get_thing'), 'PBP->get_thing() exists' ); | |
52 | ok( PBP->can('set_thing'), 'PBP->set_thing() exists' ); | |
53 | ok( PBP->can('_get_private'), 'PBP->_get_private() exists' ); | |
54 | ok( PBP->can('_set_private'), 'PBP->_set_private() exists' ); | |
55 | ||
56 | ok( PBP3->can('get_ro'), 'PBP3->get_ro exists' ); | |
57 | ok( ! PBP3->can('set_ro'), 'PBP3->set_ro does not exist' ); | |
58 | ok( ! PBP3->can('get_thing'), 'PBP3->get_thing does not exist' ); | |
59 | ok( ! PBP3->can('set_thing'), 'PBP3->set_thing does not exist' ); | |
60 | ok( ! PBP3->can('get_thing2'), 'PBP3->get_thing2 does not exist' ); | |
61 | ok( ! PBP3->can('set_thing2'), 'PBP3->set_thing2 does not exist' ); | |
62 | ||
63 | ok( !PBP4->can('get_bare'), 'is => bare attribute is respected' ); | |
64 | ok( !PBP4->can('set_bare'), 'is => bare attribute is respected' ); | |
65 | ||
66 | done_testing(); |
0 | ||
1 | BEGIN { | |
2 | unless ($ENV{RELEASE_TESTING}) { | |
3 | require Test::More; | |
4 | Test::More::plan(skip_all => 'these tests are for release candidate testing'); | |
5 | } | |
6 | } | |
7 | ||
8 | use strict; | |
9 | use warnings; | |
10 | use Test::More; | |
11 | ||
12 | eval 'use Test::EOL'; | |
13 | plan skip_all => 'Test::EOL required' if $@; | |
14 | ||
15 | all_perl_files_ok(); |
0 | #!perl | |
1 | ||
2 | BEGIN { | |
3 | unless ($ENV{RELEASE_TESTING}) { | |
4 | require Test::More; | |
5 | Test::More::plan(skip_all => 'these tests are for release candidate testing'); | |
6 | } | |
7 | } | |
8 | ||
9 | ||
10 | use Test::More; | |
11 | ||
12 | eval "use Test::Kwalitee"; | |
13 | plan skip_all => "Test::Kwalitee required for testing kwalitee" | |
14 | if $@; |
0 | ||
1 | BEGIN { | |
2 | unless ($ENV{RELEASE_TESTING}) { | |
3 | require Test::More; | |
4 | Test::More::plan(skip_all => 'these tests are for release candidate testing'); | |
5 | } | |
6 | } | |
7 | ||
8 | use strict; | |
9 | use warnings; | |
10 | use Test::More; | |
11 | ||
12 | eval 'use Test::NoTabs'; | |
13 | plan skip_all => 'Test::NoTabs required' if $@; | |
14 | ||
15 | all_perl_files_ok(); |
0 | #!perl | |
1 | ||
2 | BEGIN { | |
3 | unless ($ENV{RELEASE_TESTING}) { | |
4 | require Test::More; | |
5 | Test::More::plan(skip_all => 'these tests are for release candidate testing'); | |
6 | } | |
7 | } | |
8 | ||
9 | ||
10 | use Test::More; | |
11 | ||
12 | eval "use Test::Pod::Coverage 1.08"; | |
13 | plan skip_all => "Test::Pod::Coverage 1.08 required for testing POD coverage" | |
14 | if $@; | |
15 | ||
16 | eval "use Pod::Coverage::TrustPod"; | |
17 | plan skip_all => "Pod::Coverage::TrustPod required for testing POD coverage" | |
18 | if $@; | |
19 | ||
20 | all_pod_coverage_ok({ coverage_class => 'Pod::Coverage::TrustPod' }); |
0 | ||
1 | BEGIN { | |
2 | unless ($ENV{RELEASE_TESTING}) { | |
3 | require Test::More; | |
4 | Test::More::plan(skip_all => 'these tests are for release candidate testing'); | |
5 | } | |
6 | } | |
7 | ||
8 | use strict; | |
9 | use warnings; | |
10 | ||
11 | use Test::More; | |
12 | ||
13 | eval "use Test::Spelling"; | |
14 | plan skip_all => "Test::Spelling required for testing POD coverage" | |
15 | if $@; | |
16 | ||
17 | my @stopwords; | |
18 | for (<DATA>) { | |
19 | chomp; | |
20 | push @stopwords, $_ | |
21 | unless /\A (?: \# | \s* \z)/msx; # skip comments, whitespace | |
22 | } | |
23 | ||
24 | add_stopwords(@stopwords); | |
25 | set_spell_cmd('aspell list -l en'); | |
26 | ||
27 | # This prevents a weird segfault from the aspell command - see | |
28 | # https://bugs.launchpad.net/ubuntu/+source/aspell/+bug/71322 | |
29 | local $ENV{LC_ALL} = 'C'; | |
30 | all_pod_files_spelling_ok(); | |
31 | ||
32 | __DATA__ | |
33 | PayPal | |
34 | affordance | |
35 | attribute's | |
36 | init |
0 | #!perl | |
1 | ||
2 | BEGIN { | |
3 | unless ($ENV{RELEASE_TESTING}) { | |
4 | require Test::More; | |
5 | Test::More::plan(skip_all => 'these tests are for release candidate testing'); | |
6 | } | |
7 | } | |
8 | ||
9 | use Test::More; | |
10 | ||
11 | eval "use Test::Pod 1.00"; | |
12 | plan skip_all => "Test::Pod 1.00 required for testing POD" if $@; | |
13 | ||
14 | all_pod_files_ok(); |