module Settings

Attributes

_settings[R]

Public Instance Methods

deep_merge!(target, data) click to toggle source

Deep merging of hashes deep_merge by Stefan Rusterholz, see www.ruby-forum.com/topic/142809

# File lib/settings.rb, line 18
def deep_merge!(target, data)
    merger = proc{|key, v1, v2|
      Hash === v1 && Hash === v2 ? v1.merge(v2, &merger) : v2 }
    target.merge! data, &merger
end
load!(filename) click to toggle source

This is the main point of entry - we call Settings.load! and provide a name of the file to read as it's argument.

# File lib/settings.rb, line 11
def load!(filename)
    newsets = YAML::load_file(filename)
    deep_merge!(@_settings, newsets)
end
method_missing(name, *args, &block) click to toggle source
# File lib/settings.rb, line 24
def method_missing(name, *args, &block)
    return @_settings[name.to_s] ||
    fail(NoMethodError, "Unknown configuration root #{name}", caller)
end