Class: GemInstaller::EnhancedStreamUI
- Inherits:
-
Gem::StreamUI
- Object
- Gem::StreamUI
- GemInstaller::EnhancedStreamUI
- Defined in:
- lib/geminstaller/enhanced_stream_ui.rb
Instance Attribute Summary collapse
-
#errs ⇒ Object
writeonly
Sets the attribute errs.
-
#gem_interaction_handler ⇒ Object
writeonly
Sets the attribute gem_interaction_handler.
-
#outs ⇒ Object
writeonly
Sets the attribute outs.
Instance Method Summary collapse
- #alert_error(statement, question = nil) ⇒ Object
- #ask(question) ⇒ Object
- #ask_yes_no(question, default = nil) ⇒ Object
- #choose_from_list(question, list) ⇒ Object
-
#initialize ⇒ EnhancedStreamUI
constructor
A new instance of EnhancedStreamUI.
- #terminate_interaction(status = 0) ⇒ Object
-
#terminate_interaction!(status = -1)) ⇒ Object
explicit exit in terminate_interation was removed after 1.0.1.
Constructor Details
#initialize ⇒ EnhancedStreamUI
Returns a new instance of EnhancedStreamUI.
6 7 8 |
# File 'lib/geminstaller/enhanced_stream_ui.rb', line 6 def initialize() # override default constructor to have no args end |
Instance Attribute Details
#errs=(value) ⇒ Object (writeonly)
Sets the attribute errs
3 4 5 |
# File 'lib/geminstaller/enhanced_stream_ui.rb', line 3 def errs=(value) @errs = value end |
#gem_interaction_handler=(value) ⇒ Object (writeonly)
Sets the attribute gem_interaction_handler
4 5 6 |
# File 'lib/geminstaller/enhanced_stream_ui.rb', line 4 def gem_interaction_handler=(value) @gem_interaction_handler = value end |
#outs=(value) ⇒ Object (writeonly)
Sets the attribute outs
3 4 5 |
# File 'lib/geminstaller/enhanced_stream_ui.rb', line 3 def outs=(value) @outs = value end |
Instance Method Details
#alert_error(statement, question = nil) ⇒ Object
51 52 53 54 55 56 57 58 59 |
# File 'lib/geminstaller/enhanced_stream_ui.rb', line 51 def alert_error(statement, question=nil) # if alert_error got called due to a GemInstaller::UnexpectedPromptError, re-throw it last_exception = $! if last_exception.class == GemInstaller:: || last_exception.class == GemInstaller::RubyGemsExit raise last_exception end # otherwise let alert_error continue normally... super(statement, question) end |
#ask(question) ⇒ Object
24 25 26 |
# File 'lib/geminstaller/enhanced_stream_ui.rb', line 24 def ask(question) raise_unexpected_prompt_error(question) end |
#ask_yes_no(question, default = nil) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/geminstaller/enhanced_stream_ui.rb', line 10 def ask_yes_no(question, default=nil) if GemInstaller::RubyGemsVersionChecker.matches?('<=0.9.4') # Using defaults, we expect no interactive prompts RubyGems >= 0.9.5 begin @gem_interaction_handler.handle_ask_yes_no(question) rescue Exception => e @outs.print(question) @outs.flush raise e end end raise_unexpected_prompt_error(question) end |
#choose_from_list(question, list) ⇒ Object
28 29 30 31 32 33 34 35 36 37 |
# File 'lib/geminstaller/enhanced_stream_ui.rb', line 28 def choose_from_list(question, list) if GemInstaller::RubyGemsVersionChecker.matches?('<=0.9.4') # Using defaults, we expect no interactive prompts RubyGems >= 0.9.5 @gem_interaction_handler.handle_choose_from_list(question, list) else list_string = list.join("\n") question_and_list = "#{question}\n#{list_string}" raise_unexpected_prompt_error(question_and_list) end end |
#terminate_interaction(status = 0) ⇒ Object
45 46 47 48 |
# File 'lib/geminstaller/enhanced_stream_ui.rb', line 45 def terminate_interaction(status=0) raise_error(status) unless status == 0 raise GemInstaller::RubyGemsExit.new(status) end |
#terminate_interaction!(status = -1)) ⇒ Object
explicit exit in terminate_interation was removed after 1.0.1
41 42 43 |
# File 'lib/geminstaller/enhanced_stream_ui.rb', line 41 def terminate_interaction!(status=-1) raise_error(status) end |