5

是否可以让 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 的代码在 GitHub 上http://github.com/benjaminoakes/maid

4

1 回答 1

6

我收到了来自 Yehuda Katz的推文。(再次感谢!)这是解决方案:

class YourApp < Thor
  check_unknown_options!
  # ...
end

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

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

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

查看GitHub 上的完整代码

于 2011-05-25T21:43:56.000 回答