>>21
なるほど、 String#each の場合は each_with_index が使えますね。
ただ、 each に限らずもうちょっと一般的な方法があればなあ、という願望です。

>>20
reject は何のために?というか得られる結果が違うし。 split でいくならこうかと。
text.split(/^/).each_with_index{ |l, i| p [i, l] }