Você precisa usar print em vez de put. Além disso, se você deseja que os pontos apareçam sem problemas, é necessário liberar o buffer stdout após cada impressão ...
def print_and_flush(str)
print str
$stdout.flush
end
100.times do
print_and_flush "."
sleep 1
end
Edit: Eu estava apenas olhando para o raciocínio por trás do flush para responder ao comentário de @ rubyprince, e percebi que isso poderia ser limpo um pouco simplesmente usando $stdout.sync = true
...
$stdout.sync = true
100.times do
print "."
sleep 1
end
$stdout.flush
realmente necessário? .. Estou usando o Ruby 1.8.7 e já fiz as coisas apenasprint
e não tive problemas .. #