class Rowr::Zipper

Attributes

backup_dir[R]
filename[R]
src[RW]

Public Class Methods

new(src_dir) click to toggle source
# File lib/rowr/zipper.rb, line 7
def initialize(src_dir)
  @src = src_dir
  @filename = 'rowr_backup_files'
  @backup_dir = File.join(src, filename)
end

Public Instance Methods

backup() click to toggle source
# File lib/rowr/zipper.rb, line 17
def backup
  copy
  zip
  remove
end
backup_file_exists?() click to toggle source
# File lib/rowr/zipper.rb, line 55
def backup_file_exists?
  File.exist?(File.expand_path(File.join(src, "#{filename}.zip")))
end
copy() click to toggle source
# File lib/rowr/zipper.rb, line 27
def copy
  FileUtils.mkdir_p backup_dir
  files = Dir.glob(File.join(src, '*')).reject { |f| File.basename(f) == filename }
  FileUtils.cp_r files, backup_dir
end
delete_all_files_except_backup() click to toggle source
# File lib/rowr/zipper.rb, line 59
def delete_all_files_except_backup
  FileUtils.rm_rf (Dir.glob(File.join(src, '*')).reject { |f| File.basename(f) =~ /^rowr_/ })
end
remove() click to toggle source
# File lib/rowr/zipper.rb, line 23
def remove
  FileUtils.remove_dir(backup_dir)
end
restore() click to toggle source
# File lib/rowr/zipper.rb, line 40
def restore
  delete_all_files_except_backup
  unzip
end
unzip() click to toggle source
# File lib/rowr/zipper.rb, line 45
def unzip
  Zip::File.open(File.join(src, "#{filename}.zip")) do |zip_file|
    zip_file.each do |file|
      file_path = File.join(src, file.name)
      FileUtils.mkdir_p(File.dirname(file_path))
      zip_file.extract(file, file_path) unless File.exist?(file_path)
    end
  end
end
zip() click to toggle source
# File lib/rowr/zipper.rb, line 33
def zip
  zip = File.join(src,"#{filename}.zip")
  File.delete zip if File.exist?(zip)
  zf = ZipFileGenerator.new(backup_dir, zip)
  zf.write
end