class ServerSettings

Constants

VERSION

Attributes

roles[RW]

Public Class Methods

destroy() click to toggle source
# File lib/server_settings.rb, line 95
def destroy
  @servers_config = nil
  @loaded_files = nil
end
each_role() { |role, hosts| ... } click to toggle source
# File lib/server_settings.rb, line 81
def each_role
  roles.each do |role, config|
    yield(role, config.hosts)
  end
end
load_config(file) click to toggle source
# File lib/server_settings.rb, line 45
def load_config(file)
  @loaded_files ||= {}
  load_from_yaml_erb(IO.read(file))
  @loaded_files[file] = File.mtime(file)
end
load_config_dir(pattern) click to toggle source
# File lib/server_settings.rb, line 51
def load_config_dir(pattern)
  Dir.glob(pattern) do |file|
    load_config(file)
  end
end
load_from_yaml(yaml) click to toggle source
# File lib/server_settings.rb, line 57
def load_from_yaml(yaml)
  config = YAML.load(yaml)
  config.each do |role, config|
    instance << role_klass(config).new(role, config)
  end
end
load_from_yaml_erb(yaml, erb_binding: binding) click to toggle source
# File lib/server_settings.rb, line 64
def load_from_yaml_erb(yaml, erb_binding: binding)
  yaml =  ERB.new(yaml).result(erb_binding)
  load_from_yaml(yaml)
end
new() click to toggle source
# File lib/server_settings.rb, line 18
def initialize
  @roles = {}
end
reload() click to toggle source
# File lib/server_settings.rb, line 69
def reload
  @loaded_files.each do |file, updated_at|
    if File.mtime(file) > updated_at
      load_config(file)
    end
  end
end
role_klass(config) click to toggle source
# File lib/server_settings.rb, line 87
def role_klass(config)
  if config.has_key?("hosts")
    Role
  else
    RoleDB
  end
end
roles() click to toggle source
# File lib/server_settings.rb, line 77
def roles
  instance.roles
end

Private Class Methods

instance() click to toggle source
# File lib/server_settings.rb, line 102
def instance
  return @servers_config if @servers_config
  @servers_config = self.new
  return @servers_config
end
method_missing(name, *args, &block) click to toggle source
# File lib/server_settings.rb, line 108
def method_missing(name, *args, &block)
  instance.send(name, *args, &block)
end

Public Instance Methods

<<(role) click to toggle source
# File lib/server_settings.rb, line 22
def << (role)
  raise DuplicateRole, "`#{role.name}' already defined" if @roles.has_key?(role.name)
  @roles[role.name] = role
end
each() { |name, role| ... } click to toggle source
# File lib/server_settings.rb, line 27
def each
  @roles.each do |name, role|
    yield(name, role)
  end
end
has_key?(role) click to toggle source
# File lib/server_settings.rb, line 33
def has_key?(role)
  @roles.has_key?(role)
end
method_missing(name, *args, &block) click to toggle source
# File lib/server_settings.rb, line 37
def method_missing(name, *args, &block)
  key = name.to_s
  return nil  unless has_key? key
  @roles[key]
end