lib/config/options.rb in config-1.2.1 vs lib/config/options.rb in config-1.3.0

- old
+ new

@@ -70,11 +70,12 @@ conf = source_conf else DeepMerge.deep_merge!(source_conf, conf, preserve_unmergeables: false, - knockout_prefix: Config.knockout_prefix) + knockout_prefix: Config.knockout_prefix, + overwrite_arrays: Config.overwrite_arrays) end end # swap out the contents of the OStruct with a hash (need to recursively convert) marshal_load(__convert(conf).marshal_dump) @@ -114,11 +115,14 @@ to_hash.to_json(*args) end def merge!(hash) current = to_hash - DeepMerge.deep_merge!(hash.dup, current) + DeepMerge.deep_merge!(hash.dup, + current, + preserve_unmergeables: false, + overwrite_arrays: Config.overwrite_arrays) marshal_load(__convert(current).marshal_dump) self end # Some keywords that don't play nicely with OpenStruct @@ -172,11 +176,11 @@ s.send("#{k}=".to_sym, v) end s end - # Return an integer if it looks like one + # Try to convert string to a correct type def __value(v) - Integer(v) rescue v + Integer(v) rescue Float(v) rescue v end end end