# module Gem::UserInteraction

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

### Public Instance Methods

alert(statement, question = nil) click to toggle source

Displays an alert `statement`. Asks a `question` if given.

    # File lib/rubygems/user_interaction.rb, line 99
    def alert statement, question = nil
      ui.alert statement, question
    end

alert_error(statement, question = nil) click to toggle source

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

    # File lib/rubygems/user_interaction.rb, line 107
    def alert_error statement, question = nil
      ui.alert_error statement, question
    end

alert_warning(statement, question = nil) click to toggle source

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

    # File lib/rubygems/user_interaction.rb, line 115
    def alert_warning statement, question = nil
      ui.alert_warning statement, question
    end

ask(question) click to toggle source

Asks a `question` and returns the answer.

    # File lib/rubygems/user_interaction.rb, line 122
    def ask question
      ui.ask question
    end

ask_for_password(prompt) click to toggle source

Asks for a password with a `prompt`

    # File lib/rubygems/user_interaction.rb, line 129
    def ask_for_password prompt
      ui.ask_for_password prompt
    end

ask_yes_no(question, default = nil) click to toggle source

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

    # File lib/rubygems/user_interaction.rb, line 136
    def ask_yes_no question, default = nil
      ui.ask_yes_no question, default
    end

choose_from_list(question, list) click to toggle source

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

    # File lib/rubygems/user_interaction.rb, line 143
    def choose_from_list question, list
      ui.choose_from_list question, list
    end

say(statement = '') click to toggle source

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

    # File lib/rubygems/user_interaction.rb, line 150
    def say statement = ''
      ui.say statement
    end

terminate_interaction(exit_code = 0) click to toggle source

Terminates the RubyGems process with the given `exit_code`

    # File lib/rubygems/user_interaction.rb, line 157
    def terminate_interaction exit_code = 0
      ui.terminate_interaction exit_code
    end

verbose(msg = nil) { || ... } click to toggle source

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

    # File lib/rubygems/user_interaction.rb, line 165
    def verbose(msg = nil)
      say(clean_text(msg || yield)) if Gem.configuration.really_verbose
    end