Module: Gem::Resolver::Molinillo::UI

Included in:
Gem::Resolver
Defined in:
lib/rubygems/resolver/molinillo/lib/molinillo/modules/ui.rb

Overview

Conveys information about the resolution process to a user.

Instance Method Summary collapse

Instance Method Details

#after_resolutionvoid

This method returns an undefined value.

Called after resolution ends (either successfully or with an error). By default, prints a newline.



39
40
41
# File 'lib/rubygems/resolver/molinillo/lib/molinillo/modules/ui.rb', line 39

def after_resolution
  output.puts
end

#before_resolutionvoid

This method returns an undefined value.

Called before resolution begins.



31
32
33
# File 'lib/rubygems/resolver/molinillo/lib/molinillo/modules/ui.rb', line 31

def before_resolution
  output.print 'Resolving dependencies...'
end

#debug(depth = 0) ⇒ void

This method returns an undefined value.

Conveys debug information to the user.

Parameters:

  • depth (Integer) (defaults to: 0)

    the current depth of the resolution process.



47
48
49
50
51
52
53
# File 'lib/rubygems/resolver/molinillo/lib/molinillo/modules/ui.rb', line 47

def debug(depth = 0)
  if debug?
    debug_info = yield
    debug_info = debug_info.inspect unless debug_info.is_a?(String)
    output.puts debug_info.split("\n").map { |s| ' ' * depth + s }
  end
end

#debug?Boolean

Whether or not debug messages should be printed. By default, whether or not the ‘MOLINILLO_DEBUG` environment variable is set.

Returns:

  • (Boolean)


60
61
62
63
# File 'lib/rubygems/resolver/molinillo/lib/molinillo/modules/ui.rb', line 60

def debug?
  return @debug_mode if defined?(@debug_mode)
  @debug_mode = ENV['MOLINILLO_DEBUG']
end

#indicate_progressvoid

This method returns an undefined value.

Called roughly every #progress_rate, this method should convey progress to the user.



16
17
18
# File 'lib/rubygems/resolver/molinillo/lib/molinillo/modules/ui.rb', line 16

def indicate_progress
  output.print '.' unless debug?
end

#outputIO

The IO object that should be used to print output. ‘STDOUT`, by default.

Returns:

  • (IO)


8
9
10
# File 'lib/rubygems/resolver/molinillo/lib/molinillo/modules/ui.rb', line 8

def output
  STDOUT
end

#progress_rateFloat

How often progress should be conveyed to the user via #indicate_progress, in seconds. A third of a second, by default.

Returns:

  • (Float)


24
25
26
# File 'lib/rubygems/resolver/molinillo/lib/molinillo/modules/ui.rb', line 24

def progress_rate
  0.33
end