From: "matz (Yukihiro Matsumoto)" Date: 2013-09-04T08:14:29+09:00 Subject: [ruby-core:56999] [ruby-trunk - Feature #7292] Enumerable#to_h Issue #7292 has been updated by matz (Yukihiro Matsumoto). @trans I am sure [ [:a], [:b,1,2], [:c,3] ].to_h #=> {:a=>[], :b=>[1,2], :c=>[3]} is not we want. It destroys common cases for the sake of consistency. If you want different behavior from proposed one, please show us rational more than vague impression. For me, using #to_h on non 2 elements array is exceptional, so any behavior is OK if it's well-defined, and works for common cases. Matz. ---------------------------------------- Feature #7292: Enumerable#to_h https://bugs.ruby-lang.org/issues/7292#change-41588 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/