lib/ruby-conf.rb in ruby-conf-2.6.3 vs lib/ruby-conf.rb in ruby-conf-2.6.4

- old
+ new

@@ -71,11 +71,17 @@ 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 detach(parent = nil) + @__rc_parent = parent + @__rc_attributes.values.each do |child| + child.detach(self) if child.is_a?(Config) + end + 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? @@ -266,10 +272,10 @@ end if Loader::__rc_conf.nil? && (name.nil? || name.to_s =~ /^(?:Rails)?Conf/) default_conf = if ::Object.const_defined?(:Rails) cfg = config[:"#{::Rails.env}"] || config[:"#{::Rails.env}_conf"] || config[:"#{::Rails.env}_config"] - cfg && cfg.detach || config + (cfg && cfg.detach) || config else config end Loader::__rc_set_conf(default_conf) end