diff options
| author | Ichito Nagata <[email protected]> | 2018-06-01 12:48:17 +0900 |
|---|---|---|
| committer | Ichito Nagata <[email protected]> | 2018-06-01 12:48:17 +0900 |
| commit | 4a2b055cdd7b006e77f0d0cb82cb0e8c546027f9 (patch) | |
| tree | c0cbbc862a4de4ecc8739125a3aec11f4cbddf52 | |
| parent | b64ce17852b180dfeea81cf458660be41a78974d (diff) | |
| download | mruby-4a2b055cdd7b006e77f0d0cb82cb0e8c546027f9.tar.gz mruby-4a2b055cdd7b006e77f0d0cb82cb0e8c546027f9.zip | |
let Hash#merge keep ifnone value
| -rw-r--r-- | mrblib/hash.rb | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/mrblib/hash.rb b/mrblib/hash.rb index 6b4803ccb..7e1db905f 100644 --- a/mrblib/hash.rb +++ b/mrblib/hash.rb @@ -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] |
