Ruby 1.9.2 リファレンスマニュアル > ライブラリ一覧 > optparseライブラリ > OptionParserクラス > permute!
permute!(argv = self.default_argv) -> [String]与えられた argv を破壊的にパースします。argv からオプションがすべて取り除かれます オプションではないコマンドの引数(下の例で言うと somefile)があってもパースを中断しません。 argv を返します。
下の例で言うと、order と違いコマンドの引数 somefile よりも後ろにオプションを置くことが できます。
例:
$ cat opt.rb
require 'optparse'
opt = OptionParser.new
opt.on('-a [VAL]') {|v| p :a }
opt.on('-b ') {|v| p :b }
opt.permute!(ARGV)
p ARGV
$ ruby opt2.rb -a foo somefile -b
:a
:b
["somefile"]