Class: Gem::MockGemUi

Inherits:
StreamUI show all
Defined in:
lib/rubygems/mock_gem_ui.rb

Overview

This Gem::StreamUI subclass records input and output to StringIO for retrieval during tests.

Defined Under Namespace

Modules: TTY Classes: InputEOFError, SystemExitException, TermError

Instance Attribute Summary

Attributes inherited from StreamUI

#errs, #ins, #outs

Instance Method Summary collapse

Methods inherited from StreamUI

#_gets_noecho, #alert, #alert_error, #alert_warning, #ask_for_password, #ask_yes_no, #backtrace, #choose_from_list, #close, #debug, #download_reporter, #progress_reporter, #require_io_console, #say, #tty?

Methods included from Deprecate

deprecate, skip, skip=, skip_during

Constructor Details

#initialize(input = "") ⇒ MockGemUi

Returns a new instance of MockGemUi.


47
48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/rubygems/mock_gem_ui.rb', line 47

def initialize(input = "")
  require 'stringio'
  ins = StringIO.new input
  outs = StringIO.new
  errs = StringIO.new

  ins.extend TTY
  outs.extend TTY
  errs.extend TTY

  super ins, outs, errs, true

  @terminated = false
end

Instance Method Details

#ask(question) ⇒ Object

Raises:


62
63
64
65
66
# File 'lib/rubygems/mock_gem_ui.rb', line 62

def ask(question)
  raise InputEOFError, question if @ins.eof?

  super
end

#errorObject


76
77
78
# File 'lib/rubygems/mock_gem_ui.rb', line 76

def error
  @errs.string
end

#inputObject


68
69
70
# File 'lib/rubygems/mock_gem_ui.rb', line 68

def input
  @ins.string
end

#outputObject


72
73
74
# File 'lib/rubygems/mock_gem_ui.rb', line 72

def output
  @outs.string
end

#terminate_interaction(status = 0) ⇒ Object

Raises:


84
85
86
87
88
89
# File 'lib/rubygems/mock_gem_ui.rb', line 84

def terminate_interaction(status=0)
  @terminated = true

  raise TermError, status if status != 0
  raise SystemExitException
end

#terminated?Boolean

Returns:

  • (Boolean)

80
81
82
# File 'lib/rubygems/mock_gem_ui.rb', line 80

def terminated?
  @terminated
end