class DataKeeper::LocalStorage

Public Class Methods

new(data) click to toggle source
# File lib/data_keeper/local_storage.rb, line 9
def initialize(data)
  @local_store_dir = data[:local_store_dir]
  @remote_access = data[:remote_access]
end

Public Instance Methods

retrieve(dump_name) { |tempfile| ... } click to toggle source
# File lib/data_keeper/local_storage.rb, line 21
def retrieve(dump_name)
  tempfile = Tempfile.new
  local_store_dir = @local_store_dir

  on complete_host do
    last_dump = capture :ls, "-1t #{File.join(local_store_dir, dump_name.to_s)} | head -n 1"

    download! File.join(local_store_dir, dump_name.to_s, last_dump), tempfile.path
  end

  yield(tempfile)
ensure
  tempfile.delete
end
save(file, filename, dump_name) click to toggle source
# File lib/data_keeper/local_storage.rb, line 14
def save(file, filename, dump_name)
  path = dump_path(dump_name, filename)
  FileUtils.mkdir_p(File.dirname(path))

  FileUtils.cp(file.path, path)
end

Private Instance Methods

complete_host() click to toggle source
# File lib/data_keeper/local_storage.rb, line 38
def complete_host
  "#{@remote_access[:user]}@#{@remote_access[:host]}:#{@remote_access[:port]}"
end
dump_path(dump_name, filename) click to toggle source
# File lib/data_keeper/local_storage.rb, line 42
def dump_path(dump_name, filename)
  File.join(@local_store_dir, dump_name.to_s, filename)
end