Issue #9635 has been updated by Andrey Mikhaylov.


Ok, what i suggest is not a valid Ruby syntax. It should be 

~~~
.hashy_map { |key, value| {key => value} }
~~~

which is hardly sweeter than

~~~
.map { |key, value| [key, value] }.to_h
~~~

and also goes against common practice of returning multiple results in an array.

@apeiros from irc://irc.freenode.net/ruby/ has cleared this out to me and suggested this very compact and efficient implementation: https://gist.github.com/apeiros/9527275

 

----------------------------------------
Feature #9635: Map a hash directly to a hash
https://bugs.ruby-lang.org/issues/9635#change-45758

* Author: Andrey Mikhaylov
* Status: Open
* Priority: Normal
* Assignee: 
* Category: 
* Target version: 
----------------------------------------
There should be a way to directly map a hash to a hash.

The current way to do it is not very graceful:

~~~
{foo: 'foo', bar: 'bar'}.map { |key, value| [key.upcase, value.reverse] }.to_h     # => { :FOO => 'oof', :BAR => 'rab' }
~~~

I think there should be a simpler and more natural way to do that. Something like this:

~~~
{foo: 'foo', bar: 'bar'}.hashy_map { |key, value| key.upcase => value.reverse }    # => { :FOO => 'oof', :BAR => 'rab' }
~~~



-- 
http://bugs.ruby-lang.org/