Project

General

Profile

Bug #10612

Documentation: Document behaviour of Hash#invert

Added by shevegen (Robert A. Heiler) over 4 years ago. Updated over 4 years ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Target version:
-
ruby -v:
ruby 2.1.5p273 (2014-11-13 revision 48405) [i686-linux]
[ruby-core:66917]

Description

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.

Associated revisions

Revision 45ecc027
Added by ayumin (Ayumu AIZAWA) over 4 years ago

  • hash.c: fix docs for Hash#invert. [ruby-core:66917] [Bug #10612]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49126 b2dd03c8-39d4-4d8f-98ff-823fe69b080e

Revision 49126
Added by ayumin (Ayumu AIZAWA) over 4 years ago

  • hash.c: fix docs for Hash#invert. [ruby-core:66917] [Bug #10612]

Revision 49126
Added by ayumin (Ayumu AIZAWA) over 4 years ago

  • hash.c: fix docs for Hash#invert. [ruby-core:66917] [Bug #10612]

Revision 49126
Added by ayumin (Ayumu AIZAWA) over 4 years ago

  • hash.c: fix docs for Hash#invert. [ruby-core:66917] [Bug #10612]

Revision 49126
Added by ayumin (Ayumu AIZAWA) over 4 years ago

  • hash.c: fix docs for Hash#invert. [ruby-core:66917] [Bug #10612]

Revision 49126
Added by ayumin (Ayumu AIZAWA) over 4 years ago

  • hash.c: fix docs for Hash#invert. [ruby-core:66917] [Bug #10612]

History

Updated by shevegen (Robert A. Heiler) over 4 years ago

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))

Updated by nobu (Nobuyoshi Nakada) over 4 years ago

Robert A. Heiler wrote:

"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."

"name" should be "value", I guess.

Updated by ayumin (Ayumu AIZAWA) over 4 years ago

  • Status changed from Open to Closed
  • % Done changed from 0 to 100

Applied in changeset r49126.


  • hash.c: fix docs for Hash#invert. [ruby-core:66917] [Bug #10612]

Also available in: Atom PDF