summaryrefslogtreecommitdiff
path: root/lib/rubygems/mock_gem_ui.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rubygems/mock_gem_ui.rb')
-rw-r--r--lib/rubygems/mock_gem_ui.rb17
1 files changed, 17 insertions, 0 deletions
diff --git a/lib/rubygems/mock_gem_ui.rb b/lib/rubygems/mock_gem_ui.rb
index 13f0bf564b..76a9389676 100644
--- a/lib/rubygems/mock_gem_ui.rb
+++ b/lib/rubygems/mock_gem_ui.rb
@@ -6,6 +6,17 @@ require 'rubygems/user_interaction'
# retrieval during tests.
class Gem::MockGemUi < Gem::StreamUI
+ ##
+ # Raised when you haven't provided enough input to your MockGemUi
+
+ class InputEOFError < RuntimeError
+
+ def initialize question
+ super "Out of input for MockGemUi on #{question.inspect}"
+ end
+
+ end
+
class TermError < RuntimeError
attr_reader :exit_code
@@ -44,6 +55,12 @@ class Gem::MockGemUi < Gem::StreamUI
@terminated = false
end
+ def ask question
+ raise InputEOFError, question if @ins.eof?
+
+ super
+ end
+
def input
@ins.string
end