Module: Gem::UserInteraction

Overview

UserInteraction allows RubyGems to interact with the user through standard methods that can be replaced with more-specific UI methods for different displays.

Since UserInteraction dispatches to a concrete UI class you may need to reference other classes for specific behavior such as Gem::ConsoleUI or Gem::SilentUI.

Example:

class X
  include Gem::UserInteraction

  def get_answer
    n = ask("What is the meaning of life?")
  end
end

Instance Method Summary collapse

Methods included from DefaultUserInteraction

ui, #ui, ui=, #ui=, use_ui, #use_ui

Methods included from Text

#clean_text, #format_text, #levenshtein_distance, #min3, #truncate_text

Instance Method Details

#alert(statement, question = nil) ⇒ Object

Displays an alert statement. Asks a question if given.



97
98
99
# File 'lib/rubygems/user_interaction.rb', line 97

def alert(statement, question = nil)
  ui.alert statement, question
end

#alert_error(statement, question = nil) ⇒ Object

Displays an error statement to the error output location. Asks a question if given.



105
106
107
# File 'lib/rubygems/user_interaction.rb', line 105

def alert_error(statement, question = nil)
  ui.alert_error statement, question
end

#alert_warning(statement, question = nil) ⇒ Object

Displays a warning statement to the warning output location. Asks a question if given.



113
114
115
# File 'lib/rubygems/user_interaction.rb', line 113

def alert_warning(statement, question = nil)
  ui.alert_warning statement, question
end

#ask(question) ⇒ Object

Asks a question and returns the answer.



120
121
122
# File 'lib/rubygems/user_interaction.rb', line 120

def ask(question)
  ui.ask question
end

#ask_for_password(prompt) ⇒ Object

Asks for a password with a prompt



127
128
129
# File 'lib/rubygems/user_interaction.rb', line 127

def ask_for_password(prompt)
  ui.ask_for_password prompt
end

#ask_yes_no(question, default = nil) ⇒ Object

Asks a yes or no question. Returns true for yes, false for no.



134
135
136
# File 'lib/rubygems/user_interaction.rb', line 134

def ask_yes_no(question, default = nil)
  ui.ask_yes_no question, default
end

#choose_from_list(question, list) ⇒ Object

Asks the user to answer question with an answer from the given list.



141
142
143
# File 'lib/rubygems/user_interaction.rb', line 141

def choose_from_list(question, list)
  ui.choose_from_list question, list
end

#say(statement = "") ⇒ Object

Displays the given statement on the standard output (or equivalent).



148
149
150
# File 'lib/rubygems/user_interaction.rb', line 148

def say(statement = "")
  ui.say statement
end

#terminate_interaction(exit_code = 0) ⇒ Object

Terminates the RubyGems process with the given exit_code



155
156
157
# File 'lib/rubygems/user_interaction.rb', line 155

def terminate_interaction(exit_code = 0)
  ui.terminate_interaction exit_code
end

#verbose(msg = nil) ⇒ Object

Calls say with msg or the results of the block if really_verbose is true.



163
164
165
# File 'lib/rubygems/user_interaction.rb', line 163

def verbose(msg = nil)
  say(clean_text(msg || yield)) if Gem.configuration.really_verbose
end