Ruby中的命令行单选按钮/选项

时间:2018-03-03 18:00:19

标签: ruby command-line command-line-interface

我们如何制作这样的命令行选项: enter image description here

我会想象代码看起来像这样

options = Hash.new()
options['Monolithic'] = 'Monolithic application'
options['Microservice'] = 'Microservice application'
options['Gateway'] = 'Microservice gateway'
puts 'Which *type* of application would you like to create?'
options.each do |key, option|
  puts option
end
# interface here

2 个答案:

答案 0 :(得分:0)

控制台窗口中的菜单可以使用多个宝石完成,最着名的是cursestty-prompt和衍生物以及Highlight

如果您想要一个简单的图形菜单,请参阅我的回答here

有关curses可以执行的操作的示例,请参阅hereHere是更多的例子。

结果取决于所使用的操作系统和控制台。

答案 1 :(得分:0)

我写了tty-prompt gem来帮助建立交互式菜单。该示例的实现如下所示:

require "tty-prompt"

prompt = TTY::Prompt.new
type = prompt.decorate("*type*", :yellow)
prompt.select("Which #{type} of application would you like to create?") do |menu|
  menu.choice "Monolithic application", "Monolithic"
  menu.choice "Microservice application", "Microservice"
  menu.choice "Microservice gateway", "Gateway"
end

以上内容将在控制台中呈现以下选择菜单:

enter image description here

此gem经过了测试,可以在多种操作系统上运行,并且有很多类型的提示可用。