class Ecogem::Util::Config::ValueContainer
Public Class Methods
new(base, config, default_data)
click to toggle source
# File lib/ecogem/util/config/value_container.rb, line 5 def initialize(base, config, default_data) @base = base @config = config @default_data = default_data end
Public Instance Methods
find_value(key)
click to toggle source
# File lib/ecogem/util/config/value_container.rb, line 58 def find_value(key) return values[key] if values.key?(key) return @base.find_value(key) if @base raise NotFoundError end
h_to_values(h)
click to toggle source
# File lib/ecogem/util/config/value_container.rb, line 19 def h_to_values(h) values = {} h.each do |k, v| k = k.to_sym entry = @config.class.entries[k] values[k] = entry.parse(v) if entry end values end
proxy()
click to toggle source
# File lib/ecogem/util/config/value_container.rb, line 11 def proxy @proxy ||= Proxy.new(self) end
resolve_method(name, *args, &block)
click to toggle source
# File lib/ecogem/util/config/value_container.rb, line 38 def resolve_method(name, *args, &block) key = name.to_s.sub(/(=)$/, '').to_sym assign = $1 entry = @config.class.entries[key] if entry if assign return values[key] = args.first else begin return find_value(key) rescue NotFoundError value = entry.parse(nil) values[key] = value return value end end end raise UnresolvedError end
values()
click to toggle source
# File lib/ecogem/util/config/value_container.rb, line 15 def values @values ||= h_to_values(@default_data || {}) end
values_to_h()
click to toggle source
# File lib/ecogem/util/config/value_container.rb, line 29 def values_to_h h = {} values.each do |k, v| entry = @config.class.entries[k] h[k.to_s] = entry.unparse(v) end h end