MooseX-Role-Parameterized-1.11000755000766000024 013513224542 15734 5ustar00etherstaff000000000000README100644000766000024 60213513224542 16653 0ustar00etherstaff000000000000MooseX-Role-Parameterized-1.11This archive contains the distribution MooseX-Role-Parameterized,
version 1.11:
Moose roles with composition parameters
This software is copyright (c) 2008 by Shawn M Moore.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
This README file was generated by Dist::Zilla::Plugin::Readme v6.013.
Changes100644000766000024 1512113513224542 17330 0ustar00etherstaff000000000000MooseX-Role-Parameterized-1.11Revision history for MooseX-Role-Parameterized
1.11 2019-07-16 01:33:16Z
- remove MooseX::Role::WithOverloading from test dependencies (RT#130075)
1.10 2017-04-20 17:50:53Z
- add MooseX::Role::Parameterised as stub documentation, for
discoverability
1.09 2016-08-07 01:20:31Z
- Give 'anonymous' generated roles names that are similar to the original
parameterized role so debug output is easier to read
1.08 2014-08-23 22:38:12Z
- add x_breaks metadata for incompatibility issue with MooseX::Storage
(now resolved with MooseX-Storage-0.47)
1.07 2014-08-06 05:44:11Z
- re-release to remove README.pod from shipped dist
1.06 2014-08-02 04:34:06Z
- Restored MooseX::Role::Parameterized->current_metaclass as a public
method. Apparently there is code on CPAN that relies on this.
1.05 2014-07-31 18:26:03Z
- If a parameterizable role was reinitialized after any parameters or a
role block was declared, those declarations were lost. Reinitialization
usually occurs when new metaroles are applied to the role by other
MooseX modules.
1.04 2014-07-31 14:53:26Z
- Convert this distribution to Dist::Zilla to resolve packaging insanity
1.03 2014-07-30
- This extension is now implemented as a role metarole, which means it can
(mostly) cooperate with other role extensions, such as
MooseX::Role::WithOverloading. Note that you should load
MooseX::Role::Parameterized _after_ other extensions.
- This module no longer supports passing a "-metaclass" parameter when you
load it. This was an artifact from a much earlier era of Moose
extensions.
- repository migrated to the github moose organization
1.02 2013-09-11
- set %INC entries in test to avoid failures with
Moose pre-2.11 (kentfrederic)
https://github.com/sartak/MooseX-Role-Parameterized/pull/7
https://rt.cpan.org/Ticket/Display.html?id=88593
1.01 2013-09-10
- removed use of deprecated Class::MOP::load_class (ether)
1.00 2012-01-12
- MooseX::Role::Parameterized now depends on Moose 2.0300
released 2011-09-23 for its several core improvements, hence the
major version number bump.
- MXRP now uses the new meta_lookup feature added to Moose 2.0300
(specifically for MXRP) to avoid duplicating Moose-0.60-era
Moose::Role sugar. This means the error messages you get are
better, and there's a lot less ugly code in MXRP.
- Remove alias/excludes special case errors. They have long since been
replaced in core Moose by -alias and -excludes, and were finally
removed in Moose 2.0200.
- Expressly forbid using role { } inside role { } (which makes no
sense but I suppose you could accidentally trigger it)
- Documentation fix from cweyl@alumni.drew.edu
https://github.com/sartak/MooseX-Role-Parameterized/pull/5
0.27 2011-08-22
- Remove MooseX::Role::Parameterized::Meta::Parameter; instead,
the default for parameters of (is => 'ro') is set by the
"parameter" sugar. This removes an unnecessary metaclass and
removes weird edge cases caused by it. Please please please
report any breakage!
0.26 2011-03-20
- make tests stop relying on a specific format for anon class/role names (doy)
0.25 2011-03-04
- Move the reinitialization hook from Role to Trait so hardcore hackers
(trait janitors) get the benefit too (doy)
0.24 2011-03-01
- Made MXRP more extensible by hooking into the role metaobject
reinitialization (doy)
0.23 2010-12-25
- Merry Christmas!
- Make MooseX::Role::Parameterized::Extending more instructive. Hopefully.
0.22 2010-11-26
- The test suite now uses Test::Fatal instead of Test::Exception (Karen
Etheridge).
- Fix Test::More dependency (reported by Father Chrysostomos) [rt.cpan.org #63222]
0.21 2010-11-15
- "package" arg can now tell generate_role to use a specific package (rjbs)
0.20 2010-11-02
- Minor test refactoring to fix blead support [rt.perl.org #78244]
0.19 2010-07-08
- Documentation improvements
0.18 2010-03-10
- Improve the error message when you leave off the role {} block
http://stackoverflow.com/questions/2418177/moose-and-error-messages-the-sun-and-the-moon/2418429
0.17 2010-02-11
- MANIFEST fixes (Karen Etheridge)
0.16 2010-02-04
- Allow specifying custom metaclasses for parameterized
roles (Oliver Charles)
- Documentation improvements (Oliver Charles, Sartak)
0.15 2010-01-05
- Move the guts of MXRPMR::Parameterized into a trait. See
http://www.nntp.perl.org/group/perl.moose/2010/01/msg1294.html (Sartak)
0.14 2009-12-06
- Fix a nesting bug reported by nothingmuch with a test case provided
by rafl (Sartak)
- Parameterized roles now keep track of their genitor role (Sartak)
- Delegate parameterizable->has_parameter to parameters->has_attribute
(Sartak)
0.13 2009-09-11
- Documentation improvements (Sartak)
0.12 2009-08-15
- Add MooseX::Role::Parameterized->current_metaclass for forward compat
(Sartak)
- Various documentation improvements (Sartak)
0.11 2009-08-09
- Explicitly test-require Test::Moose for Fedora packaging (RSRCHBOY)
- Finally a sensible synopsis (Sartak)
- More examples are always good :) (Sartak)
0.10 2009-06-25
- Fix test that now warns in Moose (Sartak)
0.09 2009-06-14
- Give all modules a version number (Sartak)
0.08 2009-06-14
- Fix mis-packaging :) (Sartak)
0.07 2009-06-14
- Leave the jules nest for github (Sartak)
- Switch to Module::Install (Sartak)
0.06 2009-05-12
- Fix long-standing role-role combination bug, reported by several
users (Sartak)
- Documentation improvements (Sartak)
0.05 2009-04-24
- Use replace_constructor in Meta::Parameter's make_immutable (nothingmuch)
- The & prototype hack has been obviated by Moose::Exporter goodness (rafl)
- List examples of MooseX::Role::Parameterized roles (Sartak)
0.04 2009-01-30
- The role block now receives as an argument the consuming class or role.
0.03 2009-01-17
- Parameters now default to read-only, so that you no longer have to specify
the extremely common case of: is => 'ro'
0.02 2008-12-09
- Using keywords outside of the role block is now allowed and handled.
- The role generated by the role block is now composed with its parent role.
This is so you can have unparameterized components to your parameterized
roles, and so that does_role returns true if you ask about the parent
role (instead of the anonymous parameterized role).
LICENSE100644000766000024 4366013513224542 17053 0ustar00etherstaff000000000000MooseX-Role-Parameterized-1.11This software is copyright (c) 2008 by Shawn M Moore.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
Terms of the Perl programming language system itself
a) the GNU General Public License as published by the Free
Software Foundation; either version 1, or (at your option) any
later version, or
b) the "Artistic License"
--- The GNU General Public License, Version 1, February 1989 ---
This software is Copyright (c) 2008 by Shawn M Moore.
This is free software, licensed under:
The GNU General Public License, Version 1, February 1989
GNU GENERAL PUBLIC LICENSE
Version 1, February 1989
Copyright (C) 1989 Free Software Foundation, Inc.
51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The license agreements of most software companies try to keep users
at the mercy of those companies. By contrast, our General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. The
General Public License applies to the Free Software Foundation's
software and to any other program whose authors commit to using it.
You can use it for your programs, too.
When we speak of free software, we are referring to freedom, not
price. Specifically, the General Public License is designed to make
sure that you have the freedom to give away or sell copies of free
software, that you receive source code or can get it if you want it,
that you can change the software or use pieces of it in new free
programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of a such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must tell them their rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License Agreement applies to any program or other work which
contains a notice placed by the copyright holder saying it may be
distributed under the terms of this General Public License. The
"Program", below, refers to any such program or work, and a "work based
on the Program" means either the Program or any work containing the
Program or a portion of it, either verbatim or with modifications. Each
licensee is addressed as "you".
1. You may copy and distribute verbatim copies of the Program's source
code as you receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice and
disclaimer of warranty; keep intact all the notices that refer to this
General Public License and to the absence of any warranty; and give any
other recipients of the Program a copy of this General Public License
along with the Program. You may charge a fee for the physical act of
transferring a copy.
2. You may modify your copy or copies of the Program or any portion of
it, and copy and distribute such modifications under the terms of Paragraph
1 above, provided that you also do the following:
a) cause the modified files to carry prominent notices stating that
you changed the files and the date of any change; and
b) cause the whole of any work that you distribute or publish, that
in whole or in part contains the Program or any part thereof, either
with or without modifications, to be licensed at no charge to all
third parties under the terms of this General Public License (except
that you may choose to grant warranty protection to some or all
third parties, at your option).
c) If the modified program normally reads commands interactively when
run, you must cause it, when started running for such interactive use
in the simplest and most usual way, to print or display an
announcement including an appropriate copyright notice and a notice
that there is no warranty (or else, saying that you provide a
warranty) and that users may redistribute the program under these
conditions, and telling the user how to view a copy of this General
Public License.
d) You may charge a fee for the physical act of transferring a
copy, and you may at your option offer warranty protection in
exchange for a fee.
Mere aggregation of another independent work with the Program (or its
derivative) on a volume of a storage or distribution medium does not bring
the other work under the scope of these terms.
3. You may copy and distribute the Program (or a portion or derivative of
it, under Paragraph 2) in object code or executable form under the terms of
Paragraphs 1 and 2 above provided that you also do one of the following:
a) accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of
Paragraphs 1 and 2 above; or,
b) accompany it with a written offer, valid for at least three
years, to give any third party free (except for a nominal charge
for the cost of distribution) a complete machine-readable copy of the
corresponding source code, to be distributed under the terms of
Paragraphs 1 and 2 above; or,
c) accompany it with the information you received as to where the
corresponding source code may be obtained. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form alone.)
Source code for a work means the preferred form of the work for making
modifications to it. For an executable file, complete source code means
all the source code for all modules it contains; but, as a special
exception, it need not include source code for modules which are standard
libraries that accompany the operating system on which the executable
file runs, or for standard header files or definitions files that
accompany that operating system.
4. You may not copy, modify, sublicense, distribute or transfer the
Program except as expressly provided under this General Public License.
Any attempt otherwise to copy, modify, sublicense, distribute or transfer
the Program is void, and will automatically terminate your rights to use
the Program under this License. However, parties who have received
copies, or rights to use copies, from you under this General Public
License will not have their licenses terminated so long as such parties
remain in full compliance.
5. By copying, distributing or modifying the Program (or any work based
on the Program) you indicate your acceptance of this license to do so,
and all its terms and conditions.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the original
licensor to copy, distribute or modify the Program subject to these
terms and conditions. You may not impose any further restrictions on the
recipients' exercise of the rights granted herein.
7. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of the license which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
the license, you may choose any version ever published by the Free Software
Foundation.
8. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
9. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
10. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
Appendix: How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to humanity, the best way to achieve this is to make it
free software which everyone can redistribute and change under these
terms.
To do so, attach the following notices to the program. It is safest to
attach them to the start of each source file to most effectively convey
the exclusion of warranty; and each file should have at least the
"copyright" line and a pointer to where the full notice is found.
Copyright (C) 19yy
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 1, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) 19xx name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the
appropriate parts of the General Public License. Of course, the
commands you use may be called something other than `show w' and `show
c'; they could even be mouse-clicks or menu items--whatever suits your
program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the
program `Gnomovision' (a program to direct compilers to make passes
at assemblers) written by James Hacker.
, 1 April 1989
Ty Coon, President of Vice
That's all there is to it!
--- The Artistic License 1.0 ---
This software is Copyright (c) 2008 by Shawn M Moore.
This is free software, licensed under:
The Artistic License 1.0
The Artistic License
Preamble
The intent of this document is to state the conditions under which a Package
may be copied, such that the Copyright Holder maintains some semblance of
artistic control over the development of the package, while giving the users of
the package the right to use and distribute the Package in a more-or-less
customary fashion, plus the right to make reasonable modifications.
Definitions:
- "Package" refers to the collection of files distributed by the Copyright
Holder, and derivatives of that collection of files created through
textual modification.
- "Standard Version" refers to such a Package if it has not been modified,
or has been modified in accordance with the wishes of the Copyright
Holder.
- "Copyright Holder" is whoever is named in the copyright or copyrights for
the package.
- "You" is you, if you're thinking about copying or distributing this Package.
- "Reasonable copying fee" is whatever you can justify on the basis of media
cost, duplication charges, time of people involved, and so on. (You will
not be required to justify it to the Copyright Holder, but only to the
computing community at large as a market that must bear the fee.)
- "Freely Available" means that no fee is charged for the item itself, though
there may be fees involved in handling the item. It also means that
recipients of the item may redistribute it under the same conditions they
received it.
1. You may make and give away verbatim copies of the source form of the
Standard Version of this Package without restriction, provided that you
duplicate all of the original copyright notices and associated disclaimers.
2. You may apply bug fixes, portability fixes and other modifications derived
from the Public Domain or from the Copyright Holder. A Package modified in such
a way shall still be considered the Standard Version.
3. You may otherwise modify your copy of this Package in any way, provided that
you insert a prominent notice in each changed file stating how and when you
changed that file, and provided that you do at least ONE of the following:
a) place your modifications in the Public Domain or otherwise make them
Freely Available, such as by posting said modifications to Usenet or an
equivalent medium, or placing the modifications on a major archive site
such as ftp.uu.net, or by allowing the Copyright Holder to include your
modifications in the Standard Version of the Package.
b) use the modified Package only within your corporation or organization.
c) rename any non-standard executables so the names do not conflict with
standard executables, which must also be provided, and provide a separate
manual page for each non-standard executable that clearly documents how it
differs from the Standard Version.
d) make other distribution arrangements with the Copyright Holder.
4. You may distribute the programs of this Package in object code or executable
form, provided that you do at least ONE of the following:
a) distribute a Standard Version of the executables and library files,
together with instructions (in the manual page or equivalent) on where to
get the Standard Version.
b) accompany the distribution with the machine-readable source of the Package
with your modifications.
c) accompany any non-standard executables with their corresponding Standard
Version executables, giving the non-standard executables non-standard
names, and clearly documenting the differences in manual pages (or
equivalent), together with instructions on where to get the Standard
Version.
d) make other distribution arrangements with the Copyright Holder.
5. You may charge a reasonable copying fee for any distribution of this
Package. You may charge any fee you choose for support of this Package. You
may not charge a fee for this Package itself. However, you may distribute this
Package in aggregate with other (possibly commercial) programs as part of a
larger (possibly commercial) software distribution provided that you do not
advertise this Package as a product of your own.
6. The scripts and library files supplied as input to or produced as output
from the programs of this Package do not automatically fall under the copyright
of this Package, but belong to whomever generated them, and may be sold
commercially, and may be aggregated with this Package.
7. C or perl subroutines supplied by you and linked into this Package shall not
be considered part of this Package.
8. The name of the Copyright Holder may not be used to endorse or promote
products derived from this software without specific prior written permission.
9. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
The End
INSTALL100644000766000024 456113513224542 17054 0ustar00etherstaff000000000000MooseX-Role-Parameterized-1.11This is the Perl distribution MooseX-Role-Parameterized.
Installing MooseX-Role-Parameterized is straightforward.
## Installation with cpanm
If you have cpanm, you only need one line:
% cpanm MooseX::Role::Parameterized
If it does not have permission to install modules to the current perl, cpanm
will automatically set up and install to a local::lib in your home directory.
See the local::lib documentation (https://metacpan.org/pod/local::lib) for
details on enabling it in your environment.
## Installing with the CPAN shell
Alternatively, if your CPAN shell is set up, you should just be able to do:
% cpan MooseX::Role::Parameterized
## Manual installation
As a last resort, you can manually install it. Download the tarball, untar it,
install configure prerequisites (see below), then build it:
% perl Build.PL
% ./Build && ./Build test
Then install it:
% ./Build install
Or the more portable variation:
% perl Build.PL
% perl Build
% perl Build test
% perl Build install
If your perl is system-managed, you can create a local::lib in your home
directory to install modules to. For details, see the local::lib documentation:
https://metacpan.org/pod/local::lib
The prerequisites of this distribution will also have to be installed manually. The
prerequisites are listed in one of the files: `MYMETA.yml` or `MYMETA.json` generated
by running the manual build process described above.
## Configure Prerequisites
This distribution requires other modules to be installed before this
distribution's installer can be run. They can be found under the
"configure_requires" key of META.yml or the
"{prereqs}{configure}{requires}" key of META.json.
## Other Prerequisites
This distribution may require additional modules to be installed after running
Build.PL or Makefile.PL.
Look for prerequisites in the following phases:
* to run ./Build or make, PHASE = build
* to use the module code itself, PHASE = runtime
* to run tests, PHASE = test
They can all be found in the "PHASE_requires" key of MYMETA.yml or the
"{prereqs}{PHASE}{requires}" key of MYMETA.json.
## Documentation
MooseX-Role-Parameterized documentation is available as POD.
You can run `perldoc` from a shell to read the documentation:
% perldoc MooseX::Role::Parameterized
For more information on installing Perl modules via CPAN, please see:
https://www.cpan.org/modules/INSTALL.html
dist.ini100600000766000024 170713513224542 17456 0ustar00etherstaff000000000000MooseX-Role-Parameterized-1.11name = MooseX-Role-Parameterized
author = Shawn M Moore
license = Perl_5
copyright_holder = Shawn M Moore
copyright_year = 2008
[@Author::ETHER]
:version = 0.117
authority = cpan:SARTAK
-remove = Test::PodSpelling ; TODO
-remove = Test::Pod::No404s ; Several of the blog articles we link to return 404 for bots :(
AutoPrereqs.skip[0] = ^(?:My|Other|Foo|t)
AutoPrereqs.skip[1] = ^P::Role$
AutoPrereqs.skip[2] = ^Test::Consumer$
Test::ReportPrereqs.include = Dist::CheckConflicts
Test::MinimumVersion.max_target_perl = 5.008003
StaticInstall.dry_run = 0 ; we can safely set this here
[Prereqs / DevelopRequires]
MooseX::Role::WithOverloading = 0.14 ; t/200-cooperative.t
[MetaResources]
x_IRC = irc://irc.perl.org/#moose
x_MailingList = http://lists.perl.org/list/moose.html
[Breaks]
MooseX::Storage = <= 0.46
[Test::CheckBreaks]
:version = 0.017
conflicts_module = Moose::Conflicts
conflicts_module = Module::Runtime::Conflicts
META.yml100644000766000024 7243113513224542 17315 0ustar00etherstaff000000000000MooseX-Role-Parameterized-1.11---
abstract: 'Moose roles with composition parameters'
author:
- 'Shawn M Moore '
build_requires:
CPAN::Meta::Check: '0.011'
CPAN::Meta::Requirements: '0'
Data::Dumper: '0'
File::Spec: '0'
Module::Metadata: '0'
Moose::Util::TypeConstraints: '0'
Storable: '0'
Test::Fatal: '0'
Test::Moose: '0'
Test::More: '0.96'
Test::Needs: '0'
lib: '0'
overload: '0'
perl: '5.008001'
configure_requires:
ExtUtils::MakeMaker: '0'
Module::Build::Tiny: '0.034'
perl: '5.008001'
dynamic_config: 0
generated_by: 'Dist::Zilla version 6.013, CPAN::Meta::Converter version 2.150010'
keywords:
- moose
- extension
- parameter
- role
- arguments
- dynamic
- parameterised
- parameterizable
- parameterisable
license: perl
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
version: '1.4'
name: MooseX-Role-Parameterized
no_index:
directory:
- t
- xt
provides:
MooseX::Role::Parameterised:
file: lib/MooseX/Role/Parameterised.pm
version: '1.11'
MooseX::Role::Parameterized:
file: lib/MooseX/Role/Parameterized.pm
version: '1.11'
MooseX::Role::Parameterized::Meta::Role::Parameterized:
file: lib/MooseX/Role/Parameterized/Meta/Role/Parameterized.pm
version: '1.11'
MooseX::Role::Parameterized::Meta::Trait::Parameterizable:
file: lib/MooseX/Role/Parameterized/Meta/Trait/Parameterizable.pm
version: '1.11'
MooseX::Role::Parameterized::Meta::Trait::Parameterized:
file: lib/MooseX/Role/Parameterized/Meta/Trait/Parameterized.pm
version: '1.11'
MooseX::Role::Parameterized::Parameters:
file: lib/MooseX/Role/Parameterized/Parameters.pm
version: '1.11'
requires:
Carp: '0'
Module::Runtime: '0'
Moose: '2.0300'
Moose::Exporter: '0'
Moose::Meta::Role: '0'
Moose::Role: '0'
Moose::Util: '0'
namespace::autoclean: '0'
namespace::clean: '0.19'
perl: '5.008001'
strict: '0'
warnings: '0'
resources:
IRC: irc://irc.perl.org/#moose
MailingList: http://lists.perl.org/list/moose.html
bugtracker: https://rt.cpan.org/Public/Dist/Display.html?Name=MooseX-Role-Parameterized
homepage: https://github.com/moose/MooseX-Role-Parameterized
repository: https://github.com/moose/MooseX-Role-Parameterized.git
version: '1.11'
x_Dist_Zilla:
perl:
version: '5.031001'
plugins:
-
class: Dist::Zilla::Plugin::Prereqs
config:
Dist::Zilla::Plugin::Prereqs:
phase: develop
type: recommends
name: '@Author::ETHER/pluginbundle version'
version: '6.013'
-
class: Dist::Zilla::Plugin::PromptIfStale
config:
Dist::Zilla::Plugin::PromptIfStale:
check_all_plugins: 0
check_all_prereqs: 0
modules:
- Dist::Zilla::PluginBundle::Author::ETHER
phase: build
run_under_travis: 0
skip: []
name: '@Author::ETHER/stale modules, build'
version: '0.055'
-
class: Dist::Zilla::Plugin::FileFinder::ByName
name: '@Author::ETHER/Examples'
version: '6.013'
-
class: Dist::Zilla::Plugin::Git::GatherDir
config:
Dist::Zilla::Plugin::GatherDir:
exclude_filename:
- CONTRIBUTING
- INSTALL
- LICENSE
- README.pod
exclude_match: []
follow_symlinks: 0
include_dotfiles: 0
prefix: ''
prune_directory: []
root: .
Dist::Zilla::Plugin::Git::GatherDir:
include_untracked: 0
name: '@Author::ETHER/Git::GatherDir'
version: '2.046'
-
class: Dist::Zilla::Plugin::MetaYAML
name: '@Author::ETHER/MetaYAML'
version: '6.013'
-
class: Dist::Zilla::Plugin::MetaJSON
name: '@Author::ETHER/MetaJSON'
version: '6.013'
-
class: Dist::Zilla::Plugin::Readme
name: '@Author::ETHER/Readme'
version: '6.013'
-
class: Dist::Zilla::Plugin::Manifest
name: '@Author::ETHER/Manifest'
version: '6.013'
-
class: Dist::Zilla::Plugin::License
name: '@Author::ETHER/License'
version: '6.013'
-
class: Dist::Zilla::Plugin::GenerateFile::FromShareDir
config:
Dist::Zilla::Plugin::GenerateFile::FromShareDir:
destination_filename: CONTRIBUTING
dist: Dist-Zilla-PluginBundle-Author-ETHER
encoding: UTF-8
has_xs: 0
location: build
source_filename: CONTRIBUTING
Dist::Zilla::Role::RepoFileInjector:
allow_overwrite: 1
repo_root: .
version: '0.009'
name: '@Author::ETHER/generate CONTRIBUTING'
version: '0.014'
-
class: Dist::Zilla::Plugin::InstallGuide
config:
Dist::Zilla::Role::ModuleMetadata:
Module::Metadata: '1.000036'
version: '0.006'
name: '@Author::ETHER/InstallGuide'
version: '1.200013'
-
class: Dist::Zilla::Plugin::Test::Compile
config:
Dist::Zilla::Plugin::Test::Compile:
bail_out_on_fail: '1'
fail_on_warning: author
fake_home: 0
filename: xt/author/00-compile.t
module_finder:
- ':InstallModules'
needs_display: 0
phase: develop
script_finder:
- ':PerlExecFiles'
- '@Author::ETHER/Examples'
skips: []
switch: []
name: '@Author::ETHER/Test::Compile'
version: '2.058'
-
class: Dist::Zilla::Plugin::Test::NoTabs
config:
Dist::Zilla::Plugin::Test::NoTabs:
filename: xt/author/no-tabs.t
finder:
- ':InstallModules'
- ':ExecFiles'
- '@Author::ETHER/Examples'
- ':TestFiles'
- ':ExtraTestFiles'
name: '@Author::ETHER/Test::NoTabs'
version: '0.15'
-
class: Dist::Zilla::Plugin::Test::EOL
config:
Dist::Zilla::Plugin::Test::EOL:
filename: xt/author/eol.t
finder:
- ':ExecFiles'
- ':ExtraTestFiles'
- ':InstallModules'
- ':TestFiles'
- '@Author::ETHER/Examples'
trailing_whitespace: 1
name: '@Author::ETHER/Test::EOL'
version: '0.19'
-
class: Dist::Zilla::Plugin::MetaTests
name: '@Author::ETHER/MetaTests'
version: '6.013'
-
class: Dist::Zilla::Plugin::Test::CPAN::Changes
config:
Dist::Zilla::Plugin::Test::CPAN::Changes:
changelog: Changes
name: '@Author::ETHER/Test::CPAN::Changes'
version: '0.012'
-
class: Dist::Zilla::Plugin::GenerateFile::FromShareDir
config:
Dist::Zilla::Plugin::GenerateFile::FromShareDir:
destination_filename: xt/author/changes_has_content.t
dist: Dist-Zilla-PluginBundle-Author-ETHER
encoding: UTF-8
location: build
source_filename: changes_has_content.t
Dist::Zilla::Role::RepoFileInjector:
allow_overwrite: 1
repo_root: .
version: '0.009'
name: '@Author::ETHER/generate xt/author/changes_has_content.t'
version: '0.014'
-
class: Dist::Zilla::Plugin::Test::ChangesHasContent
name: '@Author::ETHER/Test::ChangesHasContent'
version: '0.011'
-
class: Dist::Zilla::Plugin::Test::MinimumVersion
config:
Dist::Zilla::Plugin::Test::MinimumVersion:
max_target_perl: '5.008003'
name: '@Author::ETHER/Test::MinimumVersion'
version: '2.000010'
-
class: Dist::Zilla::Plugin::PodSyntaxTests
name: '@Author::ETHER/PodSyntaxTests'
version: '6.013'
-
class: Dist::Zilla::Plugin::PodCoverageTests
name: '@Author::ETHER/PodCoverageTests'
version: '6.013'
-
class: Dist::Zilla::Plugin::Test::Kwalitee
config:
Dist::Zilla::Plugin::Test::Kwalitee:
filename: xt/author/kwalitee.t
skiptest: []
name: '@Author::ETHER/Test::Kwalitee'
version: '2.12'
-
class: Dist::Zilla::Plugin::MojibakeTests
name: '@Author::ETHER/MojibakeTests'
version: '0.8'
-
class: Dist::Zilla::Plugin::Test::ReportPrereqs
name: '@Author::ETHER/Test::ReportPrereqs'
version: '0.027'
-
class: Dist::Zilla::Plugin::Test::Portability
config:
Dist::Zilla::Plugin::Test::Portability:
options: ''
name: '@Author::ETHER/Test::Portability'
version: '2.001000'
-
class: Dist::Zilla::Plugin::Test::CleanNamespaces
config:
Dist::Zilla::Plugin::Test::CleanNamespaces:
filename: xt/author/clean-namespaces.t
skips: []
name: '@Author::ETHER/Test::CleanNamespaces'
version: '0.006'
-
class: Dist::Zilla::Plugin::Git::Describe
name: '@Author::ETHER/Git::Describe'
version: '0.007'
-
class: Dist::Zilla::Plugin::PodWeaver
config:
Dist::Zilla::Plugin::PodWeaver:
config_plugins:
- '@Author::ETHER'
finder:
- ':InstallModules'
- ':ExecFiles'
plugins:
-
class: Pod::Weaver::Plugin::EnsurePod5
name: '@Author::ETHER/EnsurePod5'
version: '4.015'
-
class: Pod::Weaver::Plugin::H1Nester
name: '@Author::ETHER/H1Nester'
version: '4.015'
-
class: Pod::Weaver::Plugin::SingleEncoding
name: '@Author::ETHER/SingleEncoding'
version: '4.015'
-
class: Pod::Weaver::Plugin::Transformer
name: '@Author::ETHER/List'
version: '4.015'
-
class: Pod::Weaver::Plugin::Transformer
name: '@Author::ETHER/Verbatim'
version: '4.015'
-
class: Pod::Weaver::Section::Region
name: '@Author::ETHER/header'
version: '4.015'
-
class: Pod::Weaver::Section::Name
name: '@Author::ETHER/Name'
version: '4.015'
-
class: Pod::Weaver::Section::Version
name: '@Author::ETHER/Version'
version: '4.015'
-
class: Pod::Weaver::Section::Region
name: '@Author::ETHER/prelude'
version: '4.015'
-
class: Pod::Weaver::Section::Generic
name: SYNOPSIS
version: '4.015'
-
class: Pod::Weaver::Section::Generic
name: DESCRIPTION
version: '4.015'
-
class: Pod::Weaver::Section::Generic
name: OVERVIEW
version: '4.015'
-
class: Pod::Weaver::Section::Collect
name: ATTRIBUTES
version: '4.015'
-
class: Pod::Weaver::Section::Collect
name: METHODS
version: '4.015'
-
class: Pod::Weaver::Section::Collect
name: FUNCTIONS
version: '4.015'
-
class: Pod::Weaver::Section::Collect
name: TYPES
version: '4.015'
-
class: Pod::Weaver::Section::Leftovers
name: '@Author::ETHER/Leftovers'
version: '4.015'
-
class: Pod::Weaver::Section::Region
name: '@Author::ETHER/postlude'
version: '4.015'
-
class: Pod::Weaver::Section::GenerateSection
name: '@Author::ETHER/generate SUPPORT'
version: '1.06'
-
class: Pod::Weaver::Section::AllowOverride
name: '@Author::ETHER/allow override SUPPORT'
version: '0.05'
-
class: Pod::Weaver::Section::Authors
name: '@Author::ETHER/Authors'
version: '4.015'
-
class: Pod::Weaver::Section::AllowOverride
name: '@Author::ETHER/allow override AUTHOR'
version: '0.05'
-
class: Pod::Weaver::Section::Contributors
name: '@Author::ETHER/Contributors'
version: '0.009'
-
class: Pod::Weaver::Section::Legal
name: '@Author::ETHER/Legal'
version: '4.015'
-
class: Pod::Weaver::Section::Region
name: '@Author::ETHER/footer'
version: '4.015'
name: '@Author::ETHER/PodWeaver'
version: '4.008'
-
class: Dist::Zilla::Plugin::GithubMeta
name: '@Author::ETHER/GithubMeta'
version: '0.58'
-
class: Dist::Zilla::Plugin::AutoMetaResources
name: '@Author::ETHER/AutoMetaResources'
version: '1.21'
-
class: Dist::Zilla::Plugin::Authority
name: '@Author::ETHER/Authority'
version: '1.009'
-
class: Dist::Zilla::Plugin::MetaNoIndex
name: '@Author::ETHER/MetaNoIndex'
version: '6.013'
-
class: Dist::Zilla::Plugin::MetaProvides::Package
config:
Dist::Zilla::Plugin::MetaProvides::Package:
finder:
- ':InstallModules'
finder_objects:
-
class: Dist::Zilla::Plugin::FinderCode
name: ':InstallModules'
version: '6.013'
include_underscores: 0
Dist::Zilla::Role::MetaProvider::Provider:
$Dist::Zilla::Role::MetaProvider::Provider::VERSION: '2.002004'
inherit_missing: '0'
inherit_version: '0'
meta_noindex: '1'
Dist::Zilla::Role::ModuleMetadata:
Module::Metadata: '1.000036'
version: '0.006'
name: '@Author::ETHER/MetaProvides::Package'
version: '2.004003'
-
class: Dist::Zilla::Plugin::MetaConfig
name: '@Author::ETHER/MetaConfig'
version: '6.013'
-
class: Dist::Zilla::Plugin::Keywords
config:
Dist::Zilla::Plugin::Keywords:
keywords:
- moose
- extension
- parameter
- role
- arguments
- dynamic
- parameterised
- parameterizable
- parameterisable
name: '@Author::ETHER/Keywords'
version: '0.007'
-
class: Dist::Zilla::Plugin::UseUnsafeInc
config:
Dist::Zilla::Plugin::UseUnsafeInc:
dot_in_INC: 0
name: '@Author::ETHER/UseUnsafeInc'
version: '0.001'
-
class: Dist::Zilla::Plugin::AutoPrereqs
name: '@Author::ETHER/AutoPrereqs'
version: '6.013'
-
class: Dist::Zilla::Plugin::Prereqs::AuthorDeps
name: '@Author::ETHER/Prereqs::AuthorDeps'
version: '0.006'
-
class: Dist::Zilla::Plugin::MinimumPerl
name: '@Author::ETHER/MinimumPerl'
version: '1.006'
-
class: Dist::Zilla::Plugin::MakeMaker::Fallback
config:
Dist::Zilla::Plugin::MakeMaker:
make_path: make
version: '6.013'
Dist::Zilla::Plugin::MakeMaker::Awesome:
version: '0.48'
Dist::Zilla::Plugin::MakeMaker::Fallback:
skip_release_testing: 0
Dist::Zilla::Role::TestRunner:
default_jobs: 9
version: '6.013'
name: '@Author::ETHER/MakeMaker::Fallback'
version: '0.030'
-
class: Dist::Zilla::Plugin::ModuleBuildTiny::Fallback
config:
Dist::Zilla::Plugin::ModuleBuildTiny::Fallback:
mb_version: '0.28'
plugins:
-
class: Dist::Zilla::Plugin::ModuleBuild
config:
Dist::Zilla::Role::TestRunner:
default_jobs: 9
name: 'ModuleBuild, via ModuleBuildTiny::Fallback'
version: '6.013'
-
class: Dist::Zilla::Plugin::ModuleBuildTiny
config:
Dist::Zilla::Role::TestRunner:
default_jobs: 9
name: 'ModuleBuildTiny, via ModuleBuildTiny::Fallback'
version: '0.015'
Dist::Zilla::Role::TestRunner:
default_jobs: 9
name: '@Author::ETHER/ModuleBuildTiny::Fallback'
version: '0.025'
-
class: Dist::Zilla::Plugin::Git::Contributors
config:
Dist::Zilla::Plugin::Git::Contributors:
git_version: 2.19.1
include_authors: 0
include_releaser: 1
order_by: commits
paths: []
name: '@Author::ETHER/Git::Contributors'
version: '0.035'
-
class: Dist::Zilla::Plugin::StaticInstall
config:
Dist::Zilla::Plugin::StaticInstall:
dry_run: 0
mode: auto
name: '@Author::ETHER/StaticInstall'
version: '0.012'
-
class: Dist::Zilla::Plugin::RunExtraTests
config:
Dist::Zilla::Role::TestRunner:
default_jobs: 9
name: '@Author::ETHER/RunExtraTests'
version: '0.029'
-
class: Dist::Zilla::Plugin::CheckSelfDependency
config:
Dist::Zilla::Plugin::CheckSelfDependency:
finder:
- ':InstallModules'
Dist::Zilla::Role::ModuleMetadata:
Module::Metadata: '1.000036'
version: '0.006'
name: '@Author::ETHER/CheckSelfDependency'
version: '0.011'
-
class: Dist::Zilla::Plugin::Run::AfterBuild
config:
Dist::Zilla::Plugin::Run::Role::Runner:
fatal_errors: 1
quiet: 1
run:
- "bash -c \"test -e .ackrc && grep -q -- '--ignore-dir=.latest' .ackrc || echo '--ignore-dir=.latest' >> .ackrc; if [[ `dirname '%d'` != .build ]]; then test -e .ackrc && grep -q -- '--ignore-dir=%d' .ackrc || echo '--ignore-dir=%d' >> .ackrc; fi\""
version: '0.048'
name: '@Author::ETHER/.ackrc'
version: '0.048'
-
class: Dist::Zilla::Plugin::Run::AfterBuild
config:
Dist::Zilla::Plugin::Run::Role::Runner:
eval:
- "if ('%d' =~ /^%n-[.[:xdigit:]]+$/) { unlink '.latest'; symlink '%d', '.latest'; }"
fatal_errors: 0
quiet: 1
version: '0.048'
name: '@Author::ETHER/.latest'
version: '0.048'
-
class: Dist::Zilla::Plugin::CheckStrictVersion
name: '@Author::ETHER/CheckStrictVersion'
version: '0.001'
-
class: Dist::Zilla::Plugin::CheckMetaResources
name: '@Author::ETHER/CheckMetaResources'
version: '0.001'
-
class: Dist::Zilla::Plugin::EnsureLatestPerl
config:
Dist::Zilla::Plugin::EnsureLatestPerl:
Module::CoreList: '5.20190620'
name: '@Author::ETHER/EnsureLatestPerl'
version: '0.008'
-
class: Dist::Zilla::Plugin::PromptIfStale
config:
Dist::Zilla::Plugin::PromptIfStale:
check_all_plugins: 1
check_all_prereqs: 1
modules: []
phase: release
run_under_travis: 0
skip: []
name: '@Author::ETHER/stale modules, release'
version: '0.055'
-
class: Dist::Zilla::Plugin::Git::Check
config:
Dist::Zilla::Plugin::Git::Check:
untracked_files: die
Dist::Zilla::Role::Git::DirtyFiles:
allow_dirty: []
allow_dirty_match: []
changelog: Changes
Dist::Zilla::Role::Git::Repo:
git_version: 2.19.1
repo_root: .
name: '@Author::ETHER/initial check'
version: '2.046'
-
class: Dist::Zilla::Plugin::Git::CheckFor::MergeConflicts
config:
Dist::Zilla::Role::Git::Repo:
git_version: 2.19.1
repo_root: .
name: '@Author::ETHER/Git::CheckFor::MergeConflicts'
version: '0.014'
-
class: Dist::Zilla::Plugin::Git::CheckFor::CorrectBranch
config:
Dist::Zilla::Role::Git::Repo:
git_version: 2.19.1
repo_root: .
name: '@Author::ETHER/Git::CheckFor::CorrectBranch'
version: '0.014'
-
class: Dist::Zilla::Plugin::Git::Remote::Check
name: '@Author::ETHER/Git::Remote::Check'
version: 0.1.2
-
class: Dist::Zilla::Plugin::CheckPrereqsIndexed
name: '@Author::ETHER/CheckPrereqsIndexed'
version: '0.020'
-
class: Dist::Zilla::Plugin::TestRelease
name: '@Author::ETHER/TestRelease'
version: '6.013'
-
class: Dist::Zilla::Plugin::Git::Check
config:
Dist::Zilla::Plugin::Git::Check:
untracked_files: die
Dist::Zilla::Role::Git::DirtyFiles:
allow_dirty: []
allow_dirty_match: []
changelog: Changes
Dist::Zilla::Role::Git::Repo:
git_version: 2.19.1
repo_root: .
name: '@Author::ETHER/after tests'
version: '2.046'
-
class: Dist::Zilla::Plugin::CheckIssues
name: '@Author::ETHER/CheckIssues'
version: '0.010'
-
class: Dist::Zilla::Plugin::UploadToCPAN
name: '@Author::ETHER/UploadToCPAN'
version: '6.013'
-
class: Dist::Zilla::Plugin::CopyFilesFromRelease
config:
Dist::Zilla::Plugin::CopyFilesFromRelease:
filename:
- CONTRIBUTING
- INSTALL
- LICENCE
- LICENSE
- ppport.h
match: []
name: '@Author::ETHER/copy generated files'
version: '0.006'
-
class: Dist::Zilla::Plugin::ReadmeAnyFromPod
config:
Dist::Zilla::Role::FileWatcher:
version: '0.006'
name: '@Author::ETHER/ReadmeAnyFromPod'
version: '0.163250'
-
class: Dist::Zilla::Plugin::Prereqs
config:
Dist::Zilla::Plugin::Prereqs:
phase: develop
type: recommends
name: '@Author::ETHER/@Git::VersionManager/pluginbundle version'
version: '6.013'
-
class: Dist::Zilla::Plugin::RewriteVersion::Transitional
config:
Dist::Zilla::Plugin::RewriteVersion:
add_tarball_name: 0
finders:
- ':ExecFiles'
- ':InstallModules'
global: 1
skip_version_provider: 0
Dist::Zilla::Plugin::RewriteVersion::Transitional: {}
name: '@Author::ETHER/@Git::VersionManager/RewriteVersion::Transitional'
version: '0.009'
-
class: Dist::Zilla::Plugin::MetaProvides::Update
name: '@Author::ETHER/@Git::VersionManager/MetaProvides::Update'
version: '0.007'
-
class: Dist::Zilla::Plugin::CopyFilesFromRelease
config:
Dist::Zilla::Plugin::CopyFilesFromRelease:
filename:
- Changes
match: []
name: '@Author::ETHER/@Git::VersionManager/CopyFilesFromRelease'
version: '0.006'
-
class: Dist::Zilla::Plugin::Git::Commit
config:
Dist::Zilla::Plugin::Git::Commit:
add_files_in:
- .
commit_msg: '%N-%v%t%n%n%c'
Dist::Zilla::Role::Git::DirtyFiles:
allow_dirty:
- CONTRIBUTING
- Changes
- INSTALL
- LICENSE
- README.pod
allow_dirty_match: []
changelog: Changes
Dist::Zilla::Role::Git::Repo:
git_version: 2.19.1
repo_root: .
Dist::Zilla::Role::Git::StringFormatter:
time_zone: local
name: '@Author::ETHER/@Git::VersionManager/release snapshot'
version: '2.046'
-
class: Dist::Zilla::Plugin::Git::Tag
config:
Dist::Zilla::Plugin::Git::Tag:
branch: ~
changelog: Changes
signed: 0
tag: v1.11
tag_format: v%V
tag_message: v%v%t
Dist::Zilla::Role::Git::Repo:
git_version: 2.19.1
repo_root: .
Dist::Zilla::Role::Git::StringFormatter:
time_zone: local
name: '@Author::ETHER/@Git::VersionManager/Git::Tag'
version: '2.046'
-
class: Dist::Zilla::Plugin::BumpVersionAfterRelease::Transitional
config:
Dist::Zilla::Plugin::BumpVersionAfterRelease:
finders:
- ':ExecFiles'
- ':InstallModules'
global: 1
munge_makefile_pl: 1
Dist::Zilla::Plugin::BumpVersionAfterRelease::Transitional: {}
name: '@Author::ETHER/@Git::VersionManager/BumpVersionAfterRelease::Transitional'
version: '0.009'
-
class: Dist::Zilla::Plugin::NextRelease
name: '@Author::ETHER/@Git::VersionManager/NextRelease'
version: '6.013'
-
class: Dist::Zilla::Plugin::Git::Commit
config:
Dist::Zilla::Plugin::Git::Commit:
add_files_in: []
commit_msg: 'increment $VERSION after %v release'
Dist::Zilla::Role::Git::DirtyFiles:
allow_dirty:
- Build.PL
- Changes
- Makefile.PL
allow_dirty_match:
- (?^:^lib/.*\.pm$)
changelog: Changes
Dist::Zilla::Role::Git::Repo:
git_version: 2.19.1
repo_root: .
Dist::Zilla::Role::Git::StringFormatter:
time_zone: local
name: '@Author::ETHER/@Git::VersionManager/post-release commit'
version: '2.046'
-
class: Dist::Zilla::Plugin::Prereqs
config:
Dist::Zilla::Plugin::Prereqs:
phase: x_Dist_Zilla
type: requires
name: '@Author::ETHER/@Git::VersionManager/prereqs for @Git::VersionManager'
version: '6.013'
-
class: Dist::Zilla::Plugin::Git::Push
config:
Dist::Zilla::Plugin::Git::Push:
push_to:
- origin
remotes_must_exist: 1
Dist::Zilla::Role::Git::Repo:
git_version: 2.19.1
repo_root: .
name: '@Author::ETHER/Git::Push'
version: '2.046'
-
class: Dist::Zilla::Plugin::GitHub::Update
config:
Dist::Zilla::Plugin::GitHub::Update:
metacpan: 1
name: '@Author::ETHER/GitHub::Update'
version: '0.47'
-
class: Dist::Zilla::Plugin::Run::AfterRelease
config:
Dist::Zilla::Plugin::Run::Role::Runner:
fatal_errors: 0
quiet: 0
run:
- REDACTED
version: '0.048'
name: '@Author::ETHER/install release'
version: '0.048'
-
class: Dist::Zilla::Plugin::Run::AfterRelease
config:
Dist::Zilla::Plugin::Run::Role::Runner:
eval:
- 'print "release complete!\xa"'
fatal_errors: 1
quiet: 1
version: '0.048'
name: '@Author::ETHER/release complete'
version: '0.048'
-
class: Dist::Zilla::Plugin::ConfirmRelease
name: '@Author::ETHER/ConfirmRelease'
version: '6.013'
-
class: Dist::Zilla::Plugin::Prereqs
config:
Dist::Zilla::Plugin::Prereqs:
phase: x_Dist_Zilla
type: requires
name: '@Author::ETHER/prereqs for @Author::ETHER'
version: '6.013'
-
class: Dist::Zilla::Plugin::Prereqs
config:
Dist::Zilla::Plugin::Prereqs:
phase: develop
type: requires
name: DevelopRequires
version: '6.013'
-
class: Dist::Zilla::Plugin::MetaResources
name: MetaResources
version: '6.013'
-
class: Dist::Zilla::Plugin::Breaks
name: Breaks
version: '0.004'
-
class: Dist::Zilla::Plugin::Test::CheckBreaks
config:
Dist::Zilla::Plugin::Test::CheckBreaks:
conflicts_module:
- Module::Runtime::Conflicts
- Moose::Conflicts
no_forced_deps: 0
Dist::Zilla::Role::ModuleMetadata:
Module::Metadata: '1.000036'
version: '0.006'
name: Test::CheckBreaks
version: '0.019'
-
class: Dist::Zilla::Plugin::FinderCode
name: ':InstallModules'
version: '6.013'
-
class: Dist::Zilla::Plugin::FinderCode
name: ':IncModules'
version: '6.013'
-
class: Dist::Zilla::Plugin::FinderCode
name: ':TestFiles'
version: '6.013'
-
class: Dist::Zilla::Plugin::FinderCode
name: ':ExtraTestFiles'
version: '6.013'
-
class: Dist::Zilla::Plugin::FinderCode
name: ':ExecFiles'
version: '6.013'
-
class: Dist::Zilla::Plugin::FinderCode
name: ':PerlExecFiles'
version: '6.013'
-
class: Dist::Zilla::Plugin::FinderCode
name: ':ShareFiles'
version: '6.013'
-
class: Dist::Zilla::Plugin::FinderCode
name: ':MainModule'
version: '6.013'
-
class: Dist::Zilla::Plugin::FinderCode
name: ':AllFiles'
version: '6.013'
-
class: Dist::Zilla::Plugin::FinderCode
name: ':NoFiles'
version: '6.013'
-
class: Dist::Zilla::Plugin::VerifyPhases
name: '@Author::ETHER/PHASE VERIFICATION'
version: '0.016'
zilla:
class: Dist::Zilla::Dist::Builder
config:
is_trial: '0'
version: '6.013'
x_authority: cpan:SARTAK
x_breaks:
MooseX::Storage: '<= 0.46'
x_contributors:
- 'Karen Etheridge '
- 'Dave Rolsky '
- 'Jesse Luehrs '
- 'Oliver Charles '
- 'Yuval Kogman '
- "Robert 'phaylon' Sedlacek "
- 'Florian Ragwitz '
- 'Mark Fowler '
- 'Chris Weyl '
- 'Csson '
- 'Andy Jack '
- 'Ricardo Signes '
- 'Todd Hepler '
x_generated_by_perl: v5.31.1
x_serialization_backend: 'YAML::Tiny version 1.73'
x_spdx_expression: 'Artistic-1.0-Perl OR GPL-1.0-or-later'
x_static_install: 1
x_use_unsafe_inc: 0
MANIFEST100644000766000024 311213513224542 17143 0ustar00etherstaff000000000000MooseX-Role-Parameterized-1.11# This file was automatically generated by Dist::Zilla::Plugin::Manifest v6.013.
Build.PL
CONTRIBUTING
Changes
INSTALL
LICENSE
MANIFEST
META.json
META.yml
Makefile.PL
README
dist.ini
lib/MooseX/Role/Parameterised.pm
lib/MooseX/Role/Parameterized.pm
lib/MooseX/Role/Parameterized/Extending.pod
lib/MooseX/Role/Parameterized/Meta/Role/Parameterized.pm
lib/MooseX/Role/Parameterized/Meta/Trait/Parameterizable.pm
lib/MooseX/Role/Parameterized/Meta/Trait/Parameterized.pm
lib/MooseX/Role/Parameterized/Parameters.pm
lib/MooseX/Role/Parameterized/Tutorial.pod
t/00-report-prereqs.dd
t/00-report-prereqs.t
t/001-parameters.t
t/002-role-block.t
t/003-apply.t
t/004-with.t
t/005-with-parameterized.t
t/006-requires.t
t/007-excludes.t
t/008-method-modifers.t
t/009-override-super.t
t/010-blessed-confess.t
t/011-reference-parameters.t
t/012-rename-role.t
t/013-does.t
t/014-compose-parameterizable.t
t/015-compose-keywords.t
t/016-trait.t
t/017-current_metaclass.t
t/018-parameter-roles.t
t/020-metaclass-reinitialize.t
t/021-parameter-trait.t
t/022-export-p-trait.t
t/023-metarole-import-params.t
t/024-named-anonymous.t
t/100-erroneous-keywords.t
t/101-alias-excludes.t
t/102-nested.t
t/150-composite-role-application.t
t/200-cooperative.t
t/lib/Bar.pm
t/zzz-check-breaks.t
xt/author/00-compile.t
xt/author/changes_has_content.t
xt/author/clean-namespaces.t
xt/author/eol.t
xt/author/kwalitee.t
xt/author/minimum-version.t
xt/author/mojibake.t
xt/author/no-tabs.t
xt/author/pod-coverage.t
xt/author/pod-syntax.t
xt/author/portability.t
xt/release/changes_has_content.t
xt/release/cpan-changes.t
xt/release/distmeta.t
Build.PL100644000766000024 1054513513224542 17336 0ustar00etherstaff000000000000MooseX-Role-Parameterized-1.11# This Build.PL for MooseX-Role-Parameterized was generated by
# Dist::Zilla::Plugin::ModuleBuildTiny::Fallback 0.025
use strict;
use warnings;
my %configure_requires = (
'ExtUtils::MakeMaker' => '0',
'Module::Build::Tiny' => '0.034',
);
my %errors = map {
eval "require $_; $_->VERSION($configure_requires{$_}); 1";
$_ => $@,
} keys %configure_requires;
if (!grep { $_ } values %errors)
{
# This section for MooseX-Role-Parameterized was generated by Dist::Zilla::Plugin::ModuleBuildTiny 0.015.
use strict;
use warnings;
use 5.008001;
# use Module::Build::Tiny 0.034;
Module::Build::Tiny::Build_PL();
}
else
{
if (not $ENV{PERL_MB_FALLBACK_SILENCE_WARNING})
{
warn <<'EOW'
*** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING ***
If you're seeing this warning, your toolchain is really, really old* and you'll
almost certainly have problems installing CPAN modules from this century. But
never fear, dear user, for we have the technology to fix this!
If you're using CPAN.pm to install things, then you can upgrade it using:
cpan CPAN
If you're using CPANPLUS to install things, then you can upgrade it using:
cpanp CPANPLUS
If you're using cpanminus, you shouldn't be seeing this message in the first
place, so please file an issue on github.
This public service announcement was brought to you by the Perl Toolchain
Gang, the irc.perl.org #toolchain IRC channel, and the number 42.
----
* Alternatively, you are running this file manually, in which case you need
to learn to first fulfill all configure requires prerequisites listed in
META.yml or META.json -- or use a cpan client to install this distribution.
You can also silence this warning for future installations by setting the
PERL_MB_FALLBACK_SILENCE_WARNING environment variable, but please don't do
that until you fix your toolchain as described above.
Errors from configure prereqs:
EOW
. do {
require Data::Dumper; Data::Dumper->new([ \%errors ])->Indent(2)->Terse(1)->Sortkeys(1)->Dump;
};
sleep 10 if -t STDIN && (-t STDOUT || !(-f STDOUT || -c STDOUT));
}
# This section was automatically generated by Dist::Zilla::Plugin::ModuleBuild v6.013.
use strict;
use warnings;
require Module::Build; Module::Build->VERSION(0.28);
my %module_build_args = (
"configure_requires" => {
"ExtUtils::MakeMaker" => 0,
"Module::Build::Tiny" => "0.034",
"perl" => "5.008001"
},
"dist_abstract" => "Moose roles with composition parameters",
"dist_author" => [
"Shawn M Moore "
],
"dist_name" => "MooseX-Role-Parameterized",
"dist_version" => "1.11",
"license" => "perl",
"module_name" => "MooseX::Role::Parameterized",
"recursive_test_files" => 1,
"requires" => {
"Carp" => 0,
"Module::Runtime" => 0,
"Moose" => "2.0300",
"Moose::Exporter" => 0,
"Moose::Meta::Role" => 0,
"Moose::Role" => 0,
"Moose::Util" => 0,
"namespace::autoclean" => 0,
"namespace::clean" => "0.19",
"perl" => "5.008001",
"strict" => 0,
"warnings" => 0
},
"test_requires" => {
"CPAN::Meta::Check" => "0.011",
"CPAN::Meta::Requirements" => 0,
"Data::Dumper" => 0,
"File::Spec" => 0,
"Module::Metadata" => 0,
"Moose::Util::TypeConstraints" => 0,
"Storable" => 0,
"Test::Fatal" => 0,
"Test::Moose" => 0,
"Test::More" => "0.96",
"Test::Needs" => 0,
"lib" => 0,
"overload" => 0,
"perl" => "5.008001"
}
);
my %fallback_build_requires = (
"CPAN::Meta::Check" => "0.011",
"CPAN::Meta::Requirements" => 0,
"Data::Dumper" => 0,
"File::Spec" => 0,
"Module::Metadata" => 0,
"Moose::Util::TypeConstraints" => 0,
"Storable" => 0,
"Test::Fatal" => 0,
"Test::Moose" => 0,
"Test::More" => "0.96",
"Test::Needs" => 0,
"lib" => 0,
"overload" => 0,
"perl" => "5.008001"
);
unless ( eval { Module::Build->VERSION(0.4004) } ) {
delete $module_build_args{test_requires};
$module_build_args{build_requires} = \%fallback_build_requires;
}
my $build = Module::Build->new(%module_build_args);
$build->create_build_script;
}
META.json100644000766000024 14301313513224542 17500 0ustar00etherstaff000000000000MooseX-Role-Parameterized-1.11{
"abstract" : "Moose roles with composition parameters",
"author" : [
"Shawn M Moore "
],
"dynamic_config" : 0,
"generated_by" : "Dist::Zilla version 6.013, CPAN::Meta::Converter version 2.150010",
"keywords" : [
"moose",
"extension",
"parameter",
"role",
"arguments",
"dynamic",
"parameterised",
"parameterizable",
"parameterisable"
],
"license" : [
"perl_5"
],
"meta-spec" : {
"url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",
"version" : 2
},
"name" : "MooseX-Role-Parameterized",
"no_index" : {
"directory" : [
"t",
"xt"
]
},
"prereqs" : {
"configure" : {
"requires" : {
"ExtUtils::MakeMaker" : "0",
"Module::Build::Tiny" : "0.034",
"perl" : "5.008001"
}
},
"develop" : {
"recommends" : {
"Dist::Zilla::PluginBundle::Author::ETHER" : "0.149",
"Dist::Zilla::PluginBundle::Git::VersionManager" : "0.007"
},
"requires" : {
"Encode" : "0",
"File::Spec" : "0",
"IO::Handle" : "0",
"IPC::Open3" : "0",
"MooseX::Role::WithOverloading" : "0.14",
"Pod::Coverage::TrustPod" : "0",
"Test::CPAN::Changes" : "0.19",
"Test::CPAN::Meta" : "0",
"Test::CleanNamespaces" : "0.15",
"Test::EOL" : "0",
"Test::Kwalitee" : "1.21",
"Test::MinimumVersion" : "0",
"Test::Mojibake" : "0",
"Test::More" : "0.96",
"Test::NoTabs" : "0",
"Test::Pod" : "1.41",
"Test::Pod::Coverage" : "1.08",
"Test::Portability::Files" : "0"
}
},
"runtime" : {
"requires" : {
"Carp" : "0",
"Module::Runtime" : "0",
"Moose" : "2.0300",
"Moose::Exporter" : "0",
"Moose::Meta::Role" : "0",
"Moose::Role" : "0",
"Moose::Util" : "0",
"namespace::autoclean" : "0",
"namespace::clean" : "0.19",
"perl" : "5.008001",
"strict" : "0",
"warnings" : "0"
}
},
"test" : {
"recommends" : {
"CPAN::Meta" : "2.120900"
},
"requires" : {
"CPAN::Meta::Check" : "0.011",
"CPAN::Meta::Requirements" : "0",
"Data::Dumper" : "0",
"File::Spec" : "0",
"Module::Metadata" : "0",
"Moose::Util::TypeConstraints" : "0",
"Storable" : "0",
"Test::Fatal" : "0",
"Test::Moose" : "0",
"Test::More" : "0.96",
"Test::Needs" : "0",
"lib" : "0",
"overload" : "0",
"perl" : "5.008001"
}
},
"x_Dist_Zilla" : {
"requires" : {
"Dist::Zilla" : "5",
"Dist::Zilla::Plugin::Authority" : "1.009",
"Dist::Zilla::Plugin::AutoMetaResources" : "0",
"Dist::Zilla::Plugin::AutoPrereqs" : "5.038",
"Dist::Zilla::Plugin::Breaks" : "0",
"Dist::Zilla::Plugin::BumpVersionAfterRelease::Transitional" : "0.004",
"Dist::Zilla::Plugin::CheckIssues" : "0",
"Dist::Zilla::Plugin::CheckMetaResources" : "0",
"Dist::Zilla::Plugin::CheckPrereqsIndexed" : "0.019",
"Dist::Zilla::Plugin::CheckSelfDependency" : "0",
"Dist::Zilla::Plugin::CheckStrictVersion" : "0",
"Dist::Zilla::Plugin::ConfirmRelease" : "0",
"Dist::Zilla::Plugin::CopyFilesFromRelease" : "0",
"Dist::Zilla::Plugin::EnsureLatestPerl" : "0",
"Dist::Zilla::Plugin::FileFinder::ByName" : "0",
"Dist::Zilla::Plugin::GenerateFile::FromShareDir" : "0",
"Dist::Zilla::Plugin::Git::Check" : "0",
"Dist::Zilla::Plugin::Git::CheckFor::CorrectBranch" : "0.004",
"Dist::Zilla::Plugin::Git::CheckFor::MergeConflicts" : "0",
"Dist::Zilla::Plugin::Git::Commit" : "2.020",
"Dist::Zilla::Plugin::Git::Contributors" : "0.029",
"Dist::Zilla::Plugin::Git::Describe" : "0.004",
"Dist::Zilla::Plugin::Git::GatherDir" : "2.016",
"Dist::Zilla::Plugin::Git::Push" : "0",
"Dist::Zilla::Plugin::Git::Remote::Check" : "0",
"Dist::Zilla::Plugin::Git::Tag" : "0",
"Dist::Zilla::Plugin::GitHub::Update" : "0.40",
"Dist::Zilla::Plugin::GithubMeta" : "0.54",
"Dist::Zilla::Plugin::InstallGuide" : "1.200005",
"Dist::Zilla::Plugin::Keywords" : "0.004",
"Dist::Zilla::Plugin::License" : "5.038",
"Dist::Zilla::Plugin::MakeMaker::Fallback" : "0.029",
"Dist::Zilla::Plugin::Manifest" : "0",
"Dist::Zilla::Plugin::MetaConfig" : "0",
"Dist::Zilla::Plugin::MetaJSON" : "0",
"Dist::Zilla::Plugin::MetaNoIndex" : "0",
"Dist::Zilla::Plugin::MetaProvides::Package" : "1.15000002",
"Dist::Zilla::Plugin::MetaResources" : "0",
"Dist::Zilla::Plugin::MetaTests" : "0",
"Dist::Zilla::Plugin::MetaYAML" : "0",
"Dist::Zilla::Plugin::MinimumPerl" : "1.006",
"Dist::Zilla::Plugin::ModuleBuildTiny::Fallback" : "0.018",
"Dist::Zilla::Plugin::MojibakeTests" : "0.8",
"Dist::Zilla::Plugin::NextRelease" : "5.033",
"Dist::Zilla::Plugin::PodCoverageTests" : "5.040",
"Dist::Zilla::Plugin::PodSyntaxTests" : "5.040",
"Dist::Zilla::Plugin::PodWeaver" : "4.005",
"Dist::Zilla::Plugin::Prereqs" : "0",
"Dist::Zilla::Plugin::Prereqs::AuthorDeps" : "0.006",
"Dist::Zilla::Plugin::PromptIfStale" : "0",
"Dist::Zilla::Plugin::Readme" : "0",
"Dist::Zilla::Plugin::ReadmeAnyFromPod" : "0.142180",
"Dist::Zilla::Plugin::RewriteVersion::Transitional" : "0.004",
"Dist::Zilla::Plugin::Run::AfterBuild" : "0.041",
"Dist::Zilla::Plugin::Run::AfterRelease" : "0.038",
"Dist::Zilla::Plugin::RunExtraTests" : "0.024",
"Dist::Zilla::Plugin::StaticInstall" : "0.005",
"Dist::Zilla::Plugin::Test::CPAN::Changes" : "0.012",
"Dist::Zilla::Plugin::Test::ChangesHasContent" : "0",
"Dist::Zilla::Plugin::Test::CheckBreaks" : "0.017",
"Dist::Zilla::Plugin::Test::CleanNamespaces" : "0.006",
"Dist::Zilla::Plugin::Test::Compile" : "2.039",
"Dist::Zilla::Plugin::Test::EOL" : "0.17",
"Dist::Zilla::Plugin::Test::Kwalitee" : "2.10",
"Dist::Zilla::Plugin::Test::MinimumVersion" : "2.000010",
"Dist::Zilla::Plugin::Test::NoTabs" : "0.08",
"Dist::Zilla::Plugin::Test::Portability" : "2.000007",
"Dist::Zilla::Plugin::Test::ReportPrereqs" : "0.022",
"Dist::Zilla::Plugin::TestRelease" : "0",
"Dist::Zilla::Plugin::UploadToCPAN" : "0",
"Dist::Zilla::Plugin::UseUnsafeInc" : "0",
"Dist::Zilla::PluginBundle::Author::ETHER" : "0.117",
"Dist::Zilla::PluginBundle::Git::VersionManager" : "0.007",
"Software::License::Perl_5" : "0"
}
}
},
"provides" : {
"MooseX::Role::Parameterised" : {
"file" : "lib/MooseX/Role/Parameterised.pm",
"version" : "1.11"
},
"MooseX::Role::Parameterized" : {
"file" : "lib/MooseX/Role/Parameterized.pm",
"version" : "1.11"
},
"MooseX::Role::Parameterized::Meta::Role::Parameterized" : {
"file" : "lib/MooseX/Role/Parameterized/Meta/Role/Parameterized.pm",
"version" : "1.11"
},
"MooseX::Role::Parameterized::Meta::Trait::Parameterizable" : {
"file" : "lib/MooseX/Role/Parameterized/Meta/Trait/Parameterizable.pm",
"version" : "1.11"
},
"MooseX::Role::Parameterized::Meta::Trait::Parameterized" : {
"file" : "lib/MooseX/Role/Parameterized/Meta/Trait/Parameterized.pm",
"version" : "1.11"
},
"MooseX::Role::Parameterized::Parameters" : {
"file" : "lib/MooseX/Role/Parameterized/Parameters.pm",
"version" : "1.11"
}
},
"release_status" : "stable",
"resources" : {
"bugtracker" : {
"mailto" : "bug-MooseX-Role-Parameterized@rt.cpan.org",
"web" : "https://rt.cpan.org/Public/Dist/Display.html?Name=MooseX-Role-Parameterized"
},
"homepage" : "https://github.com/moose/MooseX-Role-Parameterized",
"repository" : {
"type" : "git",
"url" : "https://github.com/moose/MooseX-Role-Parameterized.git",
"web" : "https://github.com/moose/MooseX-Role-Parameterized"
},
"x_IRC" : "irc://irc.perl.org/#moose",
"x_MailingList" : "http://lists.perl.org/list/moose.html"
},
"version" : "1.11",
"x_Dist_Zilla" : {
"perl" : {
"version" : "5.031001"
},
"plugins" : [
{
"class" : "Dist::Zilla::Plugin::Prereqs",
"config" : {
"Dist::Zilla::Plugin::Prereqs" : {
"phase" : "develop",
"type" : "recommends"
}
},
"name" : "@Author::ETHER/pluginbundle version",
"version" : "6.013"
},
{
"class" : "Dist::Zilla::Plugin::PromptIfStale",
"config" : {
"Dist::Zilla::Plugin::PromptIfStale" : {
"check_all_plugins" : 0,
"check_all_prereqs" : 0,
"modules" : [
"Dist::Zilla::PluginBundle::Author::ETHER"
],
"phase" : "build",
"run_under_travis" : 0,
"skip" : []
}
},
"name" : "@Author::ETHER/stale modules, build",
"version" : "0.055"
},
{
"class" : "Dist::Zilla::Plugin::FileFinder::ByName",
"name" : "@Author::ETHER/Examples",
"version" : "6.013"
},
{
"class" : "Dist::Zilla::Plugin::Git::GatherDir",
"config" : {
"Dist::Zilla::Plugin::GatherDir" : {
"exclude_filename" : [
"CONTRIBUTING",
"INSTALL",
"LICENSE",
"README.pod"
],
"exclude_match" : [],
"follow_symlinks" : 0,
"include_dotfiles" : 0,
"prefix" : "",
"prune_directory" : [],
"root" : "."
},
"Dist::Zilla::Plugin::Git::GatherDir" : {
"include_untracked" : 0
}
},
"name" : "@Author::ETHER/Git::GatherDir",
"version" : "2.046"
},
{
"class" : "Dist::Zilla::Plugin::MetaYAML",
"name" : "@Author::ETHER/MetaYAML",
"version" : "6.013"
},
{
"class" : "Dist::Zilla::Plugin::MetaJSON",
"name" : "@Author::ETHER/MetaJSON",
"version" : "6.013"
},
{
"class" : "Dist::Zilla::Plugin::Readme",
"name" : "@Author::ETHER/Readme",
"version" : "6.013"
},
{
"class" : "Dist::Zilla::Plugin::Manifest",
"name" : "@Author::ETHER/Manifest",
"version" : "6.013"
},
{
"class" : "Dist::Zilla::Plugin::License",
"name" : "@Author::ETHER/License",
"version" : "6.013"
},
{
"class" : "Dist::Zilla::Plugin::GenerateFile::FromShareDir",
"config" : {
"Dist::Zilla::Plugin::GenerateFile::FromShareDir" : {
"destination_filename" : "CONTRIBUTING",
"dist" : "Dist-Zilla-PluginBundle-Author-ETHER",
"encoding" : "UTF-8",
"has_xs" : 0,
"location" : "build",
"source_filename" : "CONTRIBUTING"
},
"Dist::Zilla::Role::RepoFileInjector" : {
"allow_overwrite" : 1,
"repo_root" : ".",
"version" : "0.009"
}
},
"name" : "@Author::ETHER/generate CONTRIBUTING",
"version" : "0.014"
},
{
"class" : "Dist::Zilla::Plugin::InstallGuide",
"config" : {
"Dist::Zilla::Role::ModuleMetadata" : {
"Module::Metadata" : "1.000036",
"version" : "0.006"
}
},
"name" : "@Author::ETHER/InstallGuide",
"version" : "1.200013"
},
{
"class" : "Dist::Zilla::Plugin::Test::Compile",
"config" : {
"Dist::Zilla::Plugin::Test::Compile" : {
"bail_out_on_fail" : 1,
"fail_on_warning" : "author",
"fake_home" : 0,
"filename" : "xt/author/00-compile.t",
"module_finder" : [
":InstallModules"
],
"needs_display" : 0,
"phase" : "develop",
"script_finder" : [
":PerlExecFiles",
"@Author::ETHER/Examples"
],
"skips" : [],
"switch" : []
}
},
"name" : "@Author::ETHER/Test::Compile",
"version" : "2.058"
},
{
"class" : "Dist::Zilla::Plugin::Test::NoTabs",
"config" : {
"Dist::Zilla::Plugin::Test::NoTabs" : {
"filename" : "xt/author/no-tabs.t",
"finder" : [
":InstallModules",
":ExecFiles",
"@Author::ETHER/Examples",
":TestFiles",
":ExtraTestFiles"
]
}
},
"name" : "@Author::ETHER/Test::NoTabs",
"version" : "0.15"
},
{
"class" : "Dist::Zilla::Plugin::Test::EOL",
"config" : {
"Dist::Zilla::Plugin::Test::EOL" : {
"filename" : "xt/author/eol.t",
"finder" : [
":ExecFiles",
":ExtraTestFiles",
":InstallModules",
":TestFiles",
"@Author::ETHER/Examples"
],
"trailing_whitespace" : 1
}
},
"name" : "@Author::ETHER/Test::EOL",
"version" : "0.19"
},
{
"class" : "Dist::Zilla::Plugin::MetaTests",
"name" : "@Author::ETHER/MetaTests",
"version" : "6.013"
},
{
"class" : "Dist::Zilla::Plugin::Test::CPAN::Changes",
"config" : {
"Dist::Zilla::Plugin::Test::CPAN::Changes" : {
"changelog" : "Changes"
}
},
"name" : "@Author::ETHER/Test::CPAN::Changes",
"version" : "0.012"
},
{
"class" : "Dist::Zilla::Plugin::GenerateFile::FromShareDir",
"config" : {
"Dist::Zilla::Plugin::GenerateFile::FromShareDir" : {
"destination_filename" : "xt/author/changes_has_content.t",
"dist" : "Dist-Zilla-PluginBundle-Author-ETHER",
"encoding" : "UTF-8",
"location" : "build",
"source_filename" : "changes_has_content.t"
},
"Dist::Zilla::Role::RepoFileInjector" : {
"allow_overwrite" : 1,
"repo_root" : ".",
"version" : "0.009"
}
},
"name" : "@Author::ETHER/generate xt/author/changes_has_content.t",
"version" : "0.014"
},
{
"class" : "Dist::Zilla::Plugin::Test::ChangesHasContent",
"name" : "@Author::ETHER/Test::ChangesHasContent",
"version" : "0.011"
},
{
"class" : "Dist::Zilla::Plugin::Test::MinimumVersion",
"config" : {
"Dist::Zilla::Plugin::Test::MinimumVersion" : {
"max_target_perl" : 5.008003
}
},
"name" : "@Author::ETHER/Test::MinimumVersion",
"version" : "2.000010"
},
{
"class" : "Dist::Zilla::Plugin::PodSyntaxTests",
"name" : "@Author::ETHER/PodSyntaxTests",
"version" : "6.013"
},
{
"class" : "Dist::Zilla::Plugin::PodCoverageTests",
"name" : "@Author::ETHER/PodCoverageTests",
"version" : "6.013"
},
{
"class" : "Dist::Zilla::Plugin::Test::Kwalitee",
"config" : {
"Dist::Zilla::Plugin::Test::Kwalitee" : {
"filename" : "xt/author/kwalitee.t",
"skiptest" : []
}
},
"name" : "@Author::ETHER/Test::Kwalitee",
"version" : "2.12"
},
{
"class" : "Dist::Zilla::Plugin::MojibakeTests",
"name" : "@Author::ETHER/MojibakeTests",
"version" : "0.8"
},
{
"class" : "Dist::Zilla::Plugin::Test::ReportPrereqs",
"name" : "@Author::ETHER/Test::ReportPrereqs",
"version" : "0.027"
},
{
"class" : "Dist::Zilla::Plugin::Test::Portability",
"config" : {
"Dist::Zilla::Plugin::Test::Portability" : {
"options" : ""
}
},
"name" : "@Author::ETHER/Test::Portability",
"version" : "2.001000"
},
{
"class" : "Dist::Zilla::Plugin::Test::CleanNamespaces",
"config" : {
"Dist::Zilla::Plugin::Test::CleanNamespaces" : {
"filename" : "xt/author/clean-namespaces.t",
"skips" : []
}
},
"name" : "@Author::ETHER/Test::CleanNamespaces",
"version" : "0.006"
},
{
"class" : "Dist::Zilla::Plugin::Git::Describe",
"name" : "@Author::ETHER/Git::Describe",
"version" : "0.007"
},
{
"class" : "Dist::Zilla::Plugin::PodWeaver",
"config" : {
"Dist::Zilla::Plugin::PodWeaver" : {
"config_plugins" : [
"@Author::ETHER"
],
"finder" : [
":InstallModules",
":ExecFiles"
],
"plugins" : [
{
"class" : "Pod::Weaver::Plugin::EnsurePod5",
"name" : "@Author::ETHER/EnsurePod5",
"version" : "4.015"
},
{
"class" : "Pod::Weaver::Plugin::H1Nester",
"name" : "@Author::ETHER/H1Nester",
"version" : "4.015"
},
{
"class" : "Pod::Weaver::Plugin::SingleEncoding",
"name" : "@Author::ETHER/SingleEncoding",
"version" : "4.015"
},
{
"class" : "Pod::Weaver::Plugin::Transformer",
"name" : "@Author::ETHER/List",
"version" : "4.015"
},
{
"class" : "Pod::Weaver::Plugin::Transformer",
"name" : "@Author::ETHER/Verbatim",
"version" : "4.015"
},
{
"class" : "Pod::Weaver::Section::Region",
"name" : "@Author::ETHER/header",
"version" : "4.015"
},
{
"class" : "Pod::Weaver::Section::Name",
"name" : "@Author::ETHER/Name",
"version" : "4.015"
},
{
"class" : "Pod::Weaver::Section::Version",
"name" : "@Author::ETHER/Version",
"version" : "4.015"
},
{
"class" : "Pod::Weaver::Section::Region",
"name" : "@Author::ETHER/prelude",
"version" : "4.015"
},
{
"class" : "Pod::Weaver::Section::Generic",
"name" : "SYNOPSIS",
"version" : "4.015"
},
{
"class" : "Pod::Weaver::Section::Generic",
"name" : "DESCRIPTION",
"version" : "4.015"
},
{
"class" : "Pod::Weaver::Section::Generic",
"name" : "OVERVIEW",
"version" : "4.015"
},
{
"class" : "Pod::Weaver::Section::Collect",
"name" : "ATTRIBUTES",
"version" : "4.015"
},
{
"class" : "Pod::Weaver::Section::Collect",
"name" : "METHODS",
"version" : "4.015"
},
{
"class" : "Pod::Weaver::Section::Collect",
"name" : "FUNCTIONS",
"version" : "4.015"
},
{
"class" : "Pod::Weaver::Section::Collect",
"name" : "TYPES",
"version" : "4.015"
},
{
"class" : "Pod::Weaver::Section::Leftovers",
"name" : "@Author::ETHER/Leftovers",
"version" : "4.015"
},
{
"class" : "Pod::Weaver::Section::Region",
"name" : "@Author::ETHER/postlude",
"version" : "4.015"
},
{
"class" : "Pod::Weaver::Section::GenerateSection",
"name" : "@Author::ETHER/generate SUPPORT",
"version" : "1.06"
},
{
"class" : "Pod::Weaver::Section::AllowOverride",
"name" : "@Author::ETHER/allow override SUPPORT",
"version" : "0.05"
},
{
"class" : "Pod::Weaver::Section::Authors",
"name" : "@Author::ETHER/Authors",
"version" : "4.015"
},
{
"class" : "Pod::Weaver::Section::AllowOverride",
"name" : "@Author::ETHER/allow override AUTHOR",
"version" : "0.05"
},
{
"class" : "Pod::Weaver::Section::Contributors",
"name" : "@Author::ETHER/Contributors",
"version" : "0.009"
},
{
"class" : "Pod::Weaver::Section::Legal",
"name" : "@Author::ETHER/Legal",
"version" : "4.015"
},
{
"class" : "Pod::Weaver::Section::Region",
"name" : "@Author::ETHER/footer",
"version" : "4.015"
}
]
}
},
"name" : "@Author::ETHER/PodWeaver",
"version" : "4.008"
},
{
"class" : "Dist::Zilla::Plugin::GithubMeta",
"name" : "@Author::ETHER/GithubMeta",
"version" : "0.58"
},
{
"class" : "Dist::Zilla::Plugin::AutoMetaResources",
"name" : "@Author::ETHER/AutoMetaResources",
"version" : "1.21"
},
{
"class" : "Dist::Zilla::Plugin::Authority",
"name" : "@Author::ETHER/Authority",
"version" : "1.009"
},
{
"class" : "Dist::Zilla::Plugin::MetaNoIndex",
"name" : "@Author::ETHER/MetaNoIndex",
"version" : "6.013"
},
{
"class" : "Dist::Zilla::Plugin::MetaProvides::Package",
"config" : {
"Dist::Zilla::Plugin::MetaProvides::Package" : {
"finder" : [
":InstallModules"
],
"finder_objects" : [
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":InstallModules",
"version" : "6.013"
}
],
"include_underscores" : 0
},
"Dist::Zilla::Role::MetaProvider::Provider" : {
"$Dist::Zilla::Role::MetaProvider::Provider::VERSION" : "2.002004",
"inherit_missing" : 0,
"inherit_version" : 0,
"meta_noindex" : 1
},
"Dist::Zilla::Role::ModuleMetadata" : {
"Module::Metadata" : "1.000036",
"version" : "0.006"
}
},
"name" : "@Author::ETHER/MetaProvides::Package",
"version" : "2.004003"
},
{
"class" : "Dist::Zilla::Plugin::MetaConfig",
"name" : "@Author::ETHER/MetaConfig",
"version" : "6.013"
},
{
"class" : "Dist::Zilla::Plugin::Keywords",
"config" : {
"Dist::Zilla::Plugin::Keywords" : {
"keywords" : [
"moose",
"extension",
"parameter",
"role",
"arguments",
"dynamic",
"parameterised",
"parameterizable",
"parameterisable"
]
}
},
"name" : "@Author::ETHER/Keywords",
"version" : "0.007"
},
{
"class" : "Dist::Zilla::Plugin::UseUnsafeInc",
"config" : {
"Dist::Zilla::Plugin::UseUnsafeInc" : {
"dot_in_INC" : 0
}
},
"name" : "@Author::ETHER/UseUnsafeInc",
"version" : "0.001"
},
{
"class" : "Dist::Zilla::Plugin::AutoPrereqs",
"name" : "@Author::ETHER/AutoPrereqs",
"version" : "6.013"
},
{
"class" : "Dist::Zilla::Plugin::Prereqs::AuthorDeps",
"name" : "@Author::ETHER/Prereqs::AuthorDeps",
"version" : "0.006"
},
{
"class" : "Dist::Zilla::Plugin::MinimumPerl",
"name" : "@Author::ETHER/MinimumPerl",
"version" : "1.006"
},
{
"class" : "Dist::Zilla::Plugin::MakeMaker::Fallback",
"config" : {
"Dist::Zilla::Plugin::MakeMaker" : {
"make_path" : "make",
"version" : "6.013"
},
"Dist::Zilla::Plugin::MakeMaker::Awesome" : {
"version" : "0.48"
},
"Dist::Zilla::Plugin::MakeMaker::Fallback" : {
"skip_release_testing" : 0
},
"Dist::Zilla::Role::TestRunner" : {
"default_jobs" : 9,
"version" : "6.013"
}
},
"name" : "@Author::ETHER/MakeMaker::Fallback",
"version" : "0.030"
},
{
"class" : "Dist::Zilla::Plugin::ModuleBuildTiny::Fallback",
"config" : {
"Dist::Zilla::Plugin::ModuleBuildTiny::Fallback" : {
"mb_version" : "0.28",
"plugins" : [
{
"class" : "Dist::Zilla::Plugin::ModuleBuild",
"config" : {
"Dist::Zilla::Role::TestRunner" : {
"default_jobs" : 9
}
},
"name" : "ModuleBuild, via ModuleBuildTiny::Fallback",
"version" : "6.013"
},
{
"class" : "Dist::Zilla::Plugin::ModuleBuildTiny",
"config" : {
"Dist::Zilla::Role::TestRunner" : {
"default_jobs" : 9
}
},
"name" : "ModuleBuildTiny, via ModuleBuildTiny::Fallback",
"version" : "0.015"
}
]
},
"Dist::Zilla::Role::TestRunner" : {
"default_jobs" : 9
}
},
"name" : "@Author::ETHER/ModuleBuildTiny::Fallback",
"version" : "0.025"
},
{
"class" : "Dist::Zilla::Plugin::Git::Contributors",
"config" : {
"Dist::Zilla::Plugin::Git::Contributors" : {
"git_version" : "2.19.1",
"include_authors" : 0,
"include_releaser" : 1,
"order_by" : "commits",
"paths" : []
}
},
"name" : "@Author::ETHER/Git::Contributors",
"version" : "0.035"
},
{
"class" : "Dist::Zilla::Plugin::StaticInstall",
"config" : {
"Dist::Zilla::Plugin::StaticInstall" : {
"dry_run" : 0,
"mode" : "auto"
}
},
"name" : "@Author::ETHER/StaticInstall",
"version" : "0.012"
},
{
"class" : "Dist::Zilla::Plugin::RunExtraTests",
"config" : {
"Dist::Zilla::Role::TestRunner" : {
"default_jobs" : 9
}
},
"name" : "@Author::ETHER/RunExtraTests",
"version" : "0.029"
},
{
"class" : "Dist::Zilla::Plugin::CheckSelfDependency",
"config" : {
"Dist::Zilla::Plugin::CheckSelfDependency" : {
"finder" : [
":InstallModules"
]
},
"Dist::Zilla::Role::ModuleMetadata" : {
"Module::Metadata" : "1.000036",
"version" : "0.006"
}
},
"name" : "@Author::ETHER/CheckSelfDependency",
"version" : "0.011"
},
{
"class" : "Dist::Zilla::Plugin::Run::AfterBuild",
"config" : {
"Dist::Zilla::Plugin::Run::Role::Runner" : {
"fatal_errors" : 1,
"quiet" : 1,
"run" : [
"bash -c \"test -e .ackrc && grep -q -- '--ignore-dir=.latest' .ackrc || echo '--ignore-dir=.latest' >> .ackrc; if [[ `dirname '%d'` != .build ]]; then test -e .ackrc && grep -q -- '--ignore-dir=%d' .ackrc || echo '--ignore-dir=%d' >> .ackrc; fi\""
],
"version" : "0.048"
}
},
"name" : "@Author::ETHER/.ackrc",
"version" : "0.048"
},
{
"class" : "Dist::Zilla::Plugin::Run::AfterBuild",
"config" : {
"Dist::Zilla::Plugin::Run::Role::Runner" : {
"eval" : [
"if ('%d' =~ /^%n-[.[:xdigit:]]+$/) { unlink '.latest'; symlink '%d', '.latest'; }"
],
"fatal_errors" : 0,
"quiet" : 1,
"version" : "0.048"
}
},
"name" : "@Author::ETHER/.latest",
"version" : "0.048"
},
{
"class" : "Dist::Zilla::Plugin::CheckStrictVersion",
"name" : "@Author::ETHER/CheckStrictVersion",
"version" : "0.001"
},
{
"class" : "Dist::Zilla::Plugin::CheckMetaResources",
"name" : "@Author::ETHER/CheckMetaResources",
"version" : "0.001"
},
{
"class" : "Dist::Zilla::Plugin::EnsureLatestPerl",
"config" : {
"Dist::Zilla::Plugin::EnsureLatestPerl" : {
"Module::CoreList" : "5.20190620"
}
},
"name" : "@Author::ETHER/EnsureLatestPerl",
"version" : "0.008"
},
{
"class" : "Dist::Zilla::Plugin::PromptIfStale",
"config" : {
"Dist::Zilla::Plugin::PromptIfStale" : {
"check_all_plugins" : 1,
"check_all_prereqs" : 1,
"modules" : [],
"phase" : "release",
"run_under_travis" : 0,
"skip" : []
}
},
"name" : "@Author::ETHER/stale modules, release",
"version" : "0.055"
},
{
"class" : "Dist::Zilla::Plugin::Git::Check",
"config" : {
"Dist::Zilla::Plugin::Git::Check" : {
"untracked_files" : "die"
},
"Dist::Zilla::Role::Git::DirtyFiles" : {
"allow_dirty" : [],
"allow_dirty_match" : [],
"changelog" : "Changes"
},
"Dist::Zilla::Role::Git::Repo" : {
"git_version" : "2.19.1",
"repo_root" : "."
}
},
"name" : "@Author::ETHER/initial check",
"version" : "2.046"
},
{
"class" : "Dist::Zilla::Plugin::Git::CheckFor::MergeConflicts",
"config" : {
"Dist::Zilla::Role::Git::Repo" : {
"git_version" : "2.19.1",
"repo_root" : "."
}
},
"name" : "@Author::ETHER/Git::CheckFor::MergeConflicts",
"version" : "0.014"
},
{
"class" : "Dist::Zilla::Plugin::Git::CheckFor::CorrectBranch",
"config" : {
"Dist::Zilla::Role::Git::Repo" : {
"git_version" : "2.19.1",
"repo_root" : "."
}
},
"name" : "@Author::ETHER/Git::CheckFor::CorrectBranch",
"version" : "0.014"
},
{
"class" : "Dist::Zilla::Plugin::Git::Remote::Check",
"name" : "@Author::ETHER/Git::Remote::Check",
"version" : "0.1.2"
},
{
"class" : "Dist::Zilla::Plugin::CheckPrereqsIndexed",
"name" : "@Author::ETHER/CheckPrereqsIndexed",
"version" : "0.020"
},
{
"class" : "Dist::Zilla::Plugin::TestRelease",
"name" : "@Author::ETHER/TestRelease",
"version" : "6.013"
},
{
"class" : "Dist::Zilla::Plugin::Git::Check",
"config" : {
"Dist::Zilla::Plugin::Git::Check" : {
"untracked_files" : "die"
},
"Dist::Zilla::Role::Git::DirtyFiles" : {
"allow_dirty" : [],
"allow_dirty_match" : [],
"changelog" : "Changes"
},
"Dist::Zilla::Role::Git::Repo" : {
"git_version" : "2.19.1",
"repo_root" : "."
}
},
"name" : "@Author::ETHER/after tests",
"version" : "2.046"
},
{
"class" : "Dist::Zilla::Plugin::CheckIssues",
"name" : "@Author::ETHER/CheckIssues",
"version" : "0.010"
},
{
"class" : "Dist::Zilla::Plugin::UploadToCPAN",
"name" : "@Author::ETHER/UploadToCPAN",
"version" : "6.013"
},
{
"class" : "Dist::Zilla::Plugin::CopyFilesFromRelease",
"config" : {
"Dist::Zilla::Plugin::CopyFilesFromRelease" : {
"filename" : [
"CONTRIBUTING",
"INSTALL",
"LICENCE",
"LICENSE",
"ppport.h"
],
"match" : []
}
},
"name" : "@Author::ETHER/copy generated files",
"version" : "0.006"
},
{
"class" : "Dist::Zilla::Plugin::ReadmeAnyFromPod",
"config" : {
"Dist::Zilla::Role::FileWatcher" : {
"version" : "0.006"
}
},
"name" : "@Author::ETHER/ReadmeAnyFromPod",
"version" : "0.163250"
},
{
"class" : "Dist::Zilla::Plugin::Prereqs",
"config" : {
"Dist::Zilla::Plugin::Prereqs" : {
"phase" : "develop",
"type" : "recommends"
}
},
"name" : "@Author::ETHER/@Git::VersionManager/pluginbundle version",
"version" : "6.013"
},
{
"class" : "Dist::Zilla::Plugin::RewriteVersion::Transitional",
"config" : {
"Dist::Zilla::Plugin::RewriteVersion" : {
"add_tarball_name" : 0,
"finders" : [
":ExecFiles",
":InstallModules"
],
"global" : 1,
"skip_version_provider" : 0
},
"Dist::Zilla::Plugin::RewriteVersion::Transitional" : {}
},
"name" : "@Author::ETHER/@Git::VersionManager/RewriteVersion::Transitional",
"version" : "0.009"
},
{
"class" : "Dist::Zilla::Plugin::MetaProvides::Update",
"name" : "@Author::ETHER/@Git::VersionManager/MetaProvides::Update",
"version" : "0.007"
},
{
"class" : "Dist::Zilla::Plugin::CopyFilesFromRelease",
"config" : {
"Dist::Zilla::Plugin::CopyFilesFromRelease" : {
"filename" : [
"Changes"
],
"match" : []
}
},
"name" : "@Author::ETHER/@Git::VersionManager/CopyFilesFromRelease",
"version" : "0.006"
},
{
"class" : "Dist::Zilla::Plugin::Git::Commit",
"config" : {
"Dist::Zilla::Plugin::Git::Commit" : {
"add_files_in" : [
"."
],
"commit_msg" : "%N-%v%t%n%n%c"
},
"Dist::Zilla::Role::Git::DirtyFiles" : {
"allow_dirty" : [
"CONTRIBUTING",
"Changes",
"INSTALL",
"LICENSE",
"README.pod"
],
"allow_dirty_match" : [],
"changelog" : "Changes"
},
"Dist::Zilla::Role::Git::Repo" : {
"git_version" : "2.19.1",
"repo_root" : "."
},
"Dist::Zilla::Role::Git::StringFormatter" : {
"time_zone" : "local"
}
},
"name" : "@Author::ETHER/@Git::VersionManager/release snapshot",
"version" : "2.046"
},
{
"class" : "Dist::Zilla::Plugin::Git::Tag",
"config" : {
"Dist::Zilla::Plugin::Git::Tag" : {
"branch" : null,
"changelog" : "Changes",
"signed" : 0,
"tag" : "v1.11",
"tag_format" : "v%V",
"tag_message" : "v%v%t"
},
"Dist::Zilla::Role::Git::Repo" : {
"git_version" : "2.19.1",
"repo_root" : "."
},
"Dist::Zilla::Role::Git::StringFormatter" : {
"time_zone" : "local"
}
},
"name" : "@Author::ETHER/@Git::VersionManager/Git::Tag",
"version" : "2.046"
},
{
"class" : "Dist::Zilla::Plugin::BumpVersionAfterRelease::Transitional",
"config" : {
"Dist::Zilla::Plugin::BumpVersionAfterRelease" : {
"finders" : [
":ExecFiles",
":InstallModules"
],
"global" : 1,
"munge_makefile_pl" : 1
},
"Dist::Zilla::Plugin::BumpVersionAfterRelease::Transitional" : {}
},
"name" : "@Author::ETHER/@Git::VersionManager/BumpVersionAfterRelease::Transitional",
"version" : "0.009"
},
{
"class" : "Dist::Zilla::Plugin::NextRelease",
"name" : "@Author::ETHER/@Git::VersionManager/NextRelease",
"version" : "6.013"
},
{
"class" : "Dist::Zilla::Plugin::Git::Commit",
"config" : {
"Dist::Zilla::Plugin::Git::Commit" : {
"add_files_in" : [],
"commit_msg" : "increment $VERSION after %v release"
},
"Dist::Zilla::Role::Git::DirtyFiles" : {
"allow_dirty" : [
"Build.PL",
"Changes",
"Makefile.PL"
],
"allow_dirty_match" : [
"(?^:^lib/.*\\.pm$)"
],
"changelog" : "Changes"
},
"Dist::Zilla::Role::Git::Repo" : {
"git_version" : "2.19.1",
"repo_root" : "."
},
"Dist::Zilla::Role::Git::StringFormatter" : {
"time_zone" : "local"
}
},
"name" : "@Author::ETHER/@Git::VersionManager/post-release commit",
"version" : "2.046"
},
{
"class" : "Dist::Zilla::Plugin::Prereqs",
"config" : {
"Dist::Zilla::Plugin::Prereqs" : {
"phase" : "x_Dist_Zilla",
"type" : "requires"
}
},
"name" : "@Author::ETHER/@Git::VersionManager/prereqs for @Git::VersionManager",
"version" : "6.013"
},
{
"class" : "Dist::Zilla::Plugin::Git::Push",
"config" : {
"Dist::Zilla::Plugin::Git::Push" : {
"push_to" : [
"origin"
],
"remotes_must_exist" : 1
},
"Dist::Zilla::Role::Git::Repo" : {
"git_version" : "2.19.1",
"repo_root" : "."
}
},
"name" : "@Author::ETHER/Git::Push",
"version" : "2.046"
},
{
"class" : "Dist::Zilla::Plugin::GitHub::Update",
"config" : {
"Dist::Zilla::Plugin::GitHub::Update" : {
"metacpan" : 1
}
},
"name" : "@Author::ETHER/GitHub::Update",
"version" : "0.47"
},
{
"class" : "Dist::Zilla::Plugin::Run::AfterRelease",
"config" : {
"Dist::Zilla::Plugin::Run::Role::Runner" : {
"fatal_errors" : 0,
"quiet" : 0,
"run" : [
"REDACTED"
],
"version" : "0.048"
}
},
"name" : "@Author::ETHER/install release",
"version" : "0.048"
},
{
"class" : "Dist::Zilla::Plugin::Run::AfterRelease",
"config" : {
"Dist::Zilla::Plugin::Run::Role::Runner" : {
"eval" : [
"print \"release complete!\\xa\""
],
"fatal_errors" : 1,
"quiet" : 1,
"version" : "0.048"
}
},
"name" : "@Author::ETHER/release complete",
"version" : "0.048"
},
{
"class" : "Dist::Zilla::Plugin::ConfirmRelease",
"name" : "@Author::ETHER/ConfirmRelease",
"version" : "6.013"
},
{
"class" : "Dist::Zilla::Plugin::Prereqs",
"config" : {
"Dist::Zilla::Plugin::Prereqs" : {
"phase" : "x_Dist_Zilla",
"type" : "requires"
}
},
"name" : "@Author::ETHER/prereqs for @Author::ETHER",
"version" : "6.013"
},
{
"class" : "Dist::Zilla::Plugin::Prereqs",
"config" : {
"Dist::Zilla::Plugin::Prereqs" : {
"phase" : "develop",
"type" : "requires"
}
},
"name" : "DevelopRequires",
"version" : "6.013"
},
{
"class" : "Dist::Zilla::Plugin::MetaResources",
"name" : "MetaResources",
"version" : "6.013"
},
{
"class" : "Dist::Zilla::Plugin::Breaks",
"name" : "Breaks",
"version" : "0.004"
},
{
"class" : "Dist::Zilla::Plugin::Test::CheckBreaks",
"config" : {
"Dist::Zilla::Plugin::Test::CheckBreaks" : {
"conflicts_module" : [
"Module::Runtime::Conflicts",
"Moose::Conflicts"
],
"no_forced_deps" : 0
},
"Dist::Zilla::Role::ModuleMetadata" : {
"Module::Metadata" : "1.000036",
"version" : "0.006"
}
},
"name" : "Test::CheckBreaks",
"version" : "0.019"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":InstallModules",
"version" : "6.013"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":IncModules",
"version" : "6.013"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":TestFiles",
"version" : "6.013"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":ExtraTestFiles",
"version" : "6.013"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":ExecFiles",
"version" : "6.013"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":PerlExecFiles",
"version" : "6.013"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":ShareFiles",
"version" : "6.013"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":MainModule",
"version" : "6.013"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":AllFiles",
"version" : "6.013"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":NoFiles",
"version" : "6.013"
},
{
"class" : "Dist::Zilla::Plugin::VerifyPhases",
"name" : "@Author::ETHER/PHASE VERIFICATION",
"version" : "0.016"
}
],
"zilla" : {
"class" : "Dist::Zilla::Dist::Builder",
"config" : {
"is_trial" : 0
},
"version" : "6.013"
}
},
"x_authority" : "cpan:SARTAK",
"x_breaks" : {
"MooseX::Storage" : "<= 0.46"
},
"x_contributors" : [
"Karen Etheridge ",
"Dave Rolsky ",
"Jesse Luehrs ",
"Oliver Charles ",
"Yuval Kogman ",
"Robert 'phaylon' Sedlacek ",
"Florian Ragwitz ",
"Mark Fowler ",
"Chris Weyl ",
"Csson ",
"Andy Jack ",
"Ricardo Signes ",
"Todd Hepler "
],
"x_generated_by_perl" : "v5.31.1",
"x_serialization_backend" : "Cpanel::JSON::XS version 4.12",
"x_spdx_expression" : "Artistic-1.0-Perl OR GPL-1.0-or-later",
"x_static_install" : 1,
"x_use_unsafe_inc" : 0
}
Makefile.PL100644000766000024 1036313513224542 20012 0ustar00etherstaff000000000000MooseX-Role-Parameterized-1.11# This Makefile.PL for MooseX-Role-Parameterized was generated by
# Dist::Zilla::Plugin::MakeMaker::Fallback 0.030
# and Dist::Zilla::Plugin::MakeMaker::Awesome 0.48.
# Don't edit it but the dist.ini and plugins used to construct it.
use strict;
use warnings;
use 5.008001;
use ExtUtils::MakeMaker;
BEGIN {
my %configure_requires = (
'ExtUtils::MakeMaker' => '0',
'Module::Build::Tiny' => '0.034',
);
my %errors = map {
eval "require $_; $_->VERSION($configure_requires{$_}); 1";
$_ => $@,
} keys %configure_requires;
if (grep { $_ } values %errors)
{
warn "Errors from configure prereqs:\n"
. do {
require Data::Dumper; Data::Dumper->new([ \%errors ])->Indent(2)->Terse(1)->Sortkeys(1)->Dump;
};
}
if (not $ENV{PERL_MM_FALLBACK_SILENCE_WARNING})
{
warn <<'EOW';
*** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING ***
If you're seeing this warning, your toolchain is really, really old* and
you'll almost certainly have problems installing CPAN modules from this
century. But never fear, dear user, for we have the technology to fix this!
If you're using CPAN.pm to install things, then you can upgrade it using:
cpan CPAN
If you're using CPANPLUS to install things, then you can upgrade it using:
cpanp CPANPLUS
If you're using cpanminus, you shouldn't be seeing this message in the first
place, so please file an issue on github.
If you're using a packaging tool through a unix distribution, this issue
should be reported to the package manager.
If you're installing manually, please retrain your fingers to run Build.PL
when present instead of Makefile.PL.
This public service announcement was brought to you by the Perl Toolchain
Gang, the irc.perl.org #toolchain IRC channel, and the number 42.
----
* Alternatively, you are doing something overly clever, in which case you
should consider setting the 'prefer_installer' config option in CPAN.pm, or
'prefer_makefile' in CPANPLUS, to 'mb" and '0' respectively.
You can also silence this warning for future installations by setting the
PERL_MM_FALLBACK_SILENCE_WARNING environment variable.
EOW
sleep 10 if -t STDIN && (-t STDOUT || !(-f STDOUT || -c STDOUT));
}
} # end BEGIN
my %WriteMakefileArgs = (
"ABSTRACT" => "Moose roles with composition parameters",
"AUTHOR" => "Shawn M Moore ",
"CONFIGURE_REQUIRES" => {
"ExtUtils::MakeMaker" => 0,
"Module::Build::Tiny" => "0.034"
},
"DISTNAME" => "MooseX-Role-Parameterized",
"LICENSE" => "perl",
"MIN_PERL_VERSION" => "5.008001",
"NAME" => "MooseX::Role::Parameterized",
"PL_FILES" => {},
"PREREQ_PM" => {
"Carp" => 0,
"Module::Runtime" => 0,
"Moose" => "2.0300",
"Moose::Exporter" => 0,
"Moose::Meta::Role" => 0,
"Moose::Role" => 0,
"Moose::Util" => 0,
"namespace::autoclean" => 0,
"namespace::clean" => "0.19",
"strict" => 0,
"warnings" => 0
},
"TEST_REQUIRES" => {
"CPAN::Meta::Check" => "0.011",
"CPAN::Meta::Requirements" => 0,
"Data::Dumper" => 0,
"File::Spec" => 0,
"Module::Metadata" => 0,
"Moose::Util::TypeConstraints" => 0,
"Storable" => 0,
"Test::Fatal" => 0,
"Test::Moose" => 0,
"Test::More" => "0.96",
"Test::Needs" => 0,
"lib" => 0,
"overload" => 0
},
"VERSION" => "1.11",
"test" => {
"TESTS" => "t/*.t"
}
);
my %FallbackPrereqs = (
"CPAN::Meta::Check" => "0.011",
"CPAN::Meta::Requirements" => 0,
"Carp" => 0,
"Data::Dumper" => 0,
"File::Spec" => 0,
"Module::Metadata" => 0,
"Module::Runtime" => 0,
"Moose" => "2.0300",
"Moose::Exporter" => 0,
"Moose::Meta::Role" => 0,
"Moose::Role" => 0,
"Moose::Util" => 0,
"Moose::Util::TypeConstraints" => 0,
"Storable" => 0,
"Test::Fatal" => 0,
"Test::Moose" => 0,
"Test::More" => "0.96",
"Test::Needs" => 0,
"lib" => 0,
"namespace::autoclean" => 0,
"namespace::clean" => "0.19",
"overload" => 0,
"strict" => 0,
"warnings" => 0
);
unless ( eval { ExtUtils::MakeMaker->VERSION('6.63_03') } ) {
delete $WriteMakefileArgs{TEST_REQUIRES};
delete $WriteMakefileArgs{BUILD_REQUIRES};
$WriteMakefileArgs{PREREQ_PM} = \%FallbackPrereqs;
}
delete $WriteMakefileArgs{CONFIGURE_REQUIRES}
unless eval { ExtUtils::MakeMaker->VERSION(6.52) };
WriteMakefile(%WriteMakefileArgs);
t000755000766000024 013513224542 16120 5ustar00etherstaff000000000000MooseX-Role-Parameterized-1.11004-with.t100600000766000024 215613513224542 17715 0ustar00etherstaff000000000000MooseX-Role-Parameterized-1.11/tuse strict;
use warnings;
use Test::More 0.88;
do {
package MyItem::Role::Wearable;
use Moose::Role;
has is_worn => (
is => 'rw',
isa => 'Bool',
default => 0,
);
sub equip { shift->is_worn(1) }
sub remove { shift->is_worn(0) }
};
do {
package MyItem::Role::Equippable;
use MooseX::Role::Parameterized;
parameter slot => (
isa => 'Str',
required => 1,
);
role {
my $p = shift;
with 'MyItem::Role::Wearable';
method slot => sub { $p->slot };
};
};
do {
package MyItem::Helmet;
use Moose;
with 'MyItem::Role::Equippable' => {
slot => 'head',
};
};
do {
package MyItem::Belt;
use Moose;
with 'MyItem::Role::Equippable' => {
slot => 'waist',
};
};
can_ok('MyItem::Helmet', qw/is_worn equip remove slot/);
can_ok('MyItem::Belt', qw/is_worn equip remove slot/);
my $visored = MyItem::Helmet->new(is_worn => 1);
ok($visored->is_worn);
is($visored->slot, 'head');
my $utility = MyItem::Belt->new;
ok(!$utility->is_worn);
is($utility->slot, 'waist');
done_testing;
013-does.t100600000766000024 104213513224542 17665 0ustar00etherstaff000000000000MooseX-Role-Parameterized-1.11/tuse strict;
use warnings;
use Test::More 0.88;
use Test::Moose;
{
package MyPRole;
use MooseX::Role::Parameterized;
role {};
}
{
package MyClass;
use Moose;
with 'MyPRole',
}
my $generated_role = MyClass->meta->roles->[0]->name;
does_ok( 'MyClass', $generated_role, 'class does the generate role' );
does_ok( 'MyClass', 'MyPRole', 'class does the parameterized role' );
cmp_ok(
$generated_role->meta->get_roles->[0]->name,
'eq',
'MyPRole',
'generated role does the parameterized role'
);
done_testing;
lib000755000766000024 013513224542 16666 5ustar00etherstaff000000000000MooseX-Role-Parameterized-1.11/tBar.pm100644000766000024 34413513224542 20051 0ustar00etherstaff000000000000MooseX-Role-Parameterized-1.11/t/libpackage Bar;
use MooseX::Role::Parameterized;
parameter include_is_bar => (
isa => 'Bool',
default => 1,
);
role {
my $p = shift;
if ($p->include_is_bar) {
method is_bar => sub { 1 };
}
};
1;
CONTRIBUTING100644000766000024 1022013513224542 17662 0ustar00etherstaff000000000000MooseX-Role-Parameterized-1.11
CONTRIBUTING
Thank you for considering contributing to this distribution. This file
contains instructions that will help you work with the source code.
PLEASE NOTE that if you have any questions or difficulties, you can reach the
maintainer(s) through the bug queue described later in this document
(preferred), or by emailing the releaser directly. You are not required to
follow any of the steps in this document to submit a patch or bug report;
these are just recommendations, intended to help you (and help us help you
faster).
The distribution is managed with Dist::Zilla (https://metacpan.org/release/Dist-Zilla).
This means than many of the usual files you might expect are not in the
repository, but are generated at release time (e.g. Makefile.PL).
However, you can run tests directly using the 'prove' tool:
$ prove -l
$ prove -lv t/some_test_file.t
$ prove -lvr t/
In most cases, 'prove' is entirely sufficient for you to test any patches you
have.
You may need to satisfy some dependencies. The easiest way to satisfy
dependencies is to install the last release -- this is available at
https://metacpan.org/release/MooseX-Role-Parameterized
If you use cpanminus, you can do it without downloading the tarball first:
$ cpanm --reinstall --installdeps --with-recommends MooseX::Role::Parameterized
Dist::Zilla is a very powerful authoring tool, but requires a number of
author-specific plugins. If you would like to use it for contributing,
install it from CPAN, then run one of the following commands, depending on
your CPAN client:
$ cpan `dzil authordeps --missing`
or
$ dzil authordeps --missing | cpanm
You should then also install any additional requirements not needed by the
dzil build but may be needed by tests or other development:
$ cpan `dzil listdeps --author --missing`
or
$ dzil listdeps --author --missing | cpanm
Or, you can use the 'dzil stale' command to install all requirements at once:
$ cpan Dist::Zilla::App::Command::stale
$ cpan `dzil stale --all`
or
$ cpanm Dist::Zilla::App::Command::stale
$ dzil stale --all | cpanm
You can also do this via cpanm directly:
$ cpanm --reinstall --installdeps --with-develop --with-recommends MooseX::Role::Parameterized
Once installed, here are some dzil commands you might try:
$ dzil build
$ dzil test
$ dzil test --release
$ dzil xtest
$ dzil listdeps --json
$ dzil build --notgz
You can learn more about Dist::Zilla at http://dzil.org/.
The code for this distribution is hosted at GitHub. The repository is:
https://github.com/moose/MooseX-Role-Parameterized
You can submit code changes by forking the repository, pushing your code
changes to your clone, and then submitting a pull request. Please include a
suitable end-user-oriented entry in the Changes file describing your change.
Detailed instructions for doing that is available here:
https://help.github.com/articles/creating-a-pull-request
All pull requests for this distribution will be automatically tested on Linux
by Travis at: https://travis-ci.com/moose/MooseX-Role-Parameterized
Results will be visible in the pull request on GitHub. Follow the appropriate
links for details when tests fail. Changes will not be mergeable until all
tests pass.
If you have found a bug, but do not have an accompanying patch to fix it, you
can submit an issue report here:
https://rt.cpan.org/Public/Dist/Display.html?Name=MooseX-Role-Parameterized
or via email: bug-MooseX-Role-Parameterized@rt.cpan.org
There is also a mailing list available for users of this distribution, at
http://lists.perl.org/list/moose.html
There is also an irc channel available for users of this distribution, at
irc://irc.perl.org/#moose
If you send me a patch or pull request, your name and email address will be
included in the documentation as a contributor (using the attribution on the
commit or patch), unless you specifically request for it not to be. If you
wish to be listed under a different name or address, you should submit a pull
request to the .mailmap file to contain the correct mapping.
This file was generated via Dist::Zilla::Plugin::GenerateFile::FromShareDir 0.014
from a template file originating in Dist-Zilla-PluginBundle-Author-ETHER-0.149.
003-apply.t100600000766000024 1002413513224542 20077 0ustar00etherstaff000000000000MooseX-Role-Parameterized-1.11/tuse strict;
use warnings;
use Test::More 0.88;
use Test::Fatal;
my %args;
do {
package MyRole::Storage;
use MooseX::Role::Parameterized;
use Moose::Util::TypeConstraints 'enum';
parameter format => (
isa => (enum ['Dumper', 'Storable']),
required => 1,
);
parameter freeze_method => (
isa => 'Str',
lazy => 1,
default => sub { "freeze_" . shift->format },
);
parameter thaw_method => (
isa => 'Str',
lazy => 1,
default => sub { "thaw_" . shift->format },
);
role {
my $p = shift;
%args = @_;
my $format = $p->format;
my ($freezer, $thawer);
if ($format eq 'Dumper') {
require Data::Dumper;
$freezer = \&Data::Dumper::Dumper;
$thawer = sub { eval "@_" };
}
elsif ($format eq 'Storable') {
require Storable;
$freezer = \&Storable::nfreeze;
$thawer = \&Storable::thaw;
}
else {
die "Unknown format ($format)";
}
method $p->freeze_method => $freezer;
method $p->thaw_method => $thawer;
};
};
do {
package MyClass::Dumper;
use Moose;
with 'MyRole::Storage' => {
format => 'Dumper',
};
};
can_ok('MyClass::Dumper' => qw(freeze_Dumper thaw_Dumper));
cant_ok('MyClass::Dumper' => qw(freeze_Storable thaw_Storable));
is($args{consumer}, MyClass::Dumper->meta, 'Role block receives consumer');
is(MyClass::Dumper->meta->roles->[0]->genitor, MyRole::Storage->meta, 'genitor');
do {
package MyClass::Storable;
use Moose;
with 'MyRole::Storage' => {
format => 'Storable',
};
};
can_ok('MyClass::Storable' => qw(freeze_Storable thaw_Storable));
cant_ok('MyClass::Storable' => qw(freeze_Dumper thaw_Dumper));
is($args{consumer}, MyClass::Storable->meta, 'Role block receives consumer');
do {
package MyClass::DumperRenamed;
use Moose;
with 'MyRole::Storage' => {
format => 'Dumper',
freeze_method => 'save',
thaw_method => 'load',
};
};
can_ok('MyClass::DumperRenamed' => qw(save load));
cant_ok('MyClass::DumperRenamed' => qw(freeze_Dumper freeze_Storable thaw_Dumper thaw_Storable));
is($args{consumer}, MyClass::DumperRenamed->meta, 'Role block receives consumer');
do {
package MyClass::Both;
use Moose;
with 'MyRole::Storage' => { format => 'Dumper' };
with 'MyRole::Storage' => { format => 'Storable' };
};
can_ok('MyClass::Both' => qw(freeze_Dumper freeze_Storable thaw_Dumper thaw_Storable));
is($args{consumer}, MyClass::Both->meta, 'Role block receives consumer');
do {
package MyClass::Three;
use Moose;
with 'MyRole::Storage' => { format => 'Dumper' };
with 'MyRole::Storage' => { format => 'Storable' };
with 'MyRole::Storage' => {
format => 'Storable',
freeze_method => 'store',
thaw_method => 'dump',
};
};
can_ok('MyClass::Three' => qw(freeze_Dumper freeze_Storable thaw_Dumper thaw_Storable store dump));
is($args{consumer}, MyClass::Three->meta, 'Role block receives consumer');
like( exception {
package MyClass::Error::Required;
use Moose;
with 'MyRole::Storage';
}, qr/^Attribute \(format\) is required/);
like( exception {
package MyClass::Error::Invalid;
use Moose;
with 'MyRole::Storage' => {
format => 'YAML',
};
}, qr/^Attribute \(format\) does not pass the type constraint/);
like( exception {
package MyRole::Sans::Block;
use MooseX::Role::Parameterized;
parameter 'foo';
package MyClass::Error::BlocklessRole;
use Moose;
with 'MyRole::Sans::Block' => {};
}, qr/^\QA role generator is required to apply parameterized roles (did you forget the 'role { ... }' block in your parameterized role 'MyRole::Sans::Block'?)\E/);
sub cant_ok {
local $Test::Builder::Level = $Test::Builder::Level + 1;
my $instance = shift;
for my $method (@_) {
ok(!$instance->can($method), "$instance cannot $method");
}
}
done_testing;
016-trait.t100600000766000024 171113513224542 20064 0ustar00etherstaff000000000000MooseX-Role-Parameterized-1.11/t#!/usr/bin/env perl
use strict;
use warnings;
use Test::More 0.88;
do {
package MyTrait::Label;
use MooseX::Role::Parameterized;
parameter default => (
is => 'rw',
isa => 'Str',
);
role {
my $p = shift;
has label => (
is => 'rw',
isa => 'Str',
default => $p->default,
);
};
};
do {
package MyClass::LabeledURL;
use Moose;
has url => (
is => 'ro',
traits => [
'MyTrait::Label' => { default => 'yay' },
],
);
};
do {
package MyClass::LabeledURL::Redux;
use Moose;
has 'url' => (
is => 'ro',
traits => [
'MyTrait::Label' => { default => 'yay' },
],
label => 'overridden',
);
};
is(MyClass::LabeledURL->meta->get_attribute('url')->label, 'yay');
is(MyClass::LabeledURL::Redux->meta->get_attribute('url')->label, 'overridden');
done_testing;
102-nested.t100600000766000024 242213513224542 20217 0ustar00etherstaff000000000000MooseX-Role-Parameterized-1.11/tuse strict;
use warnings;
use Test::More 0.88;
use Test::Fatal;
use lib 't/lib';
{
package Foo;
use MooseX::Role::Parameterized;
parameter 'outer' => (
default => 'yep..',
);
role {
with 'Bar', { include_is_bar => 0 };
method is_foo => sub { 1 };
};
}
{
package Foo::Class;
use Moose;
::is( ::exception {
with 'Foo';
}, undef, 'Can consume the Foo role without providing parameters');
}
{
package Bar::Class;
use Moose;
::is( ::exception {
with 'Bar';
}, undef, 'Can consume the Bar role without providing parameters');
}
my $foo = Foo::Class->meta->roles->[0];
ok($foo->has_method('is_foo'), 'Foo got the "is_foo" method');
ok(!$foo->has_method('is_bar'), 'Foo did not get the "is_bar" method from Bar');
my $bar = Bar::Class->meta->roles->[0];
ok($bar->has_method('is_bar'), 'Bar got the "is_bar" method');
ok(!$bar->has_method('is_foo'), 'Bar does not get "is_foo"');
ok(Foo->meta->has_parameter('outer'), 'Foo has outer param');
ok(Bar->meta->has_parameter('include_is_bar'), 'Bar has include_is_bar param');
ok(!Foo->meta->has_parameter('include_is_bar'), 'Foo does not have include_is_bar param');
ok(!Bar->meta->has_parameter('outer'), 'Bar does not have outer param');
done_testing;
author000755000766000024 013513224542 17612 5ustar00etherstaff000000000000MooseX-Role-Parameterized-1.11/xteol.t100644000766000024 375613513224542 20731 0ustar00etherstaff000000000000MooseX-Role-Parameterized-1.11/xt/authoruse strict;
use warnings;
# this test was generated with Dist::Zilla::Plugin::Test::EOL 0.19
use Test::More 0.88;
use Test::EOL;
my @files = (
'lib/MooseX/Role/Parameterised.pm',
'lib/MooseX/Role/Parameterized.pm',
'lib/MooseX/Role/Parameterized/Extending.pod',
'lib/MooseX/Role/Parameterized/Meta/Role/Parameterized.pm',
'lib/MooseX/Role/Parameterized/Meta/Trait/Parameterizable.pm',
'lib/MooseX/Role/Parameterized/Meta/Trait/Parameterized.pm',
'lib/MooseX/Role/Parameterized/Parameters.pm',
'lib/MooseX/Role/Parameterized/Tutorial.pod',
't/00-report-prereqs.dd',
't/00-report-prereqs.t',
't/001-parameters.t',
't/002-role-block.t',
't/003-apply.t',
't/004-with.t',
't/005-with-parameterized.t',
't/006-requires.t',
't/007-excludes.t',
't/008-method-modifers.t',
't/009-override-super.t',
't/010-blessed-confess.t',
't/011-reference-parameters.t',
't/012-rename-role.t',
't/013-does.t',
't/014-compose-parameterizable.t',
't/015-compose-keywords.t',
't/016-trait.t',
't/017-current_metaclass.t',
't/018-parameter-roles.t',
't/020-metaclass-reinitialize.t',
't/021-parameter-trait.t',
't/022-export-p-trait.t',
't/023-metarole-import-params.t',
't/024-named-anonymous.t',
't/100-erroneous-keywords.t',
't/101-alias-excludes.t',
't/102-nested.t',
't/150-composite-role-application.t',
't/200-cooperative.t',
't/lib/Bar.pm',
't/zzz-check-breaks.t',
'xt/author/00-compile.t',
'xt/author/changes_has_content.t',
'xt/author/clean-namespaces.t',
'xt/author/eol.t',
'xt/author/kwalitee.t',
'xt/author/minimum-version.t',
'xt/author/mojibake.t',
'xt/author/no-tabs.t',
'xt/author/pod-coverage.t',
'xt/author/pod-syntax.t',
'xt/author/portability.t',
'xt/release/changes_has_content.t',
'xt/release/cpan-changes.t',
'xt/release/distmeta.t'
);
eol_unix_ok($_, { trailing_whitespace => 1 }) foreach @files;
done_testing;
006-requires.t100600000766000024 360513513224542 20603 0ustar00etherstaff000000000000MooseX-Role-Parameterized-1.11/tuse strict;
use warnings;
use Test::More 0.88;
use Test::Fatal;
do {
package MyRole::Requires;
use MooseX::Role::Parameterized;
parameter requires => (
is => 'rw',
isa => 'Str',
);
role {
my $p = shift;
requires $p->requires;
};
};
my @keep_roles_alive;
sub requires_names {
map {
my $role = MyRole::Requires->meta->generate_role(
parameters => {
requires => $_,
},
);
push @keep_roles_alive, $role;
$role->name;
} @_
}
{
my ($role_name) = requires_names('alpha');
like( exception {
Moose::Meta::Class->create_anon_class(
roles => [ $role_name ],
);
}, qr/'$role_name' requires the method 'alpha' to be implemented by '[\w:]+'/);
}
is (exception {
Moose::Meta::Class->create_anon_class(
methods => {
alpha => sub {},
},
roles => [ requires_names('alpha') ],
);
}, undef);
{
my ($role1, $role2) = requires_names('alpha', 'beta');
like( exception {
Moose::Meta::Class->create_anon_class(
methods => {
alpha => sub {},
},
roles => [ $role1, $role2 ],
);
}, qr/'$role1\|$role2' requires the method 'beta' to be implemented by '[\w:]+'/);
}
{
my ($role1, $role2) = requires_names('alpha', 'beta');
like( exception {
Moose::Meta::Class->create_anon_class(
methods => {
beta => sub {},
},
roles => [ $role1, $role2 ],
);
}, qr/'$role1\|$role2' requires the method 'alpha' to be implemented by '[\w:]+'/);
}
is (exception {
Moose::Meta::Class->create_anon_class(
methods => {
alpha => sub {},
beta => sub {},
},
roles => [ requires_names('alpha', 'beta') ],
);
}, undef);
done_testing;
007-excludes.t100600000766000024 222013513224542 20551 0ustar00etherstaff000000000000MooseX-Role-Parameterized-1.11/tuse strict;
use warnings;
use Test::More 0.88;
use Test::Fatal;
do {
package MyRole::Excluder;
use MooseX::Role::Parameterized;
parameter exclude => (
is => 'rw',
isa => 'Str',
);
role {
my $p = shift;
excludes $p->exclude;
};
};
Moose::Meta::Role->create("Role::A");
Moose::Meta::Role->create("Role::B");
my @keep_roles_alive;
sub excludes_roles {
map {
my $role = MyRole::Excluder->meta->generate_role(
parameters => {
exclude => $_,
},
);
push @keep_roles_alive, $role;
$role->name;
} @_
}
is (exception {
Moose::Meta::Class->create_anon_class(
roles => [ excludes_roles('Role::A') ],
);
}, undef);
{
my ($role_name) = excludes_roles('Role::A');
like( exception {
Moose::Meta::Class->create_anon_class(
roles => [ 'Role::A', $role_name ],
);
}, qr/^Conflict detected: Role $role_name excludes role 'Role::A'/);
}
is (exception {
Moose::Meta::Class->create_anon_class(
roles => [ 'Role::B', excludes_roles('Role::A') ],
);
}, undef);
done_testing;
001-parameters.t100644000766000024 367213513224542 21116 0ustar00etherstaff000000000000MooseX-Role-Parameterized-1.11/tuse strict;
use warnings;
use Test::More 0.88;
use Test::Fatal;
use MooseX::Role::Parameterized::Parameters;
my $p = MooseX::Role::Parameterized::Parameters->new;
can_ok($p => 'meta');
do {
package MyRole::NoParameters;
use MooseX::Role::Parameterized;
};
my $parameters_metaclass = MyRole::NoParameters->meta->parameters_metaclass;
is($parameters_metaclass->get_all_attributes, 0, "no parameters");
do {
package MyRole::LengthParameter;
use MooseX::Role::Parameterized;
parameter length => (
isa => 'Int',
required => 1,
);
};
$parameters_metaclass = MyRole::LengthParameter->meta->parameters_metaclass;
is($parameters_metaclass->get_all_attributes, 1, "exactly one parameter");
my $parameter = ($parameters_metaclass->get_all_attributes)[0];
is($parameter->name, 'length', "parameter name");
ok($parameter->is_required, "parameter is required");
ok(MyRole::LengthParameter->meta->has_parameter('length'), 'has_parameter');
ok(!MyRole::LengthParameter->meta->has_parameter('kjhef'), 'has_parameter');
like( exception {
MyRole::LengthParameter->meta->construct_parameters;
}, qr/^Attribute \(length\) is required/);
$p = MyRole::LengthParameter->meta->construct_parameters(
length => 5,
);
is($p->length, 5, "correct length");
like( exception {
$p->length(10);
}, qr/^Cannot assign a value to a read-only accessor/);
do {
package MyRole::LengthParameter;
use MooseX::Role::Parameterized;
parameter ['first_name', 'last_name'] => (
is => 'rw',
isa => 'Str',
);
};
$parameters_metaclass = MyRole::LengthParameter->meta->parameters_metaclass;
is($parameters_metaclass->get_all_attributes, 3, "three parameters");
for my $param_name ('first_name', 'last_name') {
my $param = $parameters_metaclass->get_attribute($param_name);
is($param->type_constraint, 'Str', "$param_name type constraint");
ok(!$param->is_required, "$param_name is optional");
}
done_testing;
002-role-block.t100644000766000024 443313513224542 21001 0ustar00etherstaff000000000000MooseX-Role-Parameterized-1.11/tuse strict;
use warnings;
use Test::More 0.96;
my ($parameters, %args);
do {
package MyPerson;
use MooseX::Role::Parameterized;
parameter default_age => (
is => 'rw',
isa => 'Int',
required => 1,
);
role {
($parameters, %args) = @_;
has age => (
default => $parameters->default_age,
);
method birthday => sub {
my $self = shift;
return 2000 - $self->age;
};
};
};
ok(MyPerson->meta->has_role_generator, "MyPerson has a role generator");
subtest "generation of an anonymous role" => sub {
my $role = MyPerson->meta->generate_role(
parameters => {
default_age => 7,
},
);
isa_ok($role, 'Moose::Meta::Role', 'generate_role created a role');
like($role->name, qr{ANON}, '...with an anonymous name');
is($role->parameters, $parameters, 'the generated role knows its parameters');
is($parameters->default_age, 7);
is($args{operating_on}, $role, "we pass in the role metaclass that we're operating on");
my $age_attr = $role->get_attribute('age');
is($age_attr->{default}, 7, "role's age attribute has the right default");
my $birthday_method = $role->get_method('birthday');
is($birthday_method->name, 'birthday', "method name");
is($birthday_method->package_name, $role->name, "package name");
};
subtest "generating a role with a provided name" => sub {
my $role = MyPerson->meta->generate_role(
package => 'RJBS::Was::Here',
parameters => {
default_age => 10,
},
);
isa_ok($role, 'Moose::Meta::Role', 'generate_role created a role');
is($role->name, 'RJBS::Was::Here', '...with the name we expected');
is($role->parameters, $parameters, 'the generated role knows its parameters');
is($parameters->default_age, 10);
is($args{operating_on}, $role, "we pass in the role metaclass that we're operating on");
my $age_attr = $role->get_attribute('age');
is($age_attr->{default}, 10, "role's age attribute has the right default");
my $birthday_method = $role->get_method('birthday');
is($birthday_method->name, 'birthday', "method name");
is($birthday_method->package_name, $role->name, "package name");
};
done_testing;
012-rename-role.t100600000766000024 56713513224542 21133 0ustar00etherstaff000000000000MooseX-Role-Parameterized-1.11/tuse strict;
use warnings;
use Test::More 0.88;
do {
package MyRole;
use MooseX::Role::Parameterized (
role => { -as => 'parameterized_role' },
'method',
);
parameterized_role {
method ok => sub {};
};
};
my $role = MyRole->meta->generate_role;
ok($role->has_method('ok'), "renaming the role block export works");
done_testing;
200-cooperative.t100600000766000024 165113513224542 21257 0ustar00etherstaff000000000000MooseX-Role-Parameterized-1.11/tuse strict;
use warnings;
use Test::More 0.88;
use Test::Needs {
'MooseX::Role::WithOverloading' => '0.14',
};
do {
package MyParameterizedRole;
BEGIN { MooseX::Role::WithOverloading->import }
use MooseX::Role::Parameterized;
use overload q{""} => '_stringify';
parameter default => ( required => 1 );
role {
my $p = shift;
my %foo = @_;
has foo => (
is => 'ro',
isa => 'Str',
default => $p->default(),
);
};
sub _stringify { $_[0]->foo() }
};
do {
package MyClass;
use Moose;
with 'MyParameterizedRole' => { default => 'string' };
};
my $object = MyClass->new();
is(
$object->foo(),
'string',
'MyClass object has foo attribute with default passed to parameterized role'
);
is(
"$object",
'string',
'MyClass object stringifies to value of foo attribute'
);
done_testing();
no-tabs.t100644000766000024 372413513224542 21510 0ustar00etherstaff000000000000MooseX-Role-Parameterized-1.11/xt/authoruse strict;
use warnings;
# this test was generated with Dist::Zilla::Plugin::Test::NoTabs 0.15
use Test::More 0.88;
use Test::NoTabs;
my @files = (
'lib/MooseX/Role/Parameterised.pm',
'lib/MooseX/Role/Parameterized.pm',
'lib/MooseX/Role/Parameterized/Extending.pod',
'lib/MooseX/Role/Parameterized/Meta/Role/Parameterized.pm',
'lib/MooseX/Role/Parameterized/Meta/Trait/Parameterizable.pm',
'lib/MooseX/Role/Parameterized/Meta/Trait/Parameterized.pm',
'lib/MooseX/Role/Parameterized/Parameters.pm',
'lib/MooseX/Role/Parameterized/Tutorial.pod',
't/00-report-prereqs.dd',
't/00-report-prereqs.t',
't/001-parameters.t',
't/002-role-block.t',
't/003-apply.t',
't/004-with.t',
't/005-with-parameterized.t',
't/006-requires.t',
't/007-excludes.t',
't/008-method-modifers.t',
't/009-override-super.t',
't/010-blessed-confess.t',
't/011-reference-parameters.t',
't/012-rename-role.t',
't/013-does.t',
't/014-compose-parameterizable.t',
't/015-compose-keywords.t',
't/016-trait.t',
't/017-current_metaclass.t',
't/018-parameter-roles.t',
't/020-metaclass-reinitialize.t',
't/021-parameter-trait.t',
't/022-export-p-trait.t',
't/023-metarole-import-params.t',
't/024-named-anonymous.t',
't/100-erroneous-keywords.t',
't/101-alias-excludes.t',
't/102-nested.t',
't/150-composite-role-application.t',
't/200-cooperative.t',
't/lib/Bar.pm',
't/zzz-check-breaks.t',
'xt/author/00-compile.t',
'xt/author/changes_has_content.t',
'xt/author/clean-namespaces.t',
'xt/author/eol.t',
'xt/author/kwalitee.t',
'xt/author/minimum-version.t',
'xt/author/mojibake.t',
'xt/author/no-tabs.t',
'xt/author/pod-coverage.t',
'xt/author/pod-syntax.t',
'xt/author/portability.t',
'xt/release/changes_has_content.t',
'xt/release/cpan-changes.t',
'xt/release/distmeta.t'
);
notabs_ok($_) foreach @files;
done_testing;
kwalitee.t100644000766000024 27513513224542 21730 0ustar00etherstaff000000000000MooseX-Role-Parameterized-1.11/xt/author# this test was generated with Dist::Zilla::Plugin::Test::Kwalitee 2.12
use strict;
use warnings;
use Test::More 0.88;
use Test::Kwalitee 1.21 'kwalitee_ok';
kwalitee_ok();
done_testing;
mojibake.t100644000766000024 15113513224542 21675 0ustar00etherstaff000000000000MooseX-Role-Parameterized-1.11/xt/author#!perl
use strict;
use warnings qw(all);
use Test::More;
use Test::Mojibake;
all_files_encoding_ok();
zzz-check-breaks.t100644000766000024 235713513224542 21631 0ustar00etherstaff000000000000MooseX-Role-Parameterized-1.11/tuse strict;
use warnings;
# this test was generated with Dist::Zilla::Plugin::Test::CheckBreaks 0.019
use Test::More tests => 3;
SKIP: {
eval { +require Module::Runtime::Conflicts; Module::Runtime::Conflicts->check_conflicts };
skip('no Module::Runtime::Conflicts module found', 1) if not $INC{'Module/Runtime/Conflicts.pm'};
diag $@ if $@;
pass 'conflicts checked via Module::Runtime::Conflicts';
}
SKIP: {
eval { +require Moose::Conflicts; Moose::Conflicts->check_conflicts };
skip('no Moose::Conflicts module found', 1) if not $INC{'Moose/Conflicts.pm'};
diag $@ if $@;
pass 'conflicts checked via Moose::Conflicts';
}
# this data duplicates x_breaks in META.json
my $breaks = {
"MooseX::Storage" => "<= 0.46"
};
use CPAN::Meta::Requirements;
use CPAN::Meta::Check 0.011;
my $reqs = CPAN::Meta::Requirements->new;
$reqs->add_string_requirement($_, $breaks->{$_}) foreach keys %$breaks;
our $result = CPAN::Meta::Check::check_requirements($reqs, 'conflicts');
if (my @breaks = grep { defined $result->{$_} } keys %$result)
{
diag 'Breakages found with MooseX-Role-Parameterized:';
diag "$result->{$_}" for sort @breaks;
diag "\n", 'You should now update these modules!';
}
pass 'checked x_breaks data';
release000755000766000024 013513224542 17730 5ustar00etherstaff000000000000MooseX-Role-Parameterized-1.11/xtdistmeta.t100644000766000024 17213513224542 22047 0ustar00etherstaff000000000000MooseX-Role-Parameterized-1.11/xt/release#!perl
# This file was automatically generated by Dist::Zilla::Plugin::MetaTests.
use Test::CPAN::Meta;
meta_yaml_ok();
00-report-prereqs.t100644000766000024 1364013513224542 21700 0ustar00etherstaff000000000000MooseX-Role-Parameterized-1.11/t#!perl
use strict;
use warnings;
# This test was generated by Dist::Zilla::Plugin::Test::ReportPrereqs 0.027
use Test::More tests => 1;
use Module::Metadata;
use File::Spec;
# from $version::LAX
my $lax_version_re =
qr/(?: undef | (?: (?:[0-9]+) (?: \. | (?:\.[0-9]+) (?:_[0-9]+)? )?
|
(?:\.[0-9]+) (?:_[0-9]+)?
) | (?:
v (?:[0-9]+) (?: (?:\.[0-9]+)+ (?:_[0-9]+)? )?
|
(?:[0-9]+)? (?:\.[0-9]+){2,} (?:_[0-9]+)?
)
)/x;
# hide optional CPAN::Meta modules from prereq scanner
# and check if they are available
my $cpan_meta = "CPAN::Meta";
my $cpan_meta_pre = "CPAN::Meta::Prereqs";
my $HAS_CPAN_META = eval "require $cpan_meta; $cpan_meta->VERSION('2.120900')" && eval "require $cpan_meta_pre"; ## no critic
# Verify requirements?
my $DO_VERIFY_PREREQS = 1;
sub _max {
my $max = shift;
$max = ( $_ > $max ) ? $_ : $max for @_;
return $max;
}
sub _merge_prereqs {
my ($collector, $prereqs) = @_;
# CPAN::Meta::Prereqs object
if (ref $collector eq $cpan_meta_pre) {
return $collector->with_merged_prereqs(
CPAN::Meta::Prereqs->new( $prereqs )
);
}
# Raw hashrefs
for my $phase ( keys %$prereqs ) {
for my $type ( keys %{ $prereqs->{$phase} } ) {
for my $module ( keys %{ $prereqs->{$phase}{$type} } ) {
$collector->{$phase}{$type}{$module} = $prereqs->{$phase}{$type}{$module};
}
}
}
return $collector;
}
my @include = qw(
Encode
File::Temp
JSON::PP
Module::Runtime
Pod::Coverage
Sub::Name
YAML
autodie
Dist::CheckConflicts
);
my @exclude = qw(
);
# Add static prereqs to the included modules list
my $static_prereqs = do './t/00-report-prereqs.dd';
# Merge all prereqs (either with ::Prereqs or a hashref)
my $full_prereqs = _merge_prereqs(
( $HAS_CPAN_META ? $cpan_meta_pre->new : {} ),
$static_prereqs
);
# Add dynamic prereqs to the included modules list (if we can)
my ($source) = grep { -f } 'MYMETA.json', 'MYMETA.yml';
my $cpan_meta_error;
if ( $source && $HAS_CPAN_META
&& (my $meta = eval { CPAN::Meta->load_file($source) } )
) {
$full_prereqs = _merge_prereqs($full_prereqs, $meta->prereqs);
}
else {
$cpan_meta_error = $@; # capture error from CPAN::Meta->load_file($source)
$source = 'static metadata';
}
my @full_reports;
my @dep_errors;
my $req_hash = $HAS_CPAN_META ? $full_prereqs->as_string_hash : $full_prereqs;
# Add static includes into a fake section
for my $mod (@include) {
$req_hash->{other}{modules}{$mod} = 0;
}
for my $phase ( qw(configure build test runtime develop other) ) {
next unless $req_hash->{$phase};
next if ($phase eq 'develop' and not $ENV{AUTHOR_TESTING});
for my $type ( qw(requires recommends suggests conflicts modules) ) {
next unless $req_hash->{$phase}{$type};
my $title = ucfirst($phase).' '.ucfirst($type);
my @reports = [qw/Module Want Have/];
for my $mod ( sort keys %{ $req_hash->{$phase}{$type} } ) {
next if $mod eq 'perl';
next if grep { $_ eq $mod } @exclude;
my $file = $mod;
$file =~ s{::}{/}g;
$file .= ".pm";
my ($prefix) = grep { -e File::Spec->catfile($_, $file) } @INC;
my $want = $req_hash->{$phase}{$type}{$mod};
$want = "undef" unless defined $want;
$want = "any" if !$want && $want == 0;
my $req_string = $want eq 'any' ? 'any version required' : "version '$want' required";
if ($prefix) {
my $have = Module::Metadata->new_from_file( File::Spec->catfile($prefix, $file) )->version;
$have = "undef" unless defined $have;
push @reports, [$mod, $want, $have];
if ( $DO_VERIFY_PREREQS && $HAS_CPAN_META && $type eq 'requires' ) {
if ( $have !~ /\A$lax_version_re\z/ ) {
push @dep_errors, "$mod version '$have' cannot be parsed ($req_string)";
}
elsif ( ! $full_prereqs->requirements_for( $phase, $type )->accepts_module( $mod => $have ) ) {
push @dep_errors, "$mod version '$have' is not in required range '$want'";
}
}
}
else {
push @reports, [$mod, $want, "missing"];
if ( $DO_VERIFY_PREREQS && $type eq 'requires' ) {
push @dep_errors, "$mod is not installed ($req_string)";
}
}
}
if ( @reports ) {
push @full_reports, "=== $title ===\n\n";
my $ml = _max( map { length $_->[0] } @reports );
my $wl = _max( map { length $_->[1] } @reports );
my $hl = _max( map { length $_->[2] } @reports );
if ($type eq 'modules') {
splice @reports, 1, 0, ["-" x $ml, "", "-" x $hl];
push @full_reports, map { sprintf(" %*s %*s\n", -$ml, $_->[0], $hl, $_->[2]) } @reports;
}
else {
splice @reports, 1, 0, ["-" x $ml, "-" x $wl, "-" x $hl];
push @full_reports, map { sprintf(" %*s %*s %*s\n", -$ml, $_->[0], $wl, $_->[1], $hl, $_->[2]) } @reports;
}
push @full_reports, "\n";
}
}
}
if ( @full_reports ) {
diag "\nVersions for all modules listed in $source (including optional ones):\n\n", @full_reports;
}
if ( $cpan_meta_error || @dep_errors ) {
diag "\n*** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING ***\n";
}
if ( $cpan_meta_error ) {
my ($orig_source) = grep { -f } 'MYMETA.json', 'MYMETA.yml';
diag "\nCPAN::Meta->load_file('$orig_source') failed with: $cpan_meta_error\n";
}
if ( @dep_errors ) {
diag join("\n",
"\nThe following REQUIRED prerequisites were not satisfied:\n",
@dep_errors,
"\n"
);
}
pass;
# vim: ts=4 sts=4 sw=4 et:
009-override-super.t100600000766000024 132313513224542 21715 0ustar00etherstaff000000000000MooseX-Role-Parameterized-1.11/tuse strict;
use warnings;
use Test::More 0.88;
my @calls;
do {
package MyRole::LogMethod;
use MooseX::Role::Parameterized;
parameter method => (
is => 'rw',
isa => 'Str',
required => 1,
);
role {
my $p = shift;
override $p->method => sub {
push @calls, "calling " . $p->method;
super;
push @calls, "called " . $p->method;
};
};
};
do {
package MyClass;
use Moose;
with 'MyRole::LogMethod' => {
method => 'new',
};
};
is_deeply([splice @calls], [], "no calls yet");
MyClass->new;
is_deeply([splice @calls], ["calling new", "called new"], "instrumented new");
done_testing;
022-export-p-trait.t100600000766000024 213313513224542 21634 0ustar00etherstaff000000000000MooseX-Role-Parameterized-1.11/tuse strict;
use warnings;
use Test::More 0.88;
BEGIN {
package MyTrait::Label;
use MooseX::Role::Parameterized;
parameter default => (
is => 'rw',
isa => 'Str',
);
role {
my $p = shift;
has label => (
is => 'rw',
isa => 'Str',
default => $p->default,
);
};
};
BEGIN {
package MyApp::MooseX::LabeledAttributes;
use Moose::Exporter;
$INC{'MyApp/MooseX/LabeledAttributes.pm'} = 1;
Moose::Exporter->setup_import_methods(
class_metaroles => {
attribute => [ 'MyTrait::Label' => { default => 'no label' } ],
},
);
}
do {
package MyClass::LabeledURL;
use Moose;
use MyApp::MooseX::LabeledAttributes;
has name => (
is => 'ro',
);
has url => (
is => 'ro',
label => 'overridden',
);
no Moose;
no MyApp::MooseX::LabeledAttributes;
};
my $meta = MyClass::LabeledURL->meta;
is($meta->get_attribute('name')->label, 'no label');
is($meta->get_attribute('url')->label, 'overridden');
done_testing;
101-alias-excludes.t100600000766000024 177013513224542 21644 0ustar00etherstaff000000000000MooseX-Role-Parameterized-1.11/tuse strict;
use warnings;
use Test::More 0.88;
use Test::Fatal;
do {
package MyRole;
use MooseX::Role::Parameterized;
::is( ::exception {
parameter 'alias';
}, undef);
::is( ::exception {
parameter 'excludes';
}, undef);
role { }
};
do {
package MyClass;
use Moose;
::is( ::exception {
with MyRole => {
alias => 1,
};
}, undef);
::is( ::exception {
with MyRole => {
excludes => 1,
};
}, undef);
};
do {
package OrdinaryRole;
use MooseX::Role::Parameterized;
sub code { 'originally code' }
sub other_code { 'originally other_code' }
role { }
};
do {
package OrdinaryClass;
use Moose;
with OrdinaryRole => {
-alias => { code => 'new_code' },
-excludes => [ 'other_code' ],
};
};
ok(!OrdinaryClass->can('other_code'));
is(OrdinaryClass->code, 'originally code');
is(OrdinaryClass->new_code, 'originally code');
done_testing;
00-compile.t100644000766000024 317513513224542 22012 0ustar00etherstaff000000000000MooseX-Role-Parameterized-1.11/xt/authoruse 5.006;
use strict;
use warnings;
# this test was generated with Dist::Zilla::Plugin::Test::Compile 2.058
use Test::More 0.94;
plan tests => 7;
my @module_files = (
'MooseX/Role/Parameterised.pm',
'MooseX/Role/Parameterized.pm',
'MooseX/Role/Parameterized/Meta/Role/Parameterized.pm',
'MooseX/Role/Parameterized/Meta/Trait/Parameterizable.pm',
'MooseX/Role/Parameterized/Meta/Trait/Parameterized.pm',
'MooseX/Role/Parameterized/Parameters.pm'
);
# no fake home requested
my @switches = (
-d 'blib' ? '-Mblib' : '-Ilib',
);
use File::Spec;
use IPC::Open3;
use IO::Handle;
open my $stdin, '<', File::Spec->devnull or die "can't open devnull: $!";
my @warnings;
for my $lib (@module_files)
{
# see L
my $stderr = IO::Handle->new;
diag('Running: ', join(', ', map { my $str = $_; $str =~ s/'/\\'/g; q{'} . $str . q{'} }
$^X, @switches, '-e', "require q[$lib]"))
if $ENV{PERL_COMPILE_TEST_DEBUG};
my $pid = open3($stdin, '>&STDERR', $stderr, $^X, @switches, '-e', "require q[$lib]");
binmode $stderr, ':crlf' if $^O eq 'MSWin32';
my @_warnings = <$stderr>;
waitpid($pid, 0);
is($?, 0, "$lib loaded ok");
shift @_warnings if @_warnings and $_warnings[0] =~ /^Using .*\bblib/
and not eval { +require blib; blib->VERSION('1.01') };
if (@_warnings)
{
warn @_warnings;
push @warnings, @_warnings;
}
}
is(scalar(@warnings), 0, 'no warnings found')
or diag 'got warnings: ', explain(\@warnings);
BAIL_OUT("Compilation problems") if !Test::More->builder->is_passing;
pod-syntax.t100644000766000024 25213513224542 22224 0ustar00etherstaff000000000000MooseX-Role-Parameterized-1.11/xt/author#!perl
# This file was automatically generated by Dist::Zilla::Plugin::PodSyntaxTests.
use strict; use warnings;
use Test::More;
use Test::Pod 1.41;
all_pod_files_ok();
00-report-prereqs.dd100644000766000024 2510013513224542 22016 0ustar00etherstaff000000000000MooseX-Role-Parameterized-1.11/tdo { my $x = {
'configure' => {
'requires' => {
'ExtUtils::MakeMaker' => '0',
'Module::Build::Tiny' => '0.034',
'perl' => '5.008001'
}
},
'develop' => {
'recommends' => {
'Dist::Zilla::PluginBundle::Author::ETHER' => '0.149',
'Dist::Zilla::PluginBundle::Git::VersionManager' => '0.007'
},
'requires' => {
'Encode' => '0',
'File::Spec' => '0',
'IO::Handle' => '0',
'IPC::Open3' => '0',
'MooseX::Role::WithOverloading' => '0.14',
'Pod::Coverage::TrustPod' => '0',
'Test::CPAN::Changes' => '0.19',
'Test::CPAN::Meta' => '0',
'Test::CleanNamespaces' => '0.15',
'Test::EOL' => '0',
'Test::Kwalitee' => '1.21',
'Test::MinimumVersion' => '0',
'Test::Mojibake' => '0',
'Test::More' => '0.96',
'Test::NoTabs' => '0',
'Test::Pod' => '1.41',
'Test::Pod::Coverage' => '1.08',
'Test::Portability::Files' => '0'
}
},
'runtime' => {
'requires' => {
'Carp' => '0',
'Module::Runtime' => '0',
'Moose' => '2.0300',
'Moose::Exporter' => '0',
'Moose::Meta::Role' => '0',
'Moose::Role' => '0',
'Moose::Util' => '0',
'namespace::autoclean' => '0',
'namespace::clean' => '0.19',
'perl' => '5.008001',
'strict' => '0',
'warnings' => '0'
}
},
'test' => {
'recommends' => {
'CPAN::Meta' => '2.120900'
},
'requires' => {
'CPAN::Meta::Check' => '0.011',
'CPAN::Meta::Requirements' => '0',
'Data::Dumper' => '0',
'File::Spec' => '0',
'Module::Metadata' => '0',
'Moose::Util::TypeConstraints' => '0',
'Storable' => '0',
'Test::Fatal' => '0',
'Test::Moose' => '0',
'Test::More' => '0.96',
'Test::Needs' => '0',
'lib' => '0',
'overload' => '0',
'perl' => '5.008001'
}
},
'x_Dist_Zilla' => {
'requires' => {
'Dist::Zilla' => '5',
'Dist::Zilla::Plugin::Authority' => '1.009',
'Dist::Zilla::Plugin::AutoMetaResources' => '0',
'Dist::Zilla::Plugin::AutoPrereqs' => '5.038',
'Dist::Zilla::Plugin::Breaks' => '0',
'Dist::Zilla::Plugin::BumpVersionAfterRelease::Transitional' => '0.004',
'Dist::Zilla::Plugin::CheckIssues' => '0',
'Dist::Zilla::Plugin::CheckMetaResources' => '0',
'Dist::Zilla::Plugin::CheckPrereqsIndexed' => '0.019',
'Dist::Zilla::Plugin::CheckSelfDependency' => '0',
'Dist::Zilla::Plugin::CheckStrictVersion' => '0',
'Dist::Zilla::Plugin::ConfirmRelease' => '0',
'Dist::Zilla::Plugin::CopyFilesFromRelease' => '0',
'Dist::Zilla::Plugin::EnsureLatestPerl' => '0',
'Dist::Zilla::Plugin::FileFinder::ByName' => '0',
'Dist::Zilla::Plugin::GenerateFile::FromShareDir' => '0',
'Dist::Zilla::Plugin::Git::Check' => '0',
'Dist::Zilla::Plugin::Git::CheckFor::CorrectBranch' => '0.004',
'Dist::Zilla::Plugin::Git::CheckFor::MergeConflicts' => '0',
'Dist::Zilla::Plugin::Git::Commit' => '2.020',
'Dist::Zilla::Plugin::Git::Contributors' => '0.029',
'Dist::Zilla::Plugin::Git::Describe' => '0.004',
'Dist::Zilla::Plugin::Git::GatherDir' => '2.016',
'Dist::Zilla::Plugin::Git::Push' => '0',
'Dist::Zilla::Plugin::Git::Remote::Check' => '0',
'Dist::Zilla::Plugin::Git::Tag' => '0',
'Dist::Zilla::Plugin::GitHub::Update' => '0.40',
'Dist::Zilla::Plugin::GithubMeta' => '0.54',
'Dist::Zilla::Plugin::InstallGuide' => '1.200005',
'Dist::Zilla::Plugin::Keywords' => '0.004',
'Dist::Zilla::Plugin::License' => '5.038',
'Dist::Zilla::Plugin::MakeMaker::Fallback' => '0.029',
'Dist::Zilla::Plugin::Manifest' => '0',
'Dist::Zilla::Plugin::MetaConfig' => '0',
'Dist::Zilla::Plugin::MetaJSON' => '0',
'Dist::Zilla::Plugin::MetaNoIndex' => '0',
'Dist::Zilla::Plugin::MetaProvides::Package' => '1.15000002',
'Dist::Zilla::Plugin::MetaResources' => '0',
'Dist::Zilla::Plugin::MetaTests' => '0',
'Dist::Zilla::Plugin::MetaYAML' => '0',
'Dist::Zilla::Plugin::MinimumPerl' => '1.006',
'Dist::Zilla::Plugin::ModuleBuildTiny::Fallback' => '0.018',
'Dist::Zilla::Plugin::MojibakeTests' => '0.8',
'Dist::Zilla::Plugin::NextRelease' => '5.033',
'Dist::Zilla::Plugin::PodCoverageTests' => '5.040',
'Dist::Zilla::Plugin::PodSyntaxTests' => '5.040',
'Dist::Zilla::Plugin::PodWeaver' => '4.005',
'Dist::Zilla::Plugin::Prereqs' => '0',
'Dist::Zilla::Plugin::Prereqs::AuthorDeps' => '0.006',
'Dist::Zilla::Plugin::PromptIfStale' => '0',
'Dist::Zilla::Plugin::Readme' => '0',
'Dist::Zilla::Plugin::ReadmeAnyFromPod' => '0.142180',
'Dist::Zilla::Plugin::RewriteVersion::Transitional' => '0.004',
'Dist::Zilla::Plugin::Run::AfterBuild' => '0.041',
'Dist::Zilla::Plugin::Run::AfterRelease' => '0.038',
'Dist::Zilla::Plugin::RunExtraTests' => '0.024',
'Dist::Zilla::Plugin::StaticInstall' => '0.005',
'Dist::Zilla::Plugin::Test::CPAN::Changes' => '0.012',
'Dist::Zilla::Plugin::Test::ChangesHasContent' => '0',
'Dist::Zilla::Plugin::Test::CheckBreaks' => '0.017',
'Dist::Zilla::Plugin::Test::CleanNamespaces' => '0.006',
'Dist::Zilla::Plugin::Test::Compile' => '2.039',
'Dist::Zilla::Plugin::Test::EOL' => '0.17',
'Dist::Zilla::Plugin::Test::Kwalitee' => '2.10',
'Dist::Zilla::Plugin::Test::MinimumVersion' => '2.000010',
'Dist::Zilla::Plugin::Test::NoTabs' => '0.08',
'Dist::Zilla::Plugin::Test::Portability' => '2.000007',
'Dist::Zilla::Plugin::Test::ReportPrereqs' => '0.022',
'Dist::Zilla::Plugin::TestRelease' => '0',
'Dist::Zilla::Plugin::UploadToCPAN' => '0',
'Dist::Zilla::Plugin::UseUnsafeInc' => '0',
'Dist::Zilla::PluginBundle::Author::ETHER' => '0.117',
'Dist::Zilla::PluginBundle::Git::VersionManager' => '0.007',
'Software::License::Perl_5' => '0'
}
}
};
$x;
}008-method-modifers.t100600000766000024 171413513224542 22033 0ustar00etherstaff000000000000MooseX-Role-Parameterized-1.11/tuse strict;
use warnings;
use Test::More 0.88;
my @calls;
do {
package MyRole::LogMethod;
use MooseX::Role::Parameterized;
parameter method => (
isa => 'Str',
required => 1,
);
role {
my $p = shift;
before $p->method => sub {
push @calls, "calling " . $p->method
};
after $p->method => sub {
push @calls, "called " . $p->method
};
around $p->method => sub {
my $orig = shift;
my $start = 0; # time
$orig->(@_);
my $end = 0; # time
push @calls, "took " . ($end - $start) . " seconds";
};
};
};
do {
package MyClass;
use Moose;
with 'MyRole::LogMethod' => {
method => 'new',
};
};
is_deeply([splice @calls], [], "no calls yet");
MyClass->new;
is_deeply([splice @calls], ["calling new", "took 0 seconds", "called new"], "instrumented new");
done_testing;
010-blessed-confess.t100600000766000024 35213513224542 21772 0ustar00etherstaff000000000000MooseX-Role-Parameterized-1.11/tuse strict;
use warnings;
use Test::More 0.88;
do {
package MyRole;
use MooseX::Role::Parameterized;
::is(\&confess, \&Carp::confess, 'confess');
::is(\&blessed, \&Scalar::Util::blessed, 'blessed');
};
done_testing;
018-parameter-roles.t100600000766000024 200613513224542 22043 0ustar00etherstaff000000000000MooseX-Role-Parameterized-1.11/tuse strict;
use warnings;
use Test::More 0.88 skip_all => "Not implemented yet";
{
package Test::Role;
use MooseX::Role::Parameterized;
parameter name => (
isa => "Str",
is => "ro",
required => 1,
);
role {
my $p = shift;
method foo => sub { "hello " . $p->name };
has blech => (
isa => "Str",
is => "ro",
required => 1,
);
};
package Test::Consumer;
use MooseX::Role::Parameterized -parameter_roles => [
'Test::Role' => { name => "foo" },
];
role {
my $p = shift;
method parameters => sub { $p };
};
package Test::Class;
use Moose;
with 'Test::Consumer' => { blech => "yes" };
}
my $obj = Test::Class->new;
does_ok( $obj, "Test::Consumer" );
can_ok( $obj, "parameters" );
my $p = $obj->parameters;
does_ok( $p, "Test::Role" );
can_ok( $p, "foo" );
can_ok( $p, "blech" );
is( $p->blech, "yes" );
is( $p->foo, "hello foo" );
done_testing;
021-parameter-trait.t100600000766000024 145313513224542 22041 0ustar00etherstaff000000000000MooseX-Role-Parameterized-1.11/tuse strict;
use warnings;
use Test::More 0.88;
do {
package MyTrait::Labeled;
use Moose::Role;
has label => (
is => 'ro',
isa => 'Str',
);
};
do {
package P::Role;
use MooseX::Role::Parameterized;
parameter favorite => (
traits => ['MyTrait::Labeled'],
label => 'FAVE',
isa => 'Str',
);
role {
my $p = shift;
method faves => sub { $p->meta->get_attribute('favorite')->label . ': ' . $p->favorite };
}
};
do {
package Class::P::d;
use Moose;
with 'P::Role' => { favorite => 'ether' };
};
do {
package Other::Class::P::d;
use Moose;
with 'P::Role' => { favorite => 'karen' };
};
is(Class::P::d->faves, 'FAVE: ether');
is(Other::Class::P::d->faves, 'FAVE: karen');
done_testing;
024-named-anonymous.t100600000766000024 165013513224542 22054 0ustar00etherstaff000000000000MooseX-Role-Parameterized-1.11/tuse strict;
use warnings;
use Test::More;
{
package Test::Role;
use MooseX::Role::Parameterized;
parameter default_beer => (
isa => "Str",
is => "ro",
required => 1,
);
role {
my $p = shift;
has beer => (
isa => "Str",
is => "ro",
default => $p->default_beer,
);
};
package Test::Class;
use Moose;
with 'Test::Role' => { default_beer => "O'Doul's" };
package Test::Class2;
use Moose;
with 'Test::Role' => { default_beer => "Root" };
}
like(
($_->new->meta->calculate_all_roles)[0]->name,
qr/\ATest::Role::__ANON__::SERIAL::[0-9]+\z/,
"Right looking role name for $_",
) for qw( Test::Class Test::Class2 );
isnt(
(Test::Class->new->meta->calculate_all_roles)[0]->name,
(Test::Class2->new->meta->calculate_all_roles)[0]->name,
'role names are unique'
);
done_testing;
portability.t100644000766000024 26713513224542 22466 0ustar00etherstaff000000000000MooseX-Role-Parameterized-1.11/xt/authoruse strict;
use warnings;
use Test::More;
eval 'use Test::Portability::Files';
plan skip_all => 'Test::Portability::Files required for testing portability'
if $@;
run_tests();
015-compose-keywords.t100600000766000024 214213513224542 22251 0ustar00etherstaff000000000000MooseX-Role-Parameterized-1.11/tuse strict;
use warnings;
use Test::More 0.88;
do {
package OtherRole;
use Moose::Role;
};
do {
package MyRole;
use MooseX::Role::Parameterized;
requires 'requirement';
excludes 'exclusion';
has attribute => ();
method meth => sub {};
before meth => sub {};
after meth => sub {};
around meth => sub {};
sub regular_method {}
override other_meth => sub { super };
with 'OtherRole';
role { }
};
for my $meta (MyRole->meta, MyRole->meta->generate_role) {
ok($meta->has_attribute('attribute'), 'has');
ok($meta->has_method('meth'), 'method');
ok($meta->has_method('regular_method'), 'sub');
is($meta->has_before_method_modifiers('meth'), 1, 'before');
is($meta->has_after_method_modifiers('meth'), 1, 'after');
is($meta->has_around_method_modifiers('meth'), 1, 'around');
is($meta->has_override_method_modifier('other_meth'), 1, 'override');
is($meta->does_role('OtherRole'), 1, 'with');
ok($meta->requires_method('requirement'), 'requires');
ok($meta->excludes_role('exclusion'), 'excludes');
}
done_testing;
pod-coverage.t100644000766000024 33413513224542 22472 0ustar00etherstaff000000000000MooseX-Role-Parameterized-1.11/xt/author#!perl
# This file was automatically generated by Dist::Zilla::Plugin::PodCoverageTests.
use Test::Pod::Coverage 1.08;
use Pod::Coverage::TrustPod;
all_pod_coverage_ok({ coverage_class => 'Pod::Coverage::TrustPod' });
017-current_metaclass.t100600000766000024 217013513224542 22460 0ustar00etherstaff000000000000MooseX-Role-Parameterized-1.11/tuse strict;
use warnings;
use Test::More 0.88;
do {
package Labeled;
use MooseX::Role::Parameterized;
::is(MooseX::Role::Parameterized->current_metaclass, undef, 'no metaclass yet');
parameter default => (
is => 'rw',
isa => 'Str',
);
::is(MooseX::Role::Parameterized->current_metaclass, undef, 'no metaclass yet');
role {
my $p = shift;
my %args = @_;
::is(MooseX::Role::Parameterized->current_metaclass, $args{operating_on}, 'now we have a metaclass');
has label => (
is => 'rw',
isa => 'Str',
default => $p->default,
);
::is(MooseX::Role::Parameterized->current_metaclass, $args{operating_on}, 'now we have a metaclass');
};
::is(MooseX::Role::Parameterized->current_metaclass, undef, 'no metaclass yet');
};
do {
package Foo;
use Moose;
::is(MooseX::Role::Parameterized->current_metaclass, undef, 'no metaclass yet');
with Labeled => { default => 'foo' };
::is(MooseX::Role::Parameterized->current_metaclass, undef, 'metaclass is gone now');
};
done_testing;
cpan-changes.t100644000766000024 34413513224542 22565 0ustar00etherstaff000000000000MooseX-Role-Parameterized-1.11/xt/releaseuse strict;
use warnings;
# this test was generated with Dist::Zilla::Plugin::Test::CPAN::Changes 0.012
use Test::More 0.96 tests => 1;
use Test::CPAN::Changes;
subtest 'changes_ok' => sub {
changes_file_ok('Changes');
};
005-with-parameterized.t100600000766000024 335313513224542 22550 0ustar00etherstaff000000000000MooseX-Role-Parameterized-1.11/tuse strict;
use warnings;
use Test::More 0.88;
do {
package MyItem::Role::Wearable;
use MooseX::Role::Parameterized;
parameter is_worn_default => (
is => 'rw',
isa => 'Bool',
default => 1,
);
role {
my $p = shift;
has is_worn => (
is => 'rw',
isa => 'Bool',
default => $p->is_worn_default,
);
method equip => sub { shift->is_worn(1) };
method remove => sub { shift->is_worn(0) };
};
};
do {
package MyItem::Role::Equippable;
use MooseX::Role::Parameterized;
parameter slot => (
isa => 'Str',
required => 1,
);
# XXX: UGH! We need some way of making this work I think..
parameter is_worn_default => (
is => 'rw',
isa => 'Bool',
default => 1,
);
role {
my $p = shift;
with 'MyItem::Role::Wearable' => {
is_worn_default => $p->is_worn_default,
};
method slot => sub { $p->slot };
};
};
do {
package MyItem::Helmet;
use Moose;
with 'MyItem::Role::Equippable' => {
slot => 'head',
is_worn_default => 0,
};
};
do {
package MyItem::Belt;
use Moose;
with 'MyItem::Role::Equippable' => {
slot => 'waist',
is_worn_default => 1,
};
};
can_ok('MyItem::Helmet', qw/is_worn equip remove slot/);
can_ok('MyItem::Belt', qw/is_worn equip remove slot/);
my $feathered = MyItem::Helmet->new;
ok(!$feathered->is_worn, "default for helmet is not worn");
is($feathered->slot, 'head');
my $chastity = MyItem::Belt->new;
ok($chastity->is_worn, "default for belt is worn");
is($chastity->slot, 'waist');
done_testing;
100-erroneous-keywords.t100600000766000024 170013513224542 22617 0ustar00etherstaff000000000000MooseX-Role-Parameterized-1.11/tuse strict;
use warnings;
use Test::More 0.88;
use Test::Fatal;
do {
package MyRole::Storage;
use MooseX::Role::Parameterized;
::like( ::exception {
parameter()
}, qr/^You must provide a name for the attribute/);
role {
::like( ::exception {
extends 'MyRole::Parameterized';
}, qr/^Roles do not support 'extends' \(you can use 'with' to specialize a role\)/);
::like( ::exception {
inner()
}, qr/^Roles cannot support 'inner'/);
::like( ::exception {
augment()
}, qr/^Roles cannot support 'augment'/);
::like( ::exception {
parameter()
}, qr/^'parameter' may not be used inside of the role block/);
::like( ::exception {
role {}
}, qr/^'role' may not be used inside of the role block/);
};
};
Moose::Meta::Class->create_anon_class(
roles => ['MyRole::Storage'],
);
done_testing;
minimum-version.t100644000766000024 15513513224542 23256 0ustar00etherstaff000000000000MooseX-Role-Parameterized-1.11/xt/authoruse strict;
use warnings;
use Test::More;
use Test::MinimumVersion;
all_minimum_version_ok( qq{5.008003} );
011-reference-parameters.t100600000766000024 261313513224542 23035 0ustar00etherstaff000000000000MooseX-Role-Parameterized-1.11/tuse strict;
use warnings;
use Test::More 0.88;
do {
package MyRole::Delegator;
use MooseX::Role::Parameterized;
parameter handles => (
is => 'rw',
required => 1,
);
role {
my $p = shift;
has attr => (
is => 'rw',
isa => 'MyClass::WithMethods',
handles => $p->handles,
);
};
};
do {
package MyClass::WithMethods;
use Moose;
sub foo { "foo" }
sub bar { "bar" }
sub baz { "baz" }
};
do {
package MyArrayConsumer;
use Moose;
with 'MyRole::Delegator' => {
handles => ['foo', 'bar'],
};
};
can_ok(MyArrayConsumer => 'foo', 'bar');
cant_ok(MyArrayConsumer => 'baz');
do {
package MyRegexConsumer;
use Moose;
with 'MyRole::Delegator' => {
handles => qr/^ba/,
};
};
can_ok(MyRegexConsumer => 'bar', 'baz');
cant_ok(MyRegexConsumer => 'foo');
do {
package MyHashConsumer;
use Moose;
with 'MyRole::Delegator' => {
handles => {
my_foo => 'foo',
his_baz => 'baz',
},
};
};
can_ok(MyHashConsumer => 'my_foo', 'his_baz');
cant_ok(MyHashConsumer => qw/foo bar baz/);
sub cant_ok {
local $Test::Builder::Level = $Test::Builder::Level + 1;
my $instance = shift;
for my $method (@_) {
ok(!$instance->can($method), "$instance cannot $method");
}
}
done_testing;
clean-namespaces.t100644000766000024 36113513224542 23316 0ustar00etherstaff000000000000MooseX-Role-Parameterized-1.11/xt/authoruse strict;
use warnings;
# this test was generated with Dist::Zilla::Plugin::Test::CleanNamespaces 0.006
use Test::More 0.94;
use Test::CleanNamespaces 0.15;
subtest all_namespaces_clean => sub { all_namespaces_clean() };
done_testing;
020-metaclass-reinitialize.t100600000766000024 347713513224542 23411 0ustar00etherstaff000000000000MooseX-Role-Parameterized-1.11/tuse strict;
use warnings;
use Test::More 0.88;
BEGIN {
require Moose;
if (Moose->VERSION < 1.9900) {
plan skip_all => q{this test isn't relevant on Moose 1.x};
}
}
{
package Foo::Meta::Role::Attribute;
use Moose::Role;
has foo => (is => 'ro');
}
{
package Foo::Exporter;
use Moose::Exporter;
Moose::Exporter->setup_import_methods(
role_metaroles => {
applied_attribute => ['Foo::Meta::Role::Attribute'],
},
);
}
{
package Foo::Role1;
use MooseX::Role::Parameterized;
role {
my $p = shift;
my %args = @_;
Foo::Exporter->import({into => $args{operating_on}->name});
has foo => (is => 'ro', foo => 'bar');
};
}
{
package Foo1;
use Moose;
with 'Foo::Role1';
}
{
is(
Foo1->meta->find_attribute_by_name('foo')->foo, 'bar',
'applied_attribute metaroles work when applied to generated role'
);
}
{
package Foo::Role2;
use MooseX::Role::Parameterized;
Foo::Exporter->import;
has foo => (is => 'ro', foo => 'bar');
role {
my $p = shift;
has bar => (is => 'ro');
};
}
{
package Foo2;
use Moose;
with 'Foo::Role2';
}
{
is(Foo2->meta->find_attribute_by_name('foo')->foo, 'bar',
'applied_attribute metaroles work when applied to parameterizable role');
}
{
package Foo::Role3;
use MooseX::Role::Parameterized;
has foo => (is => 'ro', foo => 'bar');
role {
my $p = shift;
has bar => (is => 'ro');
};
Foo::Exporter->import;
}
{
package Foo3;
use Moose;
with 'Foo::Role3';
}
{
is(Foo3->meta->find_attribute_by_name('foo')->foo, 'bar',
'applied_attribute metaroles work when applied to parameterizable role after the role block has been defined');
}
done_testing;
023-metarole-import-params.t100644000766000024 272313513224542 23354 0ustar00etherstaff000000000000MooseX-Role-Parameterized-1.11/tuse strict;
use warnings;
use Test::More skip_all => "Not implemented yet";
BEGIN {
package MyTrait::Label;
use MooseX::Role::Parameterized;
parameter default => (
is => 'rw',
isa => 'Str',
);
role {
my $p = shift;
has label => (
is => 'rw',
isa => 'Str',
default => $p->default,
);
};
};
BEGIN {
package MyApp::MooseX::LabeledAttributes;
use Moose::Exporter;
$INC{'MyApp/MooseX/LabeledAttributes.pm'} = 1;
# what is the secret sauce?
}
do {
package MyClass::LabeledURL;
use Moose;
use MyApp::MooseX::LabeledAttributes default => 'no label';
has name => (
is => 'ro',
);
has url => (
is => 'ro',
label => 'overridden',
);
no Moose;
no MyApp::MooseX::LabeledAttributes;
};
do {
package MyClass::LabeledPost;
use Moose;
use MyApp::MooseX::LabeledAttributes default => 'TODO!';
has name => (
is => 'ro',
);
has body => (
is => 'ro',
label => 'nevermind...',
);
no Moose;
no MyApp::MooseX::LabeledAttributes;
};
my $url_meta = MyClass::LabeledURL->meta;
is($meta->get_attribute('name')->label, 'no label');
is($meta->get_attribute('url')->label, 'overridden');
my $post_meta = MyClass::LabeledPost->meta;
is($meta->get_attribute('name')->label, 'TODO!');
is($meta->get_attribute('body')->label, 'nevermind...');
done_testing;
014-compose-parameterizable.t100600000766000024 106013513224542 23546 0ustar00etherstaff000000000000MooseX-Role-Parameterized-1.11/tuse strict;
use warnings;
use Test::More 0.88;
do {
package MyRole;
use MooseX::Role::Parameterized;
parameter attribute => (
isa => 'Str',
);
sub meth { 1 }
role {
my $p = shift;
has $p->attribute => (
is => 'ro',
);
};
};
do {
package MyClass;
use Moose;
with 'MyRole' => {
attribute => 'attr',
};
};
ok(MyClass->can('attr'), "the parameterized attribute was composed");
ok(MyClass->can('meth'), "the unparameterized method was composed");
done_testing;
changes_has_content.t100644000766000024 103213513224542 24130 0ustar00etherstaff000000000000MooseX-Role-Parameterized-1.11/xt/authoruse strict;
use warnings;
use Test::More;
plan skip_all => 'xt/release/changes_has_content.t is missing' if not -e 'xt/release/changes_has_content.t';
# skip for master branch, only for travis
if (($ENV{TRAVIS_PULL_REQUEST} || '') eq 'false') {
chomp(my $branch_name = ($ENV{TRAVIS_BRANCH} || `git rev-parse --abbrev-ref HEAD`));
$TODO = 'Changes need not have content for this release yet if this is only the master branch'
if ($branch_name || '') eq 'master';
}
do './xt/release/changes_has_content.t';
die $@ if $@;
Role000755000766000024 013513224542 20536 5ustar00etherstaff000000000000MooseX-Role-Parameterized-1.11/lib/MooseXParameterised.pm100644000766000024 235013513224542 24021 0ustar00etherstaff000000000000MooseX-Role-Parameterized-1.11/lib/MooseX/Roleuse strict;
use warnings;
package MooseX::Role::Parameterised;
# vim: set ts=8 sts=4 sw=4 tw=115 et :
# ABSTRACT: Moose roles with composition parameters
our $VERSION = '1.11';
__END__
=pod
=encoding UTF-8
=head1 NAME
MooseX::Role::Parameterised - Moose roles with composition parameters
=head1 VERSION
version 1.11
=head1 SYNOPSIS
See L; this module is just a stub to help the
civilised Perl users find this distribution with search engines. :)
=head1 SUPPORT
Bugs may be submitted through L
(or L).
There is also a mailing list available for users of this distribution, at
L.
There is also an irc channel available for users of this distribution, at
L on C|irc://irc.perl.org/#moose>.
=head1 AUTHOR
Shawn M Moore
=head1 COPYRIGHT AND LICENSE
This software is copyright (c) 2008 by Shawn M Moore.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
=cut
Parameterized.pm100600000766000024 1653413513224542 24051 0ustar00etherstaff000000000000MooseX-Role-Parameterized-1.11/lib/MooseX/Rolepackage MooseX::Role::Parameterized; # git description: v1.10-8-g9de4ac3
# ABSTRACT: Moose roles with composition parameters
# KEYWORDS: moose extension parameter role arguments dynamic parameterised parameterizable parameterisable
our $VERSION = '1.11';
use 5.008001;
use Moose 2.0300 ();
use Moose::Exporter;
use Carp 'confess';
use Moose::Util 'find_meta';
use namespace::clean 0.19;
use MooseX::Role::Parameterized::Meta::Trait::Parameterizable;
our $CURRENT_METACLASS;
sub current_metaclass { $CURRENT_METACLASS }
my $meta_lookup = sub {
my $for = shift;
current_metaclass() || find_meta($for);
};
Moose::Exporter->setup_import_methods(
also => 'Moose::Role',
with_caller => [ 'parameter', 'role' ],
with_meta => [ 'method', 'with' ],
meta_lookup => $meta_lookup,
role_metaroles => {
role => ['MooseX::Role::Parameterized::Meta::Trait::Parameterizable'],
},
);
sub parameter {
my $caller = shift;
confess "'parameter' may not be used inside of the role block"
if current_metaclass && current_metaclass->genitor->name eq $caller;
my $meta = find_meta($caller);
my $names = shift;
$names = [$names] if !ref($names);
for my $name (@$names) {
$meta->add_parameter($name => (
is => 'ro',
@_,
));
}
}
sub role (&) {
my $caller = shift;
my $role_generator = shift;
confess "'role' may not be used inside of the role block"
if current_metaclass && current_metaclass->genitor->name eq $caller;
find_meta($caller)->role_generator($role_generator);
}
sub method {
my $meta = shift;
my $name = shift;
my $body = shift;
my $method = $meta->method_metaclass->wrap(
package_name => $meta->name,
name => $name,
body => $body,
);
$meta->add_method($name => $method);
}
sub with {
local $CURRENT_METACLASS = undef;
Moose::Role::with(@_);
}
1;
__END__
=pod
=encoding UTF-8
=head1 NAME
MooseX::Role::Parameterized - Moose roles with composition parameters
=head1 VERSION
version 1.11
=head1 SYNOPSIS
package Counter;
use MooseX::Role::Parameterized;
parameter name => (
isa => 'Str',
required => 1,
);
role {
my $p = shift;
my $name = $p->name;
has $name => (
is => 'rw',
isa => 'Int',
default => 0,
);
method "increment_$name" => sub {
my $self = shift;
$self->$name($self->$name + 1);
};
method "reset_$name" => sub {
my $self = shift;
$self->$name(0);
};
};
package MyGame::Weapon;
use Moose;
with Counter => { name => 'enchantment' };
package MyGame::Wand;
use Moose;
with Counter => { name => 'zapped' };
=head1 DESCRIPTION
Your parameterized role consists of two new things: parameter declarations
and a C block.
Parameters are declared using the L keyword which very much
resembles L. You can use any option that L accepts. The
default value for the C option is C as that's a very common case. Use
C<< is => 'bare' >> if you want no accessor. These parameters will get their
values when the consuming class (or role) uses L. A parameter
object will be constructed with these values, and passed to the C block.
The C block then uses the usual L keywords to build up a
role. You can shift off the parameter object to inspect what the consuming
class provided as parameters. You use the parameters to customize your
role however you wish.
There are many possible implementations for parameterized roles (hopefully with
a consistent enough API); I believe this to be the easiest and most flexible
design. Coincidentally, Pugs originally had an eerily similar design.
See L for some tips on how to extend
this module.
=head2 Why a parameters object?
I've been asked several times "Why use a parameter I