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