From: nobu@... Date: 2018-09-20T02:47:55+00:00 Subject: [ruby-core:89091] [Ruby trunk Feature#15143] Extend `Enumerable#to_h` Issue #15143 has been updated by nobu (Nobuyoshi Nakada). Subject changed from Extend `Enumerrable#to_h` to Extend `Enumerable#to_h` Have you changed the mind since #10208? ---------------------------------------- Feature #15143: Extend `Enumerable#to_h` https://bugs.ruby-lang.org/issues/15143#change-74110 * Author: sawa (Tsuyoshi Sawada) * Status: Open * Priority: Normal * Assignee: nobu (Nobuyoshi Nakada) * Target version: ---------------------------------------- Often, we call `Array#to_h` to the result of `Enumerable#map`: ```ruby (1..5).map{|x| [x, x ** 2]}.to_h #=> {1=>1, 2=>4, 3=>9, 4=>16, 5=>25} ``` I am thinking of a feature to do this in a single method call. Currently, `Enumerable#to_h` does not accept a block. I propose that, when `Enumerable#to_h` is called with a block (that has a subarray representing a key-value pair), return a hash that would be returned by applying the block to `map`, and `to_h` to the result: ```ruby (1..5).to_h{|x| [x, x ** 2]} #=> {1=>1, 2=>4, 3=>9, 4=>16, 5=>25} ``` Ideally, I request this to be done internally to Ruby without creating an intermediate parent array. -- https://bugs.ruby-lang.org/ Unsubscribe: