From: shevegen@... Date: 2014-12-17T17:51:04+00:00 Subject: [ruby-core:66918] [ruby-trunk - Bug #10612] Documentation: Document behaviour of Hash#invert Issue #10612 has been updated by Robert A. Heiler. For those of you who don't want to click on the link above, here is the copy paste of the official documentation of said method: "invert ��� new_hash Returns a new hash created by using hsh���s values as keys, and the keys as values. h = { "n" => 100, "m" => 100, "y" => 300, "d" => 200, "a" => 0 } h.invert #=> {0=>"a", 100=>"m", 200=>"d", 300=>"y"}" The last two lines are the official example - the last line shows that one key was lost (key at "n" => 100)) ---------------------------------------- Bug #10612: Documentation: Document behaviour of Hash#invert https://bugs.ruby-lang.org/issues/10612#change-50463 * Author: Robert A. Heiler * Status: Open * Priority: Low * Assignee: * Category: * Target version: * ruby -v: ruby 2.1.5p273 (2014-11-13 revision 48405) [i686-linux] * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN ---------------------------------------- Currently a hash loses data if an .invert is done: {"hey"=>3, "there"=>3, "yippie"=>3, "ack"=>2, "ackack"=>9, "thore"=>3, "yippa"=>9}.invert Result: # {3=>"thore", 2=>"ack", 9=>"yippa"} In the example, this is shown, but it is not documented at: http://www.ruby-doc.org/core-2.1.5/Hash.html#method-i-invert As the example already shows it, my suggestion is to extend the documentation with a sentence such as this: "If a key with the same name already exists in the Hash then the last one defined will be used, the earlier key will be discarded." Or something similar to this. -- https://bugs.ruby-lang.org/