/usr/share/perl5/Module/Starter/Plugin.pod is in libmodule-starter-perl 1.710+dfsg-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | =pod
=head1 NAME
Module::Starter::Plugin -- how Module::Starter plugins work
=head1 DESCRIPTION
This document is a guide to writing plugins for Module::Starter. Currently, as
is evident, it isn't very comprehensive. It should provide enough information
for writing effective plugins, though. After all, Module::Starter's guts are
nice and simple.
=head2 C<< Module::Starter->import >>
Module::Starter provides an import method, the arguments to which are plugins,
in the order in which they should be loaded. If no plugins are given,
L<Module::Starter::Simple> (and only Module::Starter::Simple) is loaded.
By default, the given modules are required and arranged in an I<is-a> chain.
That is, Module::Starter subclasses the last plugin given, which subclasses the
second-to-last, up to the first plugin given, which is the base class. If a
plugin provides a C<load_plugins> method, however, the remaining plugins to be
loaded are passed to that method, which is responsible for loading the rest of
the plugins.
This architecture suggests two kinds of plugins:
=head2 engine plugins
An engine is a plugin that stands alone, implementing the public
C<create_distro> method and all the functionality required to carry out that
implementation. The only engine included with Module::Starter is
Module::Starter::Simple, and I'm not sure any more will be seen in the wild any
time soon.
=head2 plain old plugins
Other plugins are designed to subclass an engine and alter its behavior,
just as a normal subclass alters its parent class's. These plugins may add
features to Module::Starter engines, or may just provide general APIs for other
plugins to exploit (like L<Module::Starter::Plugin::Template>.)
The template plugin is a simple example of a plugin that alters an engine to
accept further plugins. Other plugins like template will probably be written
in the near future, and plugins that exploit the API provided by
Module::Starter::Plugin::Template will be available on the CPAN.
=head1 AUTHOR
Ricardo SIGNES C<< <rjbs at cpan.org> >>
=head1 COPYRIGHT
Copyright 2005, Ricardo SIGNES. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
=cut
|