Class: Gem::StreamUI::ThreadedDownloadReporter

Inherits:
Object
  • Object
show all
Defined in:
lib/rubygems/user_interaction.rb

Overview

A progress reporter that behaves nicely with threaded downloading.

Constant Summary collapse

MUTEX =
Thread::Mutex.new

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(out_stream, *args) ⇒ ThreadedDownloadReporter

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



553
554
555
556
# File 'lib/rubygems/user_interaction.rb', line 553

def initialize(out_stream, *args)
  @file_name = nil
  @out = out_stream
end

Instance Attribute Details

#file_nameObject (readonly)

The current file name being displayed



547
548
549
# File 'lib/rubygems/user_interaction.rb', line 547

def file_name
  @file_name
end

Instance Method Details

#doneObject

Indicates the download is complete.



579
580
581
# File 'lib/rubygems/user_interaction.rb', line 579

def done
  # Do nothing.
end

#fetch(file_name, *args) ⇒ Object

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



562
563
564
565
566
567
# File 'lib/rubygems/user_interaction.rb', line 562

def fetch(file_name, *args)
  if @file_name.nil?
    @file_name = file_name
    locked_puts "Fetching #{@file_name}"
  end
end

#update(bytes) ⇒ Object

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



572
573
574
# File 'lib/rubygems/user_interaction.rb', line 572

def update(bytes)
  # Do nothing.
end