123456789_123456789_123456789_123456789_123456789_

Class: Gem::StreamUI::VerboseProgressReporter

Relationships & Source Files
Super Chains via Extension / Inclusion / Inheritance
Instance Chain:
Inherits: Object
Defined in: lib/rubygems/user_interaction.rb

Overview

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

Class Method Summary

Instance Attribute Summary

  • #count readonly

    The number of progress items counted so far.

::Gem::DefaultUserInteraction - Included

Instance Method Summary

  • #done

    Prints out the terminal message.

  • #updated(message)

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

::Gem::DefaultUserInteraction - Included

::Gem::Text - Included

#clean_text

Remove any non-printable characters and make the text suitable for printing.

#format_text

Wraps text to wrap characters and optionally indents by indent characters.

#levenshtein_distance

Returns a value representing the “cost” of transforming str1 into str2 Vendored version of DidYouMean::Levenshtein.distance from the ruby/did_you_mean gem @ 1.4.0 github.com/ruby/did_you_mean/blob/2ddf39b874808685965dbc47d344cf6c7651807c/lib/did_you_mean/levenshtein.rb#L7-L37.

#truncate_text, #min3

Constructor Details

.new(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.

[ GitHub ]

  
# File 'lib/rubygems/user_interaction.rb', line 471

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

#count (readonly)

The number of progress items counted so far.

[ GitHub ]

  
# File 'lib/rubygems/user_interaction.rb', line 464

attr_reader :count

Instance Method Details

#done

Prints out the terminal message.

[ GitHub ]

  
# File 'lib/rubygems/user_interaction.rb', line 491

def done
  @out.puts @terminal_message
end

#updated(message)

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

[ GitHub ]

  
# File 'lib/rubygems/user_interaction.rb', line 483

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