class Riserva::Commands::Backup
Constants
- MAX_THREADS
Public Class Methods
new()
click to toggle source
Calls superclass method
Riserva::Commands::ApplicationCommand::new
# File lib/riserva/commands/backup.rb, line 5 def initialize super end
Public Instance Methods
call()
click to toggle source
# File lib/riserva/commands/backup.rb, line 9 def call perform broadcast(:ok) rescue StandardError => e broadcast(:failed) raise e end
Private Instance Methods
archivator()
click to toggle source
# File lib/riserva/commands/backup.rb, line 26 def archivator @archivator ||= Riserva::Commands::CreateArchive.new end
perform()
click to toggle source
# File lib/riserva/commands/backup.rb, line 20 def perform Riserva::Config.folders.each do |folder| push_to_cloud archivator.call(folder).files end end
push_to_cloud(files)
click to toggle source
# File lib/riserva/commands/backup.rb, line 30 def push_to_cloud(files) Parallel.map(Riserva::Config.storages, in_threads: MAX_THREADS) do |storage| files.map { |file| upload_file(storage, file) } end end
upload_file(storage, file)
click to toggle source
# File lib/riserva/commands/backup.rb, line 36 def upload_file(storage, file) uploader(storage).call(file) end
uploader(storage)
click to toggle source
# File lib/riserva/commands/backup.rb, line 40 def uploader(storage) @uploaders ||= {} @uploaders[storage.title] ||= Riserva::Commands::UploadFile.new(storage) end