Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Contact Us
Online Help
Domain Status
Man Pages

Virtual Servers

Topology Map

Server Agreement
Year 2038

USA Flag



Man Pages
Module::Starter::Plugin(3) User Contributed Perl Documentation 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 isn't very comprehensive. It should provide enough information for writing effective plugins, though. After all, Module::Starter's 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 the plugins.
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 I'm not sure any more will be seen in the wild any time soon.

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 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>"

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.
2017-03-23 perl v5.28.1

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.