Parent

Included Modules

Class Index [+]

Quicksearch

Webgen::Output::FileSystem

This class uses the file systems as output device. On initialization a root path is set and all other operations are taken relative to this root path.

Attributes

root[R]

The root path, ie. the path to which the root node gets rendered.

Public Class Methods

new(root) click to toggle source

Create a new object with the given root path. If root is not absolute, it is taken relative to the website directory.

    # File lib/webgen/output/filesystem.rb, line 18
18:     def initialize(root)
19:       #TODO: copied from source/filesystem.rb
20:       if root =~ /^([a-zA-Z]:|\/)/
21:         @root = root
22:       else
23:         @root = File.join(website.directory, root)
24:       end
25:     end

Public Instance Methods

delete(path) click to toggle source

Delete the given path

    # File lib/webgen/output/filesystem.rb, line 33
33:     def delete(path)
34:       dest = File.join(@root, path)
35:       if File.directory?(dest)
36:         FileUtils.rm_rf(dest)
37:       else
38:         FileUtils.rm(dest)
39:       end
40:     end
exists?(path) click to toggle source

Return true if the given path exists.

    # File lib/webgen/output/filesystem.rb, line 28
28:     def exists?(path)
29:       File.exists?(File.join(@root, path))
30:     end
read(path, mode = 'rb') click to toggle source

Return the content of the given path which is opened in mode.

    # File lib/webgen/output/filesystem.rb, line 63
63:     def read(path, mode = 'rb')
64:       File.open(File.join(@root, path), mode) {|f| f.read}
65:     end
write(path, data, type = :file) click to toggle source

Write the data to the given path. The type parameter specifies the type of the path to be created which can either be :file or :directory.

    # File lib/webgen/output/filesystem.rb, line 44
44:     def write(path, data, type = :file)
45:       dest = File.join(@root, path)
46:       FileUtils.makedirs(File.dirname(dest))
47:       if type == :directory
48:         FileUtils.makedirs(dest)
49:       elsif type == :file
50:         if data.kind_of?(String)
51:           File.open(dest, 'wb') {|f| f.write(data) }
52:         else
53:           data.stream('rb') do |source|
54:             File.open(dest, 'wb') {|f| FileUtils.copy_stream(source, f) }
55:           end
56:         end
57:       else
58:         raise "Unsupported path type '#{type}' for #{path}"
59:       end
60:     end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.