class Gem::StreamUI::ThreadedDownloadReporter

A progress reporter that behaves nicely with threaded downloading.

Constants

MUTEX

Attributes

file_name[R]

The current file name being displayed

Public Class Methods

new(out_stream, *args) click to toggle source

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

# File lib/rubygems/user_interaction.rb, line 573
def initialize(out_stream, *args)
  @file_name = nil
  @out = out_stream
end

Public Instance Methods

done() click to toggle source

Indicates the download is complete.

# File lib/rubygems/user_interaction.rb, line 599
def done
  # Do nothing.
end
fetch(file_name, *args) click to toggle source

Tells the download reporter that the file_name is being fetched. The other arguments are ignored.

# File lib/rubygems/user_interaction.rb, line 582
def fetch(file_name, *args)
  if @file_name.nil?
    @file_name = file_name
    locked_puts "Fetching #{@file_name}"
  end
end
update(bytes) click to toggle source

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

# File lib/rubygems/user_interaction.rb, line 592
def update(bytes)
  # Do nothing.
end

Private Instance Methods

locked_puts(message) click to toggle source
# File lib/rubygems/user_interaction.rb, line 604
def locked_puts(message)
  MUTEX.synchronize do
    @out.puts message
  end
end