Ruby 1.9.2 リファレンスマニュアル > ライブラリ一覧 > library optparse > class OptionParser > permute

instance method OptionParser#permute

permute(argv) -> [String]
permute(*args) -> [String]

与えられた argv をパースします。 オプションではないコマンドの引数(下の例で言うと somefile)があってもパースを中断しません。 argv からオプションを取り除いたものを返します。

下の例で言うと、order と違いコマンドの引数 somefile よりも後ろにオプションを置くことが できます。

[PARAM] argv:
パースしたい引数を文字列の配列で指定します。
[PARAM] args:
パースしたい引数を順に文字列として与えます。
[EXCEPTION] OptionParser::ParseError:
パースに失敗した場合、例外 OptionParser::ParseError の サブクラスが投げられます。

例:

$ 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"]