模块 Gem::UserInteraction

UserInteraction 允许 RubyGems 通过标准方法与用户交互,这些方法可以被更具体的 UI 方法替换,以用于不同的显示。

由于 UserInteraction 会调度到一个具体的 UI 类,你可能需要参考其他类以获得特定的行为,例如 Gem::ConsoleUIGem::SilentUI

示例

class X
  include Gem::UserInteraction

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

公共实例方法

alert(statement, question = nil) 点击以切换源代码

显示一个警告 statement。如果给定,则询问一个 question

# File rubygems/user_interaction.rb, line 98
def alert(statement, question = nil)
  ui.alert statement, question
end
alert_error(statement, question = nil) 点击以切换源代码

将错误 statement 显示到错误输出位置。如果给定,则询问一个 question

# File rubygems/user_interaction.rb, line 106
def alert_error(statement, question = nil)
  ui.alert_error statement, question
end
alert_warning(statement, question = nil) 点击以切换源代码

将警告 statement 显示到警告输出位置。如果给定,则询问一个 question

# File rubygems/user_interaction.rb, line 114
def alert_warning(statement, question = nil)
  ui.alert_warning statement, question
end
ask(question) 点击以切换源代码

提出一个 question 并返回答案。

# File rubygems/user_interaction.rb, line 121
def ask(question)
  ui.ask question
end
ask_for_password(prompt) 点击以切换源代码

使用 prompt 提示输入密码

# File rubygems/user_interaction.rb, line 128
def ask_for_password(prompt)
  ui.ask_for_password prompt
end
ask_yes_no(question, default = nil) 点击以切换源代码

提出一个 “是” 或 “否” 的 question。是则返回 true,否则返回 false。

# File rubygems/user_interaction.rb, line 135
def ask_yes_no(question, default = nil)
  ui.ask_yes_no question, default
end
choose_from_list(question, list) 点击以切换源代码

要求用户从给定的 list 中回答 question

# File rubygems/user_interaction.rb, line 142
def choose_from_list(question, list)
  ui.choose_from_list question, list
end
say(statement = "") 点击以切换源代码

在标准输出(或等效输出)上显示给定的 statement

# File rubygems/user_interaction.rb, line 149
def say(statement = "")
  ui.say statement
end
terminate_interaction(exit_code = 0) 点击以切换源代码

使用给定的 exit_code 终止 RubyGems 进程

# File rubygems/user_interaction.rb, line 156
def terminate_interaction(exit_code = 0)
  ui.terminate_interaction exit_code
end
verbose(msg = nil) { || ... } 点击以切换源代码

如果 really_verbose 为 true,则调用带有 msg 或代码块结果的 say

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