
App::SmokeBrew::Plugin - A Moose role for smokebrew plugins

package App::SmokeBrew::Plugin::Some::Plugin; use Moose; with 'App::SmokeBrew::Plugin';

App::SmokeBrew::Plugin is a Moose role that smokebrew plugins must consume.

These are the attributes provided by the role and are expected by smokebrew:
emailA required attribute, this must be a valid email address as constrained by MooseX::Types::Email
builddirA required attribute, this is the working directory where builds can take place. It will be coerced into a Path::Class::Dir object by MooseX::Types::Path::Class.
prefixA required attribute, this is the prefix of the location where perl installs will be made, it will be coerced into a Path::Class::Dir object by MooseX::Types::Path::Class.
example:
prefix = /home/cpan/pit/rel perls will be installed as /home/cpan/pit/perl-5.12.0, /home/cpan/pit/perl-5.10.1, etc.
perl_exeA required attribute, this is the path to the perl executable that the plugin will configure, it will be coerced to a Path::Class::File object by MooseX::Types::Path::Class.
mirrorsA required attribute, this is an arrayref of URI objects representing CPAN Mirrors to use. It uses type ArrayRefUri from App::SmokeBrew::Types, so will coerce URI objects from ordinary strings and from an arrayref of strings. It is set to auto_deref.
mxOptional attribute, which has no default value, this is the address or IP address of a mail exchanger to use for sending test reports.
verboseOptional boolean attribute, which defaults to 0, indicates whether the plugin should produce verbose output.
nocleanOptional boolean attribute, which defaults to 0, indicates whether the plugin should cleanup files that it produces under the builddir or not.

Consumer classes as required to implement the following methods:

App::SmokeBrew will pass any options it finds in a named section of the configuration file for a plugin when it a new plugin instance. See smokebrew for details. You are expected to document any options that may be passed to your plugin in this manner.

Chris BinGOs Williams

Copyright © Chris Williams
This module may be used, modified, and distributed under the same terms as Perl itself. Please see the license that came with your Perl distribution for details.
