Вам нужно использовать печать вместо пут.Кроме того, если вы хотите, чтобы точки отображались плавно, вам необходимо очищать буфер stdout после каждого отпечатка ...
def print_and_flush(str)
print str
$stdout.flush
end
100.times do
print_and_flush "."
sleep 1
end
Редактировать: Я просто изучал причины, по которым был установлен flushчтобы ответить на комментарий @ rubyprince, и понял, что это можно немного исправить, просто набрав $stdout.sync = true
...
$stdout.sync = true
100.times do
print "."
sleep 1
end