class Riserva::Commands::Backup

Constants

MAX_THREADS

Public Class Methods

new() click to toggle source
# 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