Class: Gem::StreamUI::VerboseProgressReporter

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

Overview

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from DefaultUserInteraction

ui, #ui, ui=, #ui=, use_ui, #use_ui

Methods included from Text

#clean_text, #format_text, #levenshtein_distance, #min3, #truncate_text

Constructor Details

#initialize(out_stream, size, initial_message, terminal_message = 'complete') ⇒ VerboseProgressReporter

Creates a new progress reporter that will write to out_stream for size items. Shows the given initial_message when progress starts and the terminal_message when it is complete.



474
475
476
477
478
479
480
481
482
# File 'lib/rubygems/user_interaction.rb', line 474

def initialize(out_stream, size, initial_message,
               terminal_message = 'complete')
  @out = out_stream
  @total = size
  @count = 0
  @terminal_message = terminal_message

  @out.puts initial_message
end

Instance Attribute Details

#countObject (readonly)

The number of progress items counted so far.



467
468
469
# File 'lib/rubygems/user_interaction.rb', line 467

def count
  @count
end

Instance Method Details

#doneObject

Prints out the terminal message.



495
496
497
# File 'lib/rubygems/user_interaction.rb', line 495

def done
  @out.puts @terminal_message
end

#updated(message) ⇒ Object

Prints out the position relative to the total and the message.



487
488
489
490
# File 'lib/rubygems/user_interaction.rb', line 487

def updated(message)
  @count += 1
  @out.puts "#{@count}/#{@total}: #{message}"
end