lib/confuse/namespace.rb in confuse-0.0.1 vs lib/confuse/namespace.rb in confuse-0.1.0

- old
+ new

@@ -24,12 +24,17 @@ def strict @strict_flag = true end - def [](key) - (i = get_item(key)) && i.value + def [](key, config = nil) + value = (i = get_item(key)) && i.value + if value.respond_to?(:call) && !config.nil? + value.call(config) + else + value + end end def []=(key, value) item = get_item(key) || create_new_key(key, value) item && item.value = value @@ -37,10 +42,10 @@ def create_new_key(key, value) if @supress_warnings_flag puts "Warning: config includes unknown option '#{key}'" end - @items[key] = ConfigItem.new(key, &(Proc.new {})) unless @strict_flag + @items[key] = ConfigItem.new(key, &nil) unless @strict_flag end def get_item(key) @items[key] end