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

问题描述

| 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 --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     

解决方法

我从Yehuda Katz发了一条推文。 (再次感谢!)以下是解决方法:
class YourApp < Thor
  check_unknown_options!
  # ...
end
我测试并将其添加到我的项目中。这是新行为:
$ maid --slient
Unknown switches \'--slient\'

$ maid rules.rb
Could not find task \"rules.rb\".
在GitHub上查看完整代码。