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