7

私は自分のrubyアプリで簡単なオプション処理を取得しようとしています。OptionParser予期しない引数を適切に処理する方法を理解することはできませんが、私が望むことのほとんどを実行しているように見えます。

予期しない引数が提供された場合は、-h引数が渡されたかのように扱います(使用法を表示して終了します)。しかし、私はそれを処理する方法を見ていません。

OptionParserそれができない場合、コマンドライン引数を簡単に解析するために使用できる別のライブラリはありますか?

4

2 に答える 2

10

おそらくそれを行うための巧妙な方法がありますが、私はそれを知りません。私はこれをしました:

  opts = OptionParser.new
  ...
  opts.on_tail("-h", "--help",
               "Show this message") do
    puts opts
    exit
  end
  begin      
    opts.parse!(argv)
  rescue OptionParser::InvalidOption => e
    puts e
    puts opts
    exit(1)
  end
于 2010-01-30T04:26:34.293 に答える
0

以下をtest.rbとして保存した場合

#/usr/bin/env ruby
require 'optparse'

test = nil
help = nil
ARGV.options {|opt|
  opt.on("--test=test") {|val| test=val}
  help = opt.help
  begin
    opt.parse!
  rescue OptionParser::InvalidOption => e
    puts help
  end
}

ターミナルで以下を実行し、

$./test.rb --foo

あなたは下に行きます。

Usage: test [options]
    --test=test
于 2013-07-24T09:50:41.187 に答える