module Webgen::ExtensionManager

Provides common functionality for extension manager classes.

This module is intended for mixing into an extension manager class. An example for an extension manage class is the Webgen::ContentProcessor class which manages all content processors. Extension manager classes provide methods for registering a certain type of extension and invoking methods on them via a common interface.

It is assumed that one wants to associate one or more names with an extension object.

Public Class Methods

new()

Create a new extension manager.

Public Instance Methods

register(klass, options = {}, &block)

Register a new extension.

*Note* that this method has to be implemented by classes that include this module. It should register one or more names for an extension object by associating the names with the extension object data (should be an object that responds at least to :object) via the @extensions hash.

The simplest way to achieve this is to use the do_register method.

registered?(name)

Return true if an extension with the given name has been registered with this manager class.

registered_extensions()

Return the meta data of all extensions registered with this manager class.