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