/* * call-seq: * hsh.merge!(other_hash) => hsh * hsh.update(other_hash) => hsh * hsh.merge!(other_hash){|key, oldval, newval| block} => hsh * hsh.update(other_hash){|key, oldval, newval| block} => hsh * * Adds the contents of <i>other_hash</i> to <i>hsh</i>, overwriting * entries with duplicate keys with those from <i>other_hash</i>. * * h1 = { "a" => 100, "b" => 200 } * h2 = { "b" => 254, "c" => 300 } * h1.merge!(h2) #=> {"a"=>100, "b"=>254, "c"=>300} */ static VALUE rb_hash_update(hash1, hash2) VALUE hash1, hash2; { hash2 = to_hash(hash2); if (rb_block_given_p()) { rb_hash_foreach(hash2, rb_hash_update_block_i, hash1); } else { rb_hash_foreach(hash2, rb_hash_update_i, hash1); } return hash1; }