0

我有使用 highline 的 gem/cli,我想知道您是否可以设置自己的命令以便它始终可用(类似于“帮助”)。

require 'rubygems'
require 'highline/import'

say("\nThis is the new mode (default)...")
choose do |menu|
  menu.prompt = "Please choose your favorite programming language?  "

  menu.choice :ruby do say("Good choice!") end
  menu.choices(:python, :perl) do say("Not from around here, are you?") end
end

say("\nThis is letter indexing...")
choose do |menu|
  menu.index        = :letter
  menu.index_suffix = ") "

  menu.prompt = "Please choose your favorite programming language?  "

  menu.choice :ruby do say("Good choice!") end
  menu.choices(:python, :perl) do say("Not from around here, are you?") end
end

say("\nThis is with a different layout...")
choose do |menu|
  menu.layout = :one_line

  menu.header = "Languages"
  menu.prompt = "Favorite?  "

  menu.choice :ruby do say("Good choice!") end
  menu.choices(:python, :perl) do say("Not from around here, are you?") end
end

谢谢!

4

1 回答 1

2

我认为这只有通过对 highline gem 进行相当怪异的猴子修补才有可能,除非您想将命令添加到每个选择中(您最喜欢的编程语言是什么?1. ruby​​ 2. perl 3. help 4. menu 5. quit ...),您可以通过以下方法提取它:

def add_custom_choices(menu)
  menu.choice(:quit) do
    say "Ok, see you."
    exit 0
  end
  menu.choice(:dostuff) do call_do_stuff_method end
end


# and later ...
choose do |menu|
  # ...
  menu.choice :ruby do say("Good choice!") end
  add_custom_choices menu
  # ....
end
于 2013-11-04T12:19:14.073 回答