class Outback::Backup
Attributes
configuration[R]
name[R]
timestamp[R]
tmpdir[R]
Public Class Methods
new(configuration)
click to toggle source
# File lib/outback/backup.rb, line 7 def initialize(configuration) raise ArgumentError, "configuration required" unless configuration.is_a?(Outback::Configuration) @configuration = configuration @name = configuration.name @timestamp = Time.now.strftime(Outback::TIME_FORMAT) end
Public Instance Methods
run!()
click to toggle source
# File lib/outback/backup.rb, line 14 def run! logger.info "Using working directory #{configuration.tmpdir}" if configuration.tmpdir @tmpdir = Dir.mktmpdir([name, timestamp], configuration.tmpdir) archives = create_archives logger.info "Created #{archives.size} archives" archives = process_archives(archives) logger.info "Processed #{archives.size} archives" store_archives(archives) purge_targets ensure FileUtils.remove_entry_secure(tmpdir) end
Private Instance Methods
create_archives()
click to toggle source
# File lib/outback/backup.rb, line 33 def create_archives sources.map { |source| source.create_archives(timestamp, tmpdir) }.flatten.compact end
process_archives(archives)
click to toggle source
# File lib/outback/backup.rb, line 37 def process_archives(archives) processors.inject(archives) { |archives, processor| processor.process!(archives) }.flatten.compact end
purge_targets()
click to toggle source
# File lib/outback/backup.rb, line 45 def purge_targets targets.each { |target| target.purge! } end
store_archives(archives)
click to toggle source
# File lib/outback/backup.rb, line 41 def store_archives(archives) targets.each { |target| target.put(archives) } end