module Upman::Core::Config

Attributes

_config[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/upman/core/config.rb, line 22
def deep_merge!(target, data)
  merger = proc {|key, v1, v2|
    Hash === v1 && Hash === v2 ? v1.merge(v2, &merger) : v2}
  target.merge! data, &merger
end
get!(key) click to toggle source
# File lib/upman/core/config.rb, line 16
def get!(key)
  return @_config[key]
end
load!(filename, options = {}) click to toggle source
# File lib/upman/core/config.rb, line 10
def load!(filename, options = {})
  newsets = YAML::load_file(filename).deep_symbolize_keys
  newsets = newsets[options[:env].to_sym] if options[:env] && newsets[options[:env].to_sym]
  deep_merge!(@_config, newsets)
end
method_missing(name, *args, &block) click to toggle source
# File lib/upman/core/config.rb, line 28
def method_missing(name, *args, &block)
  @_config[name.to_sym] ||
      fail(NoMethodError, "unknown configuration root #{name}", caller)
end