String#each_charとEnumerable#each_sliceを使えば簡単にできる.
"ABCDEFGH".each_char.each_slice(3).map{|a| a.join} #=> ["ABC", "DEF", "GH"]
ただしRuby 1.8.7以降が必要.
each_charやeach_sliceなどのイテレータメソッドはブロックを与えないで呼び出すとEnumeratorオブジェクトを返すので,これに対してさらにEnumerableのイテレータメソッドを適用したり,外部イテレータとして使ったりすることができる.知っておくと結構便利.