web-dev-qa-db-fra.com

Comment puis-je utiliser "mises" sur la console sans saut de ligne dans Ruby sur des rails?)

J'ai une méthode qui passe par une boucle - je veux qu'elle produise un "." chaque boucle afin que je puisse le voir dans la console. cependant, il met un saut de ligne à la fin de chaque lorsque j'utilise puts ".".

S'il y a un moyen pour qu'il ait juste une ligne continue?

152
Timothy T.

Vous devez utiliser print au lieu de put. De plus, si vous souhaitez que les points apparaissent correctement, vous devez vider le tampon stdout après chaque impression ...

def print_and_flush(str)
  print str
  $stdout.flush
end

100.times do
  print_and_flush "."
  sleep 1
end

Edit: Je cherchais juste le raisonnement derrière flush pour répondre au commentaire de @ rubyprince et réalisai que cela pourrait être nettoyé un peu en utilisant simplement $stdout.sync = true...

$stdout.sync = true

100.times do
  print "."
  sleep 1
end
194
idlefingers