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