while, until, loop には自動的に、
インデックスが渡ってこないのですか?
一々、自分でカウントするのが面倒くさい

while 条件 do |i|
end

i = 0
while 条件
i += 1
end

それと、後判定の構文はありますか?
do
while 条件

do |i|
while 条件