lib/anyway/config.rb in anyway_config-2.0.0.rc1 vs lib/anyway/config.rb in anyway_config-2.0.0
- old
+ new
@@ -31,10 +31,11 @@
values
class
clear
deconstruct_keys
dig
+ dup
initialize
load
load_from_sources
option_parser
pretty_print
@@ -342,9 +343,18 @@
values.dig(*keys)
end
def to_h
values.deep_dup.deep_freeze
+ end
+
+ def dup
+ self.class.allocate.tap do |new_config|
+ %i[config_name env_prefix __trace__].each do |ivar|
+ new_config.instance_variable_set(:"@#{ivar}", send(ivar).dup)
+ end
+ new_config.instance_variable_set(:@values, values.deep_dup)
+ end
end
def resolve_config_path(name, env_prefix)
Anyway.env.fetch(env_prefix).delete("conf") || Settings.default_config_path.call(name)
end