From 58e21a4a0d4eefc395139e88c1f184b9eaf0b4c4 Mon Sep 17 00:00:00 2001 From: Paul Mucur Date: Fri, 11 Jun 2010 23:38:18 +0100 Subject: Support passing a block to ActiveSupport::OrderedHash's merge and merge! [#4838 state:committed] For better consistency with Ruby's own Hash implementation. Signed-off-by: Xavier Noria --- activesupport/test/ordered_hash_test.rb | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'activesupport/test/ordered_hash_test.rb') diff --git a/activesupport/test/ordered_hash_test.rb b/activesupport/test/ordered_hash_test.rb index d070206d44..66e727007a 100644 --- a/activesupport/test/ordered_hash_test.rb +++ b/activesupport/test/ordered_hash_test.rb @@ -142,9 +142,22 @@ class OrderedHashTest < Test::Unit::TestCase assert_equal merged.length, @ordered_hash.length + other_hash.length assert_equal @keys + ['purple', 'violet'], merged.keys + another_hash = ActiveSupport::OrderedHash.new + another_hash['white'] = 'ff' + another_hash['black'] = '00' + merged_with_block = @ordered_hash.merge(another_hash) do |key, old_value, new_value| + new_value * 3 + end + assert_equal 'ffffff', merged_with_block['white'] + assert_equal '000000', merged_with_block['black'] + @ordered_hash.merge! other_hash assert_equal @ordered_hash, merged assert_equal @ordered_hash.keys, merged.keys + + @ordered_hash.merge! another_hash + assert_equal 'ffffff', merged_with_block['white'] + assert_equal '000000', merged_with_block['black'] end def test_shift -- cgit v1.2.3