From: lolmaus@... Date: 2014-03-13T12:59:16+00:00 Subject: [ruby-core:61464] [ruby-trunk - Feature #9635] Map a hash directly to a hash 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/