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
Displays an alert statement.  Asks a question if given.
 
               # File rubygems/user_interaction.rb, line 101
def alert(statement, question = nil)
  ui.alert statement, question
end
             
            Displays an error statement to the error output location.  Asks a question if given.
 
               # File rubygems/user_interaction.rb, line 109
def alert_error(statement, question = nil)
  ui.alert_error statement, question
end
             
            Displays a warning statement to the warning output location.  Asks a question if given.
 
               # File rubygems/user_interaction.rb, line 117
def alert_warning(statement, question = nil)
  ui.alert_warning statement, question
end
             
            Asks a question and returns the answer.
 
               # File rubygems/user_interaction.rb, line 124
def ask(question)
  ui.ask question
end
             
            Asks for a password with a prompt
 
               # File rubygems/user_interaction.rb, line 131
def ask_for_password(prompt)
  ui.ask_for_password prompt
end
             
            Asks a yes or no question.  Returns true for yes, false for no.
 
               # File rubygems/user_interaction.rb, line 138
def ask_yes_no(question, default = nil)
  ui.ask_yes_no question, default
end
             
            Asks the user to answer question with an answer from the given list.
 
               # File rubygems/user_interaction.rb, line 145
def choose_from_list(question, list)
  ui.choose_from_list question, list
end
             
            Displays the given statement on the standard output (or equivalent).
 
               # File rubygems/user_interaction.rb, line 152
def say(statement = '')
  ui.say statement
end