我想在Thor中请求用户输入,但有别名:
$ Is this correct?: [yes, no, maybe] (yes)
字符串
目前我有这个:
class CLI < Thor
desc 'do_thing', 'does a thing'
def do_thing
answer = ask("Is this correct?", limited_to: %w{yes no maybe}, default: 'yes')
# do stuff
end
end
型
我想让用户只输入每个选项的第一个字母。
但我得到的回应是:
$ Your response must be one of: [yes, no, maybe]. Please try again.
型
1条答案
按热度按时间rsl1atfo1#
您不能为
ask
添加别名,因为答案将直接与limited_to
中提供的选项列表匹配。Source如果你真的想要这个功能,你最好的选择是跳过
limited_options
,而是在事实发生后检查答案并相应地做出回应,例如。字符串
示例如下:
型
如果你想使用内置的有限的选项,那么你可以使用这样的东西,但在我看来,这是没有吸引力时,在CLI中表示:
型
它将输出为:
型