From: "yhara (Yutaka HARA)" Date: 2012-06-30T02:23:13+09:00 Subject: [ruby-core:45960] [ruby-trunk - Feature #6669][Open] A method like Hash#map but returns hash Issue #6669 has been reported by yhara (Yutaka HARA). ---------------------------------------- Feature #6669: A method like Hash#map but returns hash https://bugs.ruby-lang.org/issues/6669 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/