Class Gem::StreamUI::VerboseDownloadReporter
In: lib/rubygems/user_interaction.rb
Parent: Object

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

Methods

done   fetch   new   update  

Attributes

file_name  [R] 
progress  [R] 
total_bytes  [R] 

Public Class methods

[Source]

     # File lib/rubygems/user_interaction.rb, line 480
480:     def initialize(out_stream, *args)
481:       @out = out_stream
482:       @progress = 0
483:     end

Public Instance methods

[Source]

     # File lib/rubygems/user_interaction.rb, line 506
506:     def done
507:       @progress = 100 if @units == '%'
508:       update_display(true, true)
509:     end

[Source]

     # File lib/rubygems/user_interaction.rb, line 485
485:     def fetch(file_name, total_bytes)
486:       @file_name = file_name
487:       @total_bytes = total_bytes.to_i
488:       @units = @total_bytes.zero? ? 'B' : '%'
489: 
490:       update_display(false)
491:     end

[Source]

     # File lib/rubygems/user_interaction.rb, line 493
493:     def update(bytes)
494:       new_progress = if @units == 'B' then
495:                        bytes
496:                      else
497:                        ((bytes.to_f * 100) / total_bytes.to_f).ceil
498:                      end
499: 
500:       return if new_progress == @progress
501: 
502:       @progress = new_progress
503:       update_display
504:     end

[Validate]