A progress reporter that prints out messages about the current progress.

Methods
D
F
N
U
Attributes
[R] file_name
[R] progress
[R] total_bytes
Class Public methods
new(out_stream, *args)
# File ../ruby/lib/rubygems/user_interaction.rb, line 480
def initialize(out_stream, *args)
  @out = out_stream
  @progress = 0
end
Instance Public methods
done()
# File ../ruby/lib/rubygems/user_interaction.rb, line 506
def done
  @progress = 100 if @units == '%'
  update_display(true, true)
end
fetch(file_name, total_bytes)
# File ../ruby/lib/rubygems/user_interaction.rb, line 485
def fetch(file_name, total_bytes)
  @file_name = file_name
  @total_bytes = total_bytes.to_i
  @units = @total_bytes.zero? ? 'B' : '%'

  update_display(false)
end
update(bytes)
# File ../ruby/lib/rubygems/user_interaction.rb, line 493
def update(bytes)
  new_progress = if @units == 'B' then
                   bytes
                 else
                   ((bytes.to_f * 100) / total_bytes.to_f).ceil
                 end

  return if new_progress == @progress

  @progress = new_progress
  update_display
end
Instance Private methods
update_display(show_progress = true, new_line = false)
# File ../ruby/lib/rubygems/user_interaction.rb, line 513
def update_display(show_progress = true, new_line = false)
  return unless @out.tty?

  if show_progress then
    @out.print "\rFetching: %s (%3d%s)" % [@file_name, @progress, @units]
  else
    @out.print "Fetching: %s" % @file_name
  end
  @out.puts if new_line
end