class Pansophy::Remote::Directory

Public Class Methods

new(bucket_name, path = nil) click to toggle source
# File lib/pansophy/remote/directory.rb, line 6
def initialize(bucket_name, path = nil)
  @bucket_name = bucket_name
  @path        = path.to_s
end

Public Instance Methods

create(options) click to toggle source
# File lib/pansophy/remote/directory.rb, line 20
def create(options)
  remove(options)
  directory.files.create(key: pathname.cleanpath.to_s + '/')
end
create_file(path, body, options = {}) click to toggle source
# File lib/pansophy/remote/directory.rb, line 25
def create_file(path, body, options = {})
  CreateFile.new(@bucket_name, pathname.join(path), body).call(options)
end
files() click to toggle source
# File lib/pansophy/remote/directory.rb, line 16
def files
  remote_files.map { |file| File.new(file) }
end
pathname() click to toggle source
# File lib/pansophy/remote/directory.rb, line 11
def pathname
  Pathname.new(@path)
end

Private Instance Methods

directory() click to toggle source
# File lib/pansophy/remote/directory.rb, line 31
def directory
  ReadDirectory.new(@bucket_name, @path).call
end
directory?(file) click to toggle source
# File lib/pansophy/remote/directory.rb, line 44
def directory?(file)
  file.key.end_with?('/')
end
exist?() click to toggle source
# File lib/pansophy/remote/directory.rb, line 55
def exist?
  !remote_entry.nil?
end
prevent_overwrite!() click to toggle source
# File lib/pansophy/remote/directory.rb, line 65
def prevent_overwrite!
  fail ArgumentError,
       "#{pathname} already exists, pass ':overwrite => true' to overwrite"
end
remote_entries() click to toggle source
# File lib/pansophy/remote/directory.rb, line 40
def remote_entries
  directory.files
end
remote_entry() click to toggle source
# File lib/pansophy/remote/directory.rb, line 48
def remote_entry
  remote_entries.find { |entry|
    Pathname.new(entry.key).cleanpath == pathname.cleanpath
  }
end
remote_files() click to toggle source
# File lib/pansophy/remote/directory.rb, line 36
def remote_files
  remote_entries.select { |file| !directory?(file) }
end
remove(options) click to toggle source
# File lib/pansophy/remote/directory.rb, line 59
def remove(options)
  return unless exist?
  prevent_overwrite! unless options[:overwrite]
  remote_entries.each(&:destroy)
end