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