class Hash # Same as #update_each, but deletes the key element first. def replace_each # :yield: dup.each_pair{ |k,v| delete( k ); update( yield(k,v) ); } self end end # _____ _ # |_ _|__ ___| |_ # | |/ _ \/ __| __| # | | __/\__ \ |_ # |_|\___||___/\__| # =begin test require 'test/unit' class TCHash < Test::Unit::TestCase def test_replace_each a = { :a => 1, :b => 2, :c => 3 } e = { :a => 2, :b => 3, :c => 4 } a.replace_each{ |k,v| { k => v+1 } } assert_equal( e, a ) end end =end