diff options
author | aycabta <aycabta@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-12-08 17:39:52 +0000 |
---|---|---|
committer | aycabta <aycabta@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-12-08 17:39:52 +0000 |
commit | 18911e99d2960433f4e77e5f6ce28bf187dad5a9 (patch) | |
tree | 53e7e346b56da5d75973fa2447b2175ee08b62c8 /lib/rdoc/stats | |
parent | f6a38e180e5abc4db445b8e50d698ced71dbea87 (diff) |
Merge RDoc 6.1.0.beta3 from upstream
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66286 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/rdoc/stats')
-rw-r--r-- | lib/rdoc/stats/normal.rb | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/lib/rdoc/stats/normal.rb b/lib/rdoc/stats/normal.rb index a3a6ff377e..0a22f0582b 100644 --- a/lib/rdoc/stats/normal.rb +++ b/lib/rdoc/stats/normal.rb @@ -26,28 +26,28 @@ class RDoc::Stats::Normal < RDoc::Stats::Quiet files_so_far, @num_files) - # Print a progress bar, but make sure it fits on a single line. Filename - # will be truncated if necessary. - size = IO.respond_to?(:console_size) ? IO.console_size : IO.console.winsize - terminal_width = size[1].to_i.nonzero? || 80 - max_filename_size = terminal_width - progress_bar.size - - if filename.size > max_filename_size then - # Turn "some_long_filename.rb" to "...ong_filename.rb" - filename = filename[(filename.size - max_filename_size) .. -1] - filename[0..2] = "..." - end - - line = "#{progress_bar}#{filename}" if $stdout.tty? + # Print a progress bar, but make sure it fits on a single line. Filename + # will be truncated if necessary. + size = IO.respond_to?(:console_size) ? IO.console_size : IO.console.winsize + terminal_width = size[1].to_i.nonzero? || 80 + max_filename_size = (terminal_width - progress_bar.size) - 1 + + if filename.size > max_filename_size then + # Turn "some_long_filename.rb" to "...ong_filename.rb" + filename = filename[(filename.size - max_filename_size) .. -1] + filename[0..2] = "..." + end + # Clean the line with whitespaces so that leftover output from the # previous line doesn't show up. - $stdout.print("\r" + (" " * @last_width) + ("\b" * @last_width) + "\r") if @last_width && @last_width > 0 - @last_width = line.size - $stdout.print("#{line}\r") + $stdout.print("\r\e[K") if @last_width && @last_width > 0 + @last_width = progress_bar.size + filename.size + term = "\r" else - $stdout.puts(line) + term = "\n" end + $stdout.print(progress_bar, filename, term) $stdout.flush end |