Module: Webgen::Source
- Defined in:
- lib/webgen/source.rb,
lib/webgen/source/stacked.rb,
lib/webgen/source/resource.rb
Overview
Namespace for all classes that provide source paths.
Implementing a source class
Source classes provide access to the source paths on which the source handlers act.
A source class only needs to respond to the method paths
which needs to return a set of paths for the source. The returned paths must respond to the method changed?
(has to return true
if the paths has changed since the last webgen run). If a path represents a directory, it needs to have a trailing slash! The default implementation in the Path class just returns true
. One can either derive a specialized path class or define singleton methods on each path object.
Sample Source Class
Following is a simple source class which has stored the paths and their contents in a hash:
require 'stringio'
class MemorySource
CONTENT = {
'/directory/' => nil,
'/directory/file.page' => "This is the content of the file"
}
def paths
CONTENT.collect do |path, content|
Webgen::Path.new(path) { StringIO.new(content.to_s) }
end.to_set
end
end
You can use this source class in your website (after placing the code in, for example, ext/init.rb
) by updating the sources
configuration option:
WebsiteAccess.website.config['sources'] << ['/', 'MemorySource']
Defined Under Namespace
Classes: FileSystem, Resource, Stacked, TarArchive