module MicroConfig
MicroConfig
- support for a basic yaml configuration¶ ↑
Constants
- VERSION
Public Instance Methods
[](key)
click to toggle source
# File lib/micro_config/micro_config.rb, line 28 def [](key) @config[key] end
[]=(key, value)
click to toggle source
# File lib/micro_config/micro_config.rb, line 32 def []=(key, value) @config[key.to_sym] = symbolize(value) end
configure(source = nil, options = {}) { |self| ... }
click to toggle source
# File lib/micro_config/micro_config.rb, line 40 def configure(source = nil, options = {}, &_block) if options[:environment] case source when /\.(yml|yaml)$/i file_config = YAML.load_file(source) environment_config = file_config.fetch(options[:environment].to_s) @config.merge!(symbolize(environment_config)) when Hash hash_config = source.fetch(options[:environment].to_s) @config.merge!(symbolize(hash_config)) else yield self if block_given? end else case source when /\.(yml|yaml)$/i @config.merge!(symbolize(YAML.load_file(source))) when Hash @config.merge!(symbolize(source)) else yield self if block_given? end end rescue => ce raise("Problems loading config source: #{source}: (#{ce.message})") end
fetch(key, default = nil)
click to toggle source
# File lib/micro_config/micro_config.rb, line 36 def fetch(key, default = nil) @config.fetch(key, default) end
method_missing(method, *arguments, &_block)
click to toggle source
# File lib/micro_config/micro_config.rb, line 69 def method_missing(method, *arguments, &_block) clean_method = method.to_s case clean_method when /(.+)=$/ key = clean_method.delete('=').to_sym @config[key] = arguments.size == 1 ? arguments[0] : arguments when /(.+)\?$/ key = clean_method.delete('?').to_sym @config.keys.include?(key) else key = clean_method.to_sym @config.fetch(key) end end
symbolize(object)
click to toggle source
# File lib/micro_config/micro_config.rb, line 11 def symbolize(object) case object when Hash object.inject({}) do |memo, (k, v)| memo.tap { |m| m[k.to_sym] = symbolize(v) } end when Array object.map { |v| symbolize(v) } else object end end
to_h()
click to toggle source
# File lib/micro_config/micro_config.rb, line 24 def to_h @config end