partition
Enumerable#partitionは、与えられたブロックが真を返す要素と偽を返す要素の2つのグループに分け、配列にして返します。
p (1..10).partition { |n| n % 2 == 1 } p <<"EOD".partition { |s| /^R/ =~ s } I'm Rubyco. Ruby is cool. Is Ruby cool? EOD
実行結果です。前者は奇数と偶数に分け、後者はRで始まる行とそれ以外の行に分けています。
[[1, 3, 5, 7, 9], [2, 4, 6, 8, 10]] [["Ruby is cool.\n"], ["I'm Rubyco.\n", "Is Ruby cool?\n"]]