0

ハイラインを使用する 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 に答える