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