NAME
Dist::Zilla::Role::PluginBundle::Easy - something that bundles a bunch of plugins easily
VERSION
version 6.007
SYNOPSIS
package Dist::Zilla::PluginBundle::Example;
use Moose;
with 'Dist::Zilla::Role::PluginBundle::Easy';
sub configure {
my $self = shift;
$self->add_plugins('VersionFromModule');
$self->add_bundle('Basic');
}
DESCRIPTION
This role builds upon the PluginBundle role, adding methods to take most of the grunt work out of creating a bundle. It supplies the bundle_config
method for you. In exchange, you must supply a configure
method, which will store the bundle's configuration in the plugins
attribute by calling add_plugins
and/or add_bundle
.
ATTRIBUTES
name
This is the bundle name, taken from the Section passed to bundle_config
.
payload
This hashref contains the bundle's parameters (if any), taken from the Section passed to bundle_config
.
plugins
This arrayref contains the configuration that will be returned by bundle_config
. You normally modify this by using the add_plugins
and add_bundle
methods.
METHODS
add_plugins
$self->add_plugins('Plugin1', [ Plugin2 => \%plugin2config ])
Use this method to add plugins to your bundle.
It is passed a list of plugin specifiers, which can be one of a few things:
a plugin moniker (like you might provide in your config file)
an arrayref of:
[ $moniker, $plugin_name, \%plugin_config ]
In the case of an arrayref, both $plugin_name
and \%plugin_config
are optional.
The plugins are added to the config in the order given.
add_bundle
$self->add_bundle(BundleName => \%bundle_config)
Use this method to add all the plugins from another bundle to your bundle. If you omit %bundle_config
, an empty hashref will be supplied.
config_slice
$hash_ref = $self->config_slice(arg1, { arg2 => 'plugin_arg2' })
Use this method to extract parameters from your bundle's payload
so that you can pass them to a plugin or subsidiary bundle. It supports easy renaming of parameters, since a plugin may expect a parameter name that's too generic to be suitable for a bundle.
Each arg is either a key in payload
, or a hashref that maps keys in payload
to keys in the hash being constructed. If any specified key does not exist in payload
, then it is omitted from the result.
AUTHOR
Ricardo SIGNES 😏 <rjbs@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2016 by Ricardo SIGNES.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.