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.

Attributes

stack[R]

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

paths()

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.