命令行界面助手?

use*_*574 2 ruby

我正在使用命令行界面来使我的代码更加用户友好.它目前看起来像这样:

loop do
  print "> "
  cmd = gets.chomp
  break  if cmd == "quit"
  run_command(cmd)
  puts
end
Run Code Online (Sandbox Code Playgroud)

我想稍微扩展它以节省打字.例如,我想允许使用"向上箭头"键重复上一个命令,并使用"Tab"键自动匹配命令等.

有没有工具来缓解这份工作?

小智 5

你可能正在寻找readline,这是一个例子:

require "readline"

while cmd = Readline.readline("> ", true)
  break if cmd == "quit"
  run_command(cmd)
  puts
end
Run Code Online (Sandbox Code Playgroud)

Tab-completion有点棘手.请查看其文档页面上的示例.