lib/ruby-conf.rb in ruby-conf-2.0.0 vs lib/ruby-conf.rb in ruby-conf-2.1.0
- old
+ new
@@ -11,10 +11,11 @@
class Config
attr_reader :__rc_attributes, :__rc_parent, :__rc_name, :__rc_chains, :__rc_locked
def __rc_root() __rc_parent ? __rc_parent.__rc_root : self end
+ def detach() @__rc_parent = nil; self end
def initialize(name = nil, parent = nil, &block)
@__rc_locked, @__rc_attributes, @__rc_chains, @__rc_parent = false, {}, [], parent
@__rc_name = name.to_sym if name
instance_eval(&block) if block_given?
@@ -46,16 +47,16 @@
def []=(name, value)
@__rc_attributes[name.to_sym] = value
end
- def __rc_set_default(conf, key, value)
+ def __rc_set_defaults(conf, key, value)
if conf.__rc_attributes.key?(key)
if value.is_a?(Config)
sub = conf.__rc_attributes[key]
value.__rc_attributes.each do |k, v|
- __rc_set_default(sub, k, v)
+ __rc_set_defaults(sub, k, v)
end
end
else
conf.__rc_attributes[key] = value
end
@@ -68,11 +69,11 @@
if block_given?
if options.key?(:inherits)
self[name] = [*options[:inherits]].inject(Config.new(name, self, &block)) do |conf, inherited|
inherited = self[inherited.to_sym] unless inherited.is_a?(Config)
__rc_copy(inherited.__rc_attributes).each do |key, value|
- __rc_set_default(conf, key, value)
+ __rc_set_defaults(conf, key, value)
end
conf
end
elsif self[name].is_a?(Config)
self[name].instance_eval(&block)
@@ -103,12 +104,10 @@
self[name]
else
args = args.size == 1 ? args.first : args
(@__rc_locked && __rc_attributes[name.to_sym].is_a?(Proc)) ? self[name, args] : self[name] = args
end
-
end
-
end
def respond_to?(name)
super || @__rc_attributes.key?(name) || @__rc_parent.respond_to?(name)
end