2

可能なオプションは 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)

何か案は?ドキュメントと複数の例を読みましたが、理解できません。

4

1 に答える 1

4

そのような 2 文字のスイッチは使用できません。と

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

それは正常に動作します。OptionParser ドキュメントのショート スタイル スイッチを参照してください。

于 2013-04-16T19:37:30.527 に答える