Namespace for all classes that provide source paths.
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.
Also note that the returned Path objects should have the meta information modified_at set to the correct last modification time of the path, ie. the value has to be a Time object!
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']
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.