class Webgen::BundleLoader

This class is used for loading extension bundles. It provides a DSL for the most commonly needed commands.

When an extension bundle is provided by a Rubygem and the Rubygem is not already activated, the Rubygem is automatically activated. This only works when one follows the standard naming conventions for webgen extension bundles, i.e. the Rubygem has to be named 'webgen-BUNDLE_NAME-bundle'.

Public Class Methods

new(website, ext_dir)

Create a new BundleLoader object belonging to the website object website.

Public Instance Methods


Load the extension bundle in the context of this BundleLoader object.


Force-loads the given file and does just that (i.e. no checking if file exists and no bundle registration).

*Note*: This method should normally not be called in an extension bundle, use the load method instead.


Loads all bundles that are marked for auto-loading.

DSL methods

Public Instance Methods


Return the absolute path of the given path which is assumed to be relative to the currently loaded file.

mount_passive(dir, mount_point = '/', glob = '{*,**/*}')

Mount the directory relative to the currently loaded file on the given mount point as passive source.

See Webgen::Source for more information.

option(name, default, &validator)

Define a configuration option.

See Webgen::Configuration#define_option for more information.


Require the file relative to the currently loaded file.


Return the website object.