| Class | Webgen::DirectoryInfo |
| In: |
lib/webgen/website.rb
|
| Parent: | Object |
Base class for directories which have a README file with information stored in YAML format. Should not be used directly, use its child classes!
| infos | [R] | Contains additional information, like a description or the creator. |
| name | [R] | The unique name. |
Returns all available entries.
# File lib/webgen/website.rb, line 76
76: def self.entries
77: unless defined?( @entries )
78: @entries = {}
79: Dir.glob( File.join( self::BASE_PATH, '*' ), File::FNM_CASEFOLD ).each do |f|
80: next unless File.directory?( f )
81: name = File.basename( f );
82: @entries[name] = self.new( name )
83: end
84: end
85: @entries
86: end
Returns a new object for the given name.
# File lib/webgen/website.rb, line 43
43: def initialize( name )
44: @name = name
45: raise ArgumentError.new( "'#{name}' is not a directory!" ) if !File.directory?( path )
46: @infos = YAML::load( File.read( File.join( path, 'README' ) ) )
47: raise ArgumentError.new( "'#{name}/README' does not contain key-value pairs in YAML format!" ) unless @infos.kind_of?( Hash )
48: end
Copies the files returned by +files+ into the directory dest, preserving the directory hierarchy.
# File lib/webgen/website.rb, line 62
62: def copy_to( dest )
63: files.collect do |file|
64: destpath = File.join( dest, File.dirname( file ).sub( /^#{path}/, '' ) )
65: FileUtils.mkdir_p( File.dirname( destpath ) )
66: if File.directory?( file )
67: FileUtils.mkdir_p( File.join( destpath, File.basename( file ) ) )
68: else
69: FileUtils.cp( file, destpath )
70: end
71: File.join( destpath, File.basename( file ) )
72: end
73: end