class SimpleBackup::Sources
Public Class Methods
new()
click to toggle source
# File lib/simple_backup/sources.rb, line 11 def initialize @sources = {} @default_keep_last = 5 end
Public Instance Methods
backup()
click to toggle source
# File lib/simple_backup/sources.rb, line 34 def backup @sources.each do |type, sources| sources.each do |name, source| source.get end end end
cleanup()
click to toggle source
# File lib/simple_backup/sources.rb, line 42 def cleanup each do |name, source| source.cleanup end end
default_keep_last=(value)
click to toggle source
# File lib/simple_backup/sources.rb, line 16 def default_keep_last=(value) @default_keep_last = value end
each(&block)
click to toggle source
# File lib/simple_backup/sources.rb, line 28 def each(&block) @sources.each do |type, sources| sources.each(&block) end end
method_missing(method, *args)
click to toggle source
# File lib/simple_backup/sources.rb, line 48 def method_missing(method, *args) source = create_source(method) return nil if source.nil? name = args.shift options = args.shift options ||= {} type = source.type.to_sym @sources[type] = {} if @sources[type].nil? raise "Name '#{name}' for source #{type} already used" if @sources[type].has_key?(name.to_sym) source.keep_last = @default_keep_last source.keep_last = options[:keep_last] if options[:keep_last] source.backends = options[:backends] if options[:backends] source.tmp_base_path = @tmp_dir if @tmp_dir source.name = name source.configure(options) @@logger.info "Created source for: #{source.desc.strip}" @sources[type][name.to_sym] = source end
tmp_dir(path)
click to toggle source
# File lib/simple_backup/sources.rb, line 20 def tmp_dir(path) raise "Temporary path '#{path}' does not exists" unless ::File.exist?(path) raise "Temporary path '#{path}' is not a directory" unless ::File.directory?(path) raise "Temporary path '#{path}' is not writable" unless ::File.writable?(path) @tmp_dir = path @@logger.info "Replaced temporary path to '#{@tmp_dir}'" end
Private Instance Methods
create_source(name)
click to toggle source
# File lib/simple_backup/sources.rb, line 75 def create_source(name) file = "simple_backup/source/#{name}" require file source_name = Object.const_get("SimpleBackup::Source::#{name.capitalize}") source_name.new end