web-dev-qa-db-ja.com

レール上のRubyで改行せずにコンソールに「put」を使用するにはどうすればよいですか?

ループを通過するメソッドがあります。「。」を出力するようにします。各ループは、コンソールで確認できます。ただし、puts "."を使用すると、各行の最後に改行が挿入されます。

連続した線だけになるような方法があれば?

152
Timothy T.

Putの代わりにprintを使用する必要があります。また、ドットをスムーズに表示するには、各印刷後にstdoutバッファーをフラッシュする必要があります...

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

100.times do
  print_and_flush "."
  sleep 1
end

編集: @rubyprinceのコメントに答えるためにフラッシュの背後にある理由を調べていたところ、$stdout.sync = true...

$stdout.sync = true

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