class SimpleBackup::Backends
Public Class Methods
new()
click to toggle source
# File lib/simple_backup/backends.rb, line 11 def initialize @backends = {} end
Public Instance Methods
each(&block)
click to toggle source
# File lib/simple_backup/backends.rb, line 15 def each(&block) @backends.each(&block) end
method_missing(method, *args)
click to toggle source
# File lib/simple_backup/backends.rb, line 33 def method_missing(method, *args) backend = create_backend(method) return nil if backend.nil? name = args.shift options = args.shift options ||= {} raise "Name '#{name}' for backend already used" if @backends.has_key?(name.to_sym) backend.name = name backend.configure(options) @@logger.info "Created backend for: #{backend.desc}" @backends[name.to_sym] = backend end
save_and_cleanup()
click to toggle source
# File lib/simple_backup/backends.rb, line 19 def save_and_cleanup each do |name, backend| @@sources.each do |name, source| next unless source.backup_file and source.supports(backend) backend.store(source) @@logger.info "Source '#{source.desc.strip}' stored in backend '#{backend.desc.strip}'" backend.cleanup(source) @@logger.info "Source '#{source.desc.strip}' cleaned up in backend '#{backend.desc.strip}'" end end end
Private Instance Methods
create_backend(name)
click to toggle source
# File lib/simple_backup/backends.rb, line 52 def create_backend(name) file = "simple_backup/backend/#{name}" require file backend_name = Object.const_get("SimpleBackup::Backend::#{name.capitalize}") backend_name.new end