lib/confuse/namespace.rb in confuse-1.0.0 vs lib/confuse/namespace.rb in confuse-1.1.0

- old
+ new

@@ -4,19 +4,27 @@ # A {Namespace} is a container to keep configuration data seperate from the # rest of the config. class Namespace attr_reader :items - def initialize(&block) + def initialize(name, &block) + @name = name @items = {} block.call(self) if block_given? end def add_item(name, opts = {}) @items[name] = Item.new(name, opts) end def [](key) @items[key] + end + + def to_hash + @items.reduce({}) do |a, (k,v)| + key = @name ? :"#{@name}_#{k}" : k + a.merge({ key => v.to_hash }) + end end end end