class S3TarBackup::Backend::FileBackend

Attributes

prefix[R]

Public Class Methods

new(path) click to toggle source
# File lib/s3_tar_backup/backend/file_backend.rb, line 11
def initialize(path)
  @prefix = Pathname.new(path).absolute? ? path : File.expand_path(File.join('~', path))
end

Public Instance Methods

download_item(relative_path, local_path) click to toggle source
# File lib/s3_tar_backup/backend/file_backend.rb, line 27
def download_item(relative_path, local_path)
  FileUtils.cp(File.join(@prefix, relative_path), local_path)
end
item_exists?(relative_path) click to toggle source
# File lib/s3_tar_backup/backend/file_backend.rb, line 23
def item_exists?(relative_path)
  File.exists?(File.join(@prefix, relative_path))
end
list_items(relative_path='') click to toggle source
# File lib/s3_tar_backup/backend/file_backend.rb, line 41
def list_items(relative_path='')
  return [] unless File.directory?(File.join(@prefix, relative_path))
  relative_path = '.' if relative_path.nil? || relative_path.empty?
  Dir.chdir(@prefix) do
    Dir.entries(relative_path).select{ |x| File.file?(x) }.map do |x|
      path = File.join(relative_path, x)
      BackendObject.new(path, File.size?(path))
    end
  end
end
name() click to toggle source
# File lib/s3_tar_backup/backend/file_backend.rb, line 15
def name
  "File"
end
remove_item(relative_path) click to toggle source
# File lib/s3_tar_backup/backend/file_backend.rb, line 19
def remove_item(relative_path)
  File.delete(File.join(@prefix, relative_path))
end
upload_item(relative_path, local_path, remove_original) click to toggle source
# File lib/s3_tar_backup/backend/file_backend.rb, line 31
def upload_item(relative_path, local_path, remove_original)
  path = File.join(@prefix, relative_path)
  FileUtils.mkdir_p(File.dirname(path)) unless File.directory?(File.dirname(path))
  if remove_original
    FileUtils.mv(local_path, path)
  else
    FileUtils.cp(local_path, path)
  end
end