Enumerable#group_by
なんでないんだろう。いままで partition がこれだとおもってた。
module Enumerable
def group_by(&block)
self.inject({}) {|r,i| (r[yield i] ||= []) << i; r}.values
end
end
foo = Array.new(10) { rand(40) }
require "pp"
pp foo.group_by {|i|
("%02d" % i)[0]
}partition より汎用的で、partition にするにも ! 一個足すだけだからこっちがあったほうがいいと思うんだけどなぁ
検索してみると既出すぎる……ActiveSupport にもあるんだ