class Ariranha::Base

Attributes

config[R]
directories[R]
instances[R]

Public Class Methods

new(config_file = 'config.yml') click to toggle source
# File lib/ariranha/base.rb, line 7
def initialize(config_file = 'config.yml')
  @config = YAML.load(File.open(config_file))
  config_instances
  config_directories
end

Public Instance Methods

backup() click to toggle source
# File lib/ariranha/base.rb, line 13
def backup
  instances.each do |instance|
    filename = instance.backup
    directories.each { |dir| dir.upload(filename, instance.database) }
    puts "deleting /tmp/#{filename}..."
    Open3.capture3 "rm -rf /tmp/#{filename}"
  end
end

Private Instance Methods

config_directories() click to toggle source
# File lib/ariranha/base.rb, line 35
def config_directories
  @directories = []
  config['providers'].each do |provider, provider_cfg|
    @directories << Directory.new(provider, provider_cfg,
                                  config['keep_backups'])
  end
end
config_instances() click to toggle source
# File lib/ariranha/base.rb, line 26
def config_instances
  @instances = []
  config['databases'].each do |driver, instances|
    driver_str = "Ariranha::Drivers::#{driver.capitalize}"
    driver = driver_str.split('::').reduce(Object) { |a, e| a.const_get(e) }
    instances.each { |instance_cfg| @instances << driver.new(instance_cfg) }
  end
end