我只有一个可能的选项,它被解析如下:
def parse_options
options = {}
options[:markdown] = false
OptionParser.new do |opts|
opts.on('-md', '--markdown', 'Use Markdown Syntax') do
options[:markdown] = true
end
end.parse!
end
如您所见,该选项不需要任何参数。我发现甚至更奇怪的是这是有效的:
command -md
但这引发了异常:
command --markdown
in `parse_options': missing argument: --markdown (OptionParser::MissingArgument)
有什么想法吗?我阅读了doc和多个例子,但无法弄清楚。
答案 0 :(得分:4)
您不能使用这样的双字母开关。与
opts.on('-m', '--markdown', 'Use Markdown Syntax') do
它工作正常。请参阅OptionParser documentation
下的简短样式切换