# 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 101
    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 109
    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 117
    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 124
    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 131
    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 138
    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 145
    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 152
    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 159
    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 167
    def verbose(msg = nil)
      say(clean_text(msg || yield)) if Gem.configuration.really_verbose
    end