From: "trans (Thomas Sawyer)" Date: 2013-09-04T02:46:48+09:00 Subject: [ruby-core:56998] [ruby-trunk - Feature #7292] Enumerable#to_h Issue #7292 has been updated by trans (Thomas Sawyer). =begin @marcandre That implementation is limited bu to_ary and it does some weird things. [ [:a], [:b,1,2], [:c,3] ].to_h #=> {:c=>3} I know what you want is to convert an associative array into a hash. That's a good thing to have, I agree! But Enumerable#to_h is not a good method for it. It doesn't "semant". At most it should be Array#to_h and work like: # Array#to_h [ [:a], [:b,1,2], [:c,3] ].to_h #=> {:a=>nil, :b=>1, :c=>3} Or [ [:a], [:b,1,2], [:c,3] ].to_h #=> {:a=>[], :b=>[1,2], :c=>[3]} Probably it could take an option to select which mode is desired. On the other hand, I am not so sure it shouldn't have a different name altogether, e.g. `Array#assoc_hash`. =end ---------------------------------------- Feature #7292: Enumerable#to_h https://bugs.ruby-lang.org/issues/7292#change-41587 Author: marcandre (Marc-Andre Lafortune) Status: Open Priority: Normal Assignee: marcandre (Marc-Andre Lafortune) Category: core Target version: next minor Now that #to_h is the official method for explicit conversion to Hash, we should also add Enumerable#to_h: Returns a hash for the yielded key-value pairs. [[:name, 'Joe Smith'], [:age, 42]].to_h # => {name: 'Joe Smith', age: 42} With the Ruby tradition of succint documentation I suggest the documentation talk about key-value pairs and there is no need to be explicit about the uninteresting cases like: (1..3).to_h # => {1 => nil, 2 => nil, 3 => nil} [[1, 2], [1, 3]].to_h # => {1 => 3} [[1, 2], []].to_h # => {1 => 2, nil => nil} I see some reactions of people reading about the upcoming 2.0 release like this one: http://globaldev.co.uk/2012/11/ruby-2-0-0-preview-features/#dsq-comment-body-700242476 -- http://bugs.ruby-lang.org/