From: "nathan.f77 (Nathan Broadbent)" Date: 2012-11-07T04:56:23+09:00 Subject: [ruby-core:48993] [ruby-trunk - Feature #7292] Enumerable#to_h Issue #7292 has been updated by nathan.f77 (Nathan Broadbent). I agree, Enumerable#to_h would make sense and be quite useful. (1..3).to_h would be a special case for the Range class, because [1, 2, 3].to_h should raise an exception. Here's an example in Ruby: module Enumerable def to_h hash = {} each_with_index do |el, i| raise TypeError, "(at index #{i}) Element is not an Array" unless Array === el raise IndexError, "(at index #{i}) Array has more than 2 elements" if el.size > 2 hash[el[0]] = el[1] end hash end end ---------------------------------------- Feature #7292: Enumerable#to_h https://bugs.ruby-lang.org/issues/7292#change-32514 Author: marcandre (Marc-Andre Lafortune) Status: Open Priority: Normal Assignee: Category: core Target version: 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/