class ServerSettings::RoleDB

Public Instance Methods

build_db(name, config, group = nil) click to toggle source
# File lib/server_settings/role_db.rb, line 10
def build_db(name, config, group = nil)
  db = Database.new(name, group)
  db.master = config[:master]
  db.backup = config[:backup]
  db.slaves = config[:slaves]
  db.settings = config_params(config)
  return db
end
config_params(config) click to toggle source
# File lib/server_settings/role_db.rb, line 50
def config_params(config)
  exclude_settings = [ :master, :backup, :slaves ]
  config_keys = config.keys.select do |s|
    s.is_a?(Symbol) and not exclude_settings.include?(s)
  end
  Hash[*config_keys.map {|s| [s, config[s]] }.flatten]
end
databases() click to toggle source
# File lib/server_settings/role_db.rb, line 6
def databases
  @config.keys.select { |a| a.kind_of?(String) }
end
each() { |default_db| ... } click to toggle source
# File lib/server_settings/role_db.rb, line 23
def each
  default_db = build_db("default", @config)
  yield default_db

  databases.each do |db_name|
    config = @config[db_name]

    if config && config.has_key?(:master)
      db = build_db(db_name, config)
      db.settings = default_db.settings.merge(db.settings)
      yield db

    else # this is group section
      group_name = db_name
      config.map do |nest_db_name, nest_config|
        db = build_db(nest_db_name, nest_config, group_name)
        db.settings = default_db.settings.merge(db.settings)
        yield db
      end
    end
  end
end
find(db_name) click to toggle source
# File lib/server_settings/role_db.rb, line 19
def find(db_name)
  select { |s| s.name == db_name }.first
end
hosts() click to toggle source
# File lib/server_settings/role_db.rb, line 46
def hosts
  find_all
end