BasicObject
# File lib/configatron/store.rb, line 13 def [](key) val = fetch(key.to_sym) do if @root_store.locked? ::Kernel.raise ::Configatron::UndefinedKeyError.new("Key not found: #{key} (for locked #{self})") end ::Configatron::Store.new(@root_store, "#{@name}.#{key}") end return val end
Needed for deep_clone to actually clone this object
# File lib/configatron/store.rb, line 91 def clone Store.new(@root_store, @name, @attributes.clone) end
# File lib/configatron/store.rb, line 50 def configure_from_hash(hash) hash.each do |key, value| if ::Hash === value self[key].configure_from_hash(value) else store(key, value) end end end
# File lib/configatron/store.rb, line 30 def fetch(key, default_value = nil, &block) val = @attributes[key.to_sym] if val == nil if block val = block.call elsif default_value val = default_value end store(key, val) end if ::Configatron::Proc === val val = val.call end return val end
# File lib/configatron/store.rb, line 64 def inspect f_out = [] @attributes.each do |k, v| if ::Configatron::Store === v v.inspect.each_line do |line| if line.match(/\n/) line.each_line do |l| l.strip! f_out << l end else line.strip! f_out << line end end else f_out << "#{@name}.#{k} = #{v.inspect}" end end f_out.compact.sort.join("\n") end
# File lib/configatron/store.rb, line 46 def key?(key) @attributes.key?(key.to_sym) end
# File lib/configatron/store.rb, line 86 def method_missing(name, *args, &block) do_lookup(name, *args, &block) end
So that we keep backward-compatibility in case people are using nil? to check configatron settings:
# File lib/configatron/store.rb, line 109 def nil? false end
# File lib/configatron/store.rb, line 23 def store(key, value) if @root_store.locked? ::Kernel.raise ::Configatron::LockedError.new("Cannot set key #{key} for locked #{self}") end @attributes[key.to_sym] = value end
So that puts works (it expects the object to respond to to_ary)
# File lib/configatron/store.rb, line 103 def to_ary nil end
# File lib/configatron/store.rb, line 95 def to_h @attributes.each_with_object({}) do |(k, v), h| v = v.call if ::Configatron::Proc === v h[k] = Store === v ? v.to_h : v end end
Generated with the Darkfish Rdoc Generator 2.