class Webgen::Source::Stacked

This source class is used to stack several sources together.

It serves two purposes:

  • First, it can be used to access more than one source. This is useful when your website consists of more than one source directory and you want to use all of them.

  • Second, sources can be mounted on specific directories. For example, a folder with images that you don't want to copy to the main website source directory can be mounted under '/images' so that they are available nonetheless.

Also be aware that when a path is returned by a source that has already be returned by a prior source, it is discarded and not used.



Return the stack of [mount point, source object] entries.

Public Class Methods

new(website, map = {})

Create a new stack.

The optional map parameter is used to provide mappings of mount points to source objects. It should be an array of two-element arrays which contain an absolute directory (ie. starting and ending with a slash) and a source object.

Public Instance Methods


Return all paths returned by the sources in the stack.

Since the stack is ordered, paths returned by later source objects are not used if a prior source object has returned the same path.