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
# File tmp/rubies/ruby-3.2.0/lib/rubygems/user_interaction.rb, line 100
def alert(statement, question = nil)
ui.alert statement, question
end
Displays an alert statement
. Asks a question
if given.
# File tmp/rubies/ruby-3.2.0/lib/rubygems/user_interaction.rb, line 108
def alert_error(statement, question = nil)
ui.alert_error statement, question
end
Displays an error statement
to the error output location. Asks a question
if given.
# File tmp/rubies/ruby-3.2.0/lib/rubygems/user_interaction.rb, line 116
def alert_warning(statement, question = nil)
ui.alert_warning statement, question
end
Displays a warning statement
to the warning output location. Asks a question
if given.
# File tmp/rubies/ruby-3.2.0/lib/rubygems/user_interaction.rb, line 123
def ask(question)
ui.ask question
end
Asks a question
and returns the answer.
# File tmp/rubies/ruby-3.2.0/lib/rubygems/user_interaction.rb, line 130
def ask_for_password(prompt)
ui.ask_for_password prompt
end
Asks for a password with a prompt
# File tmp/rubies/ruby-3.2.0/lib/rubygems/user_interaction.rb, line 137
def ask_yes_no(question, default = nil)
ui.ask_yes_no question, default
end
Asks a yes or no question
. Returns true for yes, false for no.
# File tmp/rubies/ruby-3.2.0/lib/rubygems/user_interaction.rb, line 144
def choose_from_list(question, list)
ui.choose_from_list question, list
end
Asks the user to answer question
with an answer from the given list
.
# File tmp/rubies/ruby-3.2.0/lib/rubygems/user_interaction.rb, line 151
def say(statement = "")
ui.say statement
end
Displays the given statement
on the standard output (or equivalent).
# File tmp/rubies/ruby-3.2.0/lib/rubygems/user_interaction.rb, line 158
def terminate_interaction(exit_code = 0)
ui.terminate_interaction exit_code
end
Terminates the RubyGems process with the given exit_code
# File tmp/rubies/ruby-3.2.0/lib/rubygems/user_interaction.rb, line 166
def verbose(msg = nil)
say(clean_text(msg || yield)) if Gem.configuration.really_verbose
end
Calls say
with msg
or the results of the block if really_verbose is true.