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). 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 (the following code has to be placed after the definition of the MemorySource
class):
WebsiteAccess.website.config['sources'] << ['/', MemorySource]
Defined Under Namespace
Classes: FileSystem, Resource, Stacked, TarArchive