From: "trans (Thomas Sawyer)" <transfire@...> Date: 2012-06-30T02:34:41+09:00 Subject: [ruby-core:45962] [ruby-trunk - Feature #6669] A method like Hash#map but returns hash Issue #6669 has been updated by trans (Thomas Sawyer). Hi, I just want to mention that Facets has this using name #mash (map hash) with alias #graph, which was the original name. So those are two names to consider. Thanks. ---------------------------------------- Feature #6669: A method like Hash#map but returns hash https://bugs.ruby-lang.org/issues/6669#change-27567 Author: yhara (Yutaka HARA) Status: Open Priority: Normal Assignee: Category: core Target version: 2.0.0 =begin Given a hash h, h.map returns an array(alist), but sometimes I hope it returned a hash. Example: class Hash def apply(&block) self.inject({}) do |h, (k, v)| new_k, new_v = *block.call(k, v) h[new_k] = new_v h end end end score = { taro: [1,3,2], jiro: [3,5,8,4], saburo: [2,9] } max_score = score.apply{|k,v| [k, v.max]} #=> {taro: 3, jiro: 8, saburo: 9} p max_score[:taro] #=> 3 I'm not thinking "apply" is a perfect name for this. Maybe "hash_map" is better (we already have "flat_map"). =end -- http://bugs.ruby-lang.org/