Thor会在Ruby命令行应用程序中抱怨拼写错误的选项吗?

时间:2011-05-25 12:58:28

标签: ruby command-line-arguments thor

是否有可能让Thor抱怨拼写错误/无法识别的命令行选项?

示例:

maid --slient  # Oops!  Misspelled.  It should give a warning or usage info.
maid --silent  # Do the behavior I programmed for the "silent" option.

Thor非常好,但是如果它只是忽略输入它不知道如何处理它对我没有太大帮助。 Maid还可以选择指定Maid规则的文件,如下所示:

maid --rules=rules.rb  # Good
maid -r rules.rb       # Short version
maid rules.rb          # Oops!  That's not valid.  It should give a warning or usage info.

在上述两种情况下,我能做些什么来让Thor抱怨?

Maid gem的代码位于http://github.com/benjaminoakes/maid

的GitHub上

1 个答案:

答案 0 :(得分:6)

我从耶胡达卡茨那里得到了a tweet。 (再次感谢!)这是解决方案:

class YourApp < Thor
  check_unknown_options!
  # ...
end

我测试并将其添加到我的项目中。这是新行为:

$ maid --slient
Unknown switches '--slient'

$ maid rules.rb
Could not find task "rules.rb".

请参阅the full code on GitHub