From 36143d26cb841210b5f22aff4ed9c093a0554a1a Mon Sep 17 00:00:00 2001 From: Xavier Noria Date: Sun, 13 Jun 2010 06:37:54 +0200 Subject: revises implementation of AS::OrderedHash#merge! --- activesupport/lib/active_support/ordered_hash.rb | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'activesupport/lib/active_support/ordered_hash.rb') diff --git a/activesupport/lib/active_support/ordered_hash.rb b/activesupport/lib/active_support/ordered_hash.rb index eda33f827e..cd450fd00f 100644 --- a/activesupport/lib/active_support/ordered_hash.rb +++ b/activesupport/lib/active_support/ordered_hash.rb @@ -130,10 +130,12 @@ module ActiveSupport end def merge!(other_hash) - if block_given? - other_hash.each {|k,v| self[k] = yield(k, self[k], v) } - else - other_hash.each {|k,v| self[k] = v } + other_hash.each do |k, v| + if block_given? && key?(k) + self[k] = yield k, self[k], v + else + self[k] = v + end end self end -- cgit v1.2.3