module OptionParser::Arguable

要約

主に Object::ARGV を拡張するために用意されたモジュールです。 optparse を require することにより、ARGV は OptionParser::Arguable を Object#extend します。

コマンドライン引数を表す文字列の配列を、拡張するためにも使うことができます。

目次

インスタンスメソッド

インスタンスメソッド

getopts(short_opt, *long_opt) -> Hash[permalink][rdoc]

指定された short_opt や long_opt に応じて自身をパースし、結果を Hash として返します。

コマンドラインに - もしくは -- を指定した場合、それ以降の解析を行ないません。

[PARAM] short_opt:
ショートネームのオプション(-f や -fx)を文字列で指定します。オプションが -f と -x の 2つの場合は "fx" の様に指定します。ここでオプションがないときは空文字列を指定します。オプションが引数をとる場合は直後に ":" を付けます。
[PARAM] long_opt:
ロングネームのオプション(--version や --bufsize=512)を文字列で指定をします。オプションが引数をとる場合は後ろに ":" を付けます。オプションの引数のデフォルト値を ":" の直後に指定することができます。例えば、"bufsize:1024" となります。
[EXCEPTION] OptionParser::ParseError:
自身のパースに失敗した場合、発生します。実際は OptionParser::ParseError のサブクラスの例外になります。

例:

# t.rb の内容
require 'optparse'
params = ARGV.getopts("ab:", "foo", "bar:", "bufsize:1024")
p params

# 実行結果
$ ruby t.rb -b 1 --foo  --bar xxx -- -a
{"bufsize"=>"1024", "a"=>false, "b"=>"1", "foo"=>true, "bar"=>"xxx"}  # "a"=>false であることに注意。
options -> OptionParser[permalink][rdoc]
options {|opt| ... } -> object | nil

自身をパースするための OptionParser オブジェクトを返します。初回呼び出し時に自動的に生成されます。この OptionParser#default_argv には self がセットされています。

ブロックを与えた場合は、OptionParser を引数としてブロックを実行します。ブロックの実行結果を返します。ブロックの実行途中で OptionParser::ParseError が発生した場合は、全て rescue し、エラーメッセージを出力し、 nil を返します。

例:

require 'optparse'

o = nil
ARGV.options{|opt|
  opt.on('-a'){ o = true }
  opt.parse!
}
p o                         #=> true
options=(opt)[permalink][rdoc]

自身をパースするための OptionParser オブジェクトをセットします。

[PARAM] opt:
自身をパースする OptionParser 、あるいは nil か false を指定します。 nil か false である場合、自身の options= メソッドと options メソッドを undef します。
order! -> [String][permalink][rdoc]
order! {|s| ... } -> [String]

自身を破壊的にパースし、パースされずに残った引数を文字列の配列として返します。 OptionParser#order! を参照して下さい。

[EXCEPTION] OptionParser::ParseError:
自身のパースに失敗した場合、発生します。実際は OptionParser::ParseError のサブクラスの例外になります。

例:

require 'optparse'

o = nil
ARGV.options.on('-a'){ o = true }
ARGV.order!
p o                                #=> true
parse! -> [String][permalink][rdoc]

自身を破壊的にパースし、パースされずに残った引数を文字列の配列として返します。 OptionParser#parse! を参照して下さい。

[EXCEPTION] OptionParser::ParseError:
自身のパースに失敗した場合、発生します。実際は OptionParser::ParseError のサブクラスの例外になります。

例:

require 'optparse'

o = nil
ARGV.options.on('-a'){ o = true }
ARGV.parse!
p o                                #=> true
permute! -> [String][permalink][rdoc]

自身を破壊的にパースし、パースされずに残った引数を文字列の配列として返します。 OptionParser#permute! を参照して下さい。

[EXCEPTION] OptionParser::ParseError:
自身のパースに失敗した場合、発生します。実際は OptionParser::ParseError のサブクラスの例外になります。

例:

require 'optparse'

o = nil
ARGV.options.on('-a'){ o = true }
ARGV.permute!
p o                                #=> true