kind=defined
names=order!
visibility=public

--- order!(argv = self.default_argv)             -> [String]
--- order!(argv = self.default_argv) {|s| ...}   -> [String]

与えられた argv を順番に破壊的にパースします。
argv からオプションがすべて取り除かれます。
argv を返します。

オプションではないコマンドの引数(下の例で言うと somefile)に出会うと、パースを中断します。
ブロックが与えられている場合は、パースを中断せずに
引数をブロックに渡してブロックを評価し、パースを継続します。argv を返します。

下の例で言うと、コマンドの引数 somefile よりも後ろにオプションを置くことができません。
-b もコマンドのオプションではない引数として扱われてしまいます。

@param argv パースしたい引数を文字列の配列で指定します。

@raise 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.order!(ARGV)
  p ARGV

  $ ruby opt2.rb -a foo somefile -b
  :a
  ["somefile", "-b"]

