let Hash#merge keep ifnone value

This commit is contained in:
Ichito Nagata
2018-06-01 12:48:17 +09:00
parent b64ce17852
commit 4a2b055cdd
+1 -2
View File
@@ -179,10 +179,9 @@ class Hash
#
# ISO 15.2.13.4.22
def merge(other, &block)
h = {}
raise TypeError, "can't convert argument into Hash" unless other.respond_to?(:to_hash)
other = other.to_hash
self.each_key{|k| h[k] = self[k]}
h = self.dup
if block
other.each_key{|k|
h[k] = (self.has_key?(k))? block.call(k, self[k], other[k]): other[k]