编辑:
我已经写了使用OptionParser优雅地处理命令行输入代码。 我现在面临两个主要命中。
- 传递空开关“ - ”不给错误。 当然,有些程序把它看作有效的,但我不应该。
- 该程序需要两个强制性交换机,但它接受一个开关没有抱怨! 例如
program.ruby -f foo -b bar
是有效的输入和两个开关都必需。 但只提供一个开关通过没有问题,这是不期望的行为。
对于第一种情况,我做到了这一点:
opts.on('-', /\A-\Z/) do
$stderr.print "Invalid empty switch"
exit 1
end
它工作正常。 但是,这是做的正确方法?
对于第二种情况,我看了看周围的OptionParser.new块内的解决方案,但我找不到一个。 例如
unless options.foo && options.bar
puts "Error."
exit 2
end
这样做的OptionParser.new块外面是正常的方式?