Manual Reference Pages - MODULE::STARTER::PLUGIN (3)
Module::Starter::Plugin -- how Module::Starter plugins work
This document is a guide to writing plugins for Module::Starter. Currently, as
is evident, it isnt very comprehensive. It should provide enough information
for writing effective plugins, though. After all, Module::Starters guts are
nice and simple.
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,
Module::Starter::Simple (and only Module::Starter::Simple) is loaded.
By default, the given modules are required and arranged in an 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 load_plugins method, however, the remaining plugins to be
loaded are passed to that method, which is responsible for loading the rest of
This architecture suggests two kinds of plugins:
An engine is a plugin that stands alone, implementing the public
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 Im not sure any more will be seen in the wild any
plain old plugins
Other plugins are designed to subclass an engine and alter its behavior,
just as a normal subclass alters its parent classs. These plugins may add
features to Module::Starter engines, or may just provide general APIs for other
plugins to exploit (like 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.
Ricardo SIGNES <rjbs at cpan.org>
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.
|perl v5.20.3 ||MODULE::STARTER::PLUGIN (3) ||2014-05-13 |
Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.