Class: Gem::StreamUI::VerboseDownloadReporter (Ruby 2.3.4)

In Files

  • rubygems/user_interaction.rb

Parent

Class/Module Index [+]

Quicksearch

Gem::StreamUI::VerboseDownloadReporter

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

Attributes

file_name[R]

The current file name being displayed

progress[R]

The current progress (0 to 100)

total_bytes[R]

The total bytes in the file

Public Class Methods

new(out_stream, *args)

Creates a new verbose download reporter that will display on out_stream. The other arguments are ignored.

 
               # File rubygems/user_interaction.rb, line 597
def initialize(out_stream, *args)
  @out = out_stream
  @progress = 0
end
            

Public Instance Methods

done()

Indicates the download is complete.

 
               # File rubygems/user_interaction.rb, line 633
def done
  @progress = 100 if @units == '%'
  update_display(true, true)
end
            
fetch(file_name, total_bytes)

Tells the download reporter that the file_name is being fetched and contains total_bytes.

 
               # File rubygems/user_interaction.rb, line 606
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)

Updates the verbose download reporter for the given number of bytes.

 
               # File rubygems/user_interaction.rb, line 617
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