class Pansophy::Local::Directory

Public Class Methods

new(path) click to toggle source
# File lib/pansophy/local/directory.rb, line 6
def initialize(path)
  @path = path
  verify_directory!
end

Public Instance Methods

create(options) click to toggle source
# File lib/pansophy/local/directory.rb, line 20
def create(options)
  remove(options)
  pathname.mkpath
end
create_file(path, body, options = {}) click to toggle source
# File lib/pansophy/local/directory.rb, line 25
def create_file(path, body, options = {})
  CreateFile.new(pathname.join(path), body).call(options)
end
files() click to toggle source
# File lib/pansophy/local/directory.rb, line 16
def files
  entries.select(&:file?).map { |file| File.new(file) }
end
pathname() click to toggle source
# File lib/pansophy/local/directory.rb, line 11
def pathname
  Pathname.new(@path)
end

Private Instance Methods

entries() click to toggle source
# File lib/pansophy/local/directory.rb, line 31
def entries
  Dir[pathname.join('**/*')].map { |entry| Pathname.new(entry) }
end
prevent_overwrite!() click to toggle source
# File lib/pansophy/local/directory.rb, line 47
def prevent_overwrite!
  fail ArgumentError,
       "#{pathname} already exists, pass ':overwrite => true' to overwrite"
end
remove(options) click to toggle source
# File lib/pansophy/local/directory.rb, line 41
def remove(options)
  return unless pathname.exist?
  prevent_overwrite! unless options[:overwrite]
  pathname.rmtree
end
verify_directory!() click to toggle source
# File lib/pansophy/local/directory.rb, line 36
def verify_directory!
  return if pathname.directory? || !pathname.exist?
  fail ArgumentError, "#{pathname} is not a directory"
end