Class: EasyBackup::Adapter::FileSystem
- Inherits:
-
Object
- Object
- EasyBackup::Adapter::FileSystem
- Defined in:
- lib/easy_backup/adapter/file_system.rb
Instance Method Summary collapse
- #file(file_name) ⇒ Object
- #files ⇒ Object
- #folder(path) ⇒ Object
- #folders ⇒ Object
-
#initialize ⇒ FileSystem
constructor
A new instance of FileSystem.
- #save(resource) ⇒ Object
- #send_to(storages) ⇒ Object
- #zip(file_name) ⇒ Object
- #zip_file ⇒ Object
Constructor Details
#initialize ⇒ FileSystem
Returns a new instance of FileSystem.
5 6 7 8 |
# File 'lib/easy_backup/adapter/file_system.rb', line 5 def initialize @folders = [] @files = [] end |
Instance Method Details
#file(file_name) ⇒ Object
18 19 20 |
# File 'lib/easy_backup/adapter/file_system.rb', line 18 def file(file_name) @files << file_name end |
#files ⇒ Object
22 23 24 |
# File 'lib/easy_backup/adapter/file_system.rb', line 22 def files @files.map { |f| f.is_a?(Proc) ? f.call : f } end |
#folder(path) ⇒ Object
10 11 12 |
# File 'lib/easy_backup/adapter/file_system.rb', line 10 def folder(path) @folders << path end |
#folders ⇒ Object
14 15 16 |
# File 'lib/easy_backup/adapter/file_system.rb', line 14 def folders @folders.map { |f| f.is_a?(Proc) ? f.call : f } end |
#save(resource) ⇒ Object
63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/easy_backup/adapter/file_system.rb', line 63 def save(resource) folders.each do |folder| EasyBackup.logger.info "[FileSystem] Saving #{resource}\n#{' '*15}into #{folder}" FileUtils.mkpath folder unless Dir.exist? folder if Dir.exist? resource FileUtils.cp_r resource, "#{folder}/#{File.basename(resource)}" else FileUtils.cp resource, "#{folder}/#{File.basename(resource)}" end end end |
#send_to(storages) ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/easy_backup/adapter/file_system.rb', line 34 def send_to(storages) if zip_file zip_file_name = zip_path(zip_file) EasyBackup.logger.info "[FileSystem] Zip #{zip_file_name}" FileUtils.mkpath File.dirname(zip_file_name) ZipFile.open(zip_file_name, ZipFile::CREATE) do |zip| (files | folders).each do |resource| if Dir.exist? resource EasyBackup.logger.info "#{' '*13}add #{resource}" Dir["#{resource}/**/**"].each do |r| EasyBackup.logger.info "#{' '*13}add #{r}" unless Dir.exist? r zip.add "#{File.basename(resource)}/#{r.gsub("#{resource}/", '')}", r end else EasyBackup.logger.info "#{' '*13}add #{resource}" zip.add File.basename(resource), resource end end end storages.each { |s| s.save zip_file_name } FileUtils.rm zip_file_name else (files | folders).each do |resource| storages.each { |s| s.save resource } if File.exist? resource end end end |
#zip(file_name) ⇒ Object
26 27 28 |
# File 'lib/easy_backup/adapter/file_system.rb', line 26 def zip(file_name) @zip_file = file_name end |
#zip_file ⇒ Object
30 31 32 |
# File 'lib/easy_backup/adapter/file_system.rb', line 30 def zip_file @zip_file.is_a?(Proc) ? @zip_file.call : @zip_file end |