【问题标题】:OptionParser throwing 'Missing Argument' for no reasonsOptionParser 无缘无故地抛出“缺少参数”
【发布时间】:2013-04-16 19:10:40
【问题描述】:

我只有 1 个可能的选项,它被解析如下:

  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)

有什么想法吗?我阅读了文档和多个示例,但无法弄清楚。

【问题讨论】:

  • 能否粘贴整个课程的代码,以便我们进行测试?

标签: ruby exception optparse


【解决方案1】:

您不能使用这样的两个字母开关。与

opts.on('-m', '--markdown', 'Use Markdown Syntax') do

它工作正常。参见OptionParser documentation下的短样式开关

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-01
    • 2019-02-19
    • 2015-08-07
    • 2022-08-16
    相关资源
    最近更新 更多