class Thor::Tree::Directory
Attributes
path[R]
Public Class Methods
===(args)
click to toggle source
# File lib/thor/tree/directory.rb, line 9 def ===(args) args.is_a?(Hash) && (args.empty? || args.keys.all? { |key| key.start_with?(':') == false }) end
new(args, options = {}, config = {})
click to toggle source
Calls superclass method
# File lib/thor/tree/directory.rb, line 15 def initialize(args, options = {}, config = {}) @path = Path.new args.first.to_s super self.destination_root = Writer.root_path end
Public Instance Methods
add(path, args)
click to toggle source
# File lib/thor/tree/directory.rb, line 22 def add(path, args) case args when File add_file path, args when Directory add_subdirectory path, args end end
write()
click to toggle source
# File lib/thor/tree/directory.rb, line 31 def write empty_directory @path subdirectories.each { |dir| dir.write } files.each { |file| file.write } end
Private Instance Methods
add_file(file_path, options)
click to toggle source
# File lib/thor/tree/directory.rb, line 40 def add_file(file_path, options) files << File.new([@path / file_path, options]) end
add_subdirectory(dir_path, contents)
click to toggle source
# File lib/thor/tree/directory.rb, line 44 def add_subdirectory(dir_path, contents) path = @path / dir_path subdirectories.find { |dir| dir.path == path } || Tree::Directory.new([path]).tap do |dir| subdirectories << dir end.tap do |dir| contents.each do |content_path, options| dir.add content_path, options end end end
files()
click to toggle source
# File lib/thor/tree/directory.rb, line 56 def files; @files ||= []; end
subdirectories()
click to toggle source
# File lib/thor/tree/directory.rb, line 57 def subdirectories; @subdirectories ||= []; end