Ruby 1.9.2 リファレンスマニュアル > ライブラリ一覧 > getoptlongライブラリ > GetoptLongクラス

class GetoptLong

クラスの継承リスト: GetoptLong < Object < Kernel < BasicObject

Abstract

特異メソッド

new
new(option...)

GetoptLong のオブジェクトを生成します。option が与えられる たときは、それを set_options メソッドに渡します。

インスタンスメソッド

each {|optname, optarg|...}
each_option {|optname, optarg|...}

get メソッドのイテレータ版です。オプションとその引数の取得を 繰り返し行います。詳しくは get の説明を参照して下さい。

error
error?

現在のエラーの型を返します。エラーが発生していなければ、nil を返します。

error_message

現在のエラーのエラーメッセージを返します。エラーが発生していな ければ、nil を返します。

get
get_option

ARGV から、次のオプションの名前と、もしあればその引数の組を取 得します。メソッドは 2 つの値を返し、1 つ目の値がオプション名 (例: --max-size) で、2 つ目がオプションの引数 (例: 20K) で す。get の通常の呼び出し方は次の通りです。

optname, optarg = option_parser.get

get と get_option は常にオプション名を正式名 (canonical name) で返します。与えられたオプションが引数を取らないときは、 空の文字列 ('') が optarg にセットされます。オプションが ARGV に残っていないときは、optname, optarg ともに nil に セットされます。メソッドから戻る際に、取得したオプションと引数 は自動的に ARGV から取り除かれます。

与えられたコマンド行引数があなたのプログラムのオプションの設定 に合わない場合は、エラーとなって、以下のいずれかの例外が発生し ます。

GetoptLong::AmbigousOption

与えられたオプションは名前の後方が省略されていると思われる が、一意に決まらない。

GetoptLong::InvalidOption

知らないオプションが与えられた。

GetoptLong::MissingArgument

与えられたオプションには引数が欠けている。

GetoptLong::NeedlessArgument

与えられたオプションは引数を伴っているが、そのオプションは 引数をとらない。

加えて、静粛 (quiet) フラグが有効になっていない限り、エラーメッ セージを標準エラー出力に出力します。

ordering

現在の順序形式を返します。

ordering=(ordering)

順序形式 (ordering) を設定します。引数 ordering は、 PERMUTE, REQUIRE_ORDER, RETURN_IN_ORDER のいずれかでなく てはなりません。それ以外の値を代入しようとすると、例外 ArgumentError が発生します。

順序形式を設定できるのは、get, get_option, each, each_option メソッドを呼び出す前だけです。これらのメソッドを 呼び出した後で順序形式を設定しようとすると、RuntimeError 例 外が発生します。

環境変数 POSIXLY_CORRECT が定義されていると、引数に PERMUTE を与えてこのメソッドを呼び出しても、実際のところの順 序形式は REQUIRE_ORDER に設定されます。

環境変数 POSIXLY_CORRECT が定義されていない限り、PERMUTE が初期値です。定義されていれば、REQUIRE_ORDER が初期値になり ます。

ordering を返します。

quiet
quiet?

静粛モードが有効であれば、TRUE が返ります。そうでなければ、 FALSE が返ります。

quiet=(flag)

flag が TRUE なら、静粛 (quiet) モードが有効になります。 静粛モードが有効になっていると、レシーバのオブジェクトは、 get, get_option, each, each_option メソッドでエラーが 発生しても、エラーメッセージを出力しません。初期値は、FALSE になっています。

flag を返します。

set_options(option...)

あなたのプログラムで、認識させたいオプションをセットします。 個々の option は、オプション名と引数のフラグからなる配列でな ければいけません。

parser.set_options(['-d', '--debug', GetoptLong::NO_ARGUMENT],
                   ['--version',     GetoptLong::NO_ARGUMENT],
                   ['--help',        GetoptLong::NO_ARGUMENT])

配列中のオプション名は、一文字オプション (例: -d) か長いオプ ション (例: --debug) を表した文字列のいずれかでなければなり ません。配列の中の一番左端のオプション名が、オプションの正式名 になります。配列中の引数のフラグは、NO_ARGUMENT, REQUIRE_ARGUMENT, OPTIONAL_ARGUMENT のいずれかでなくてはなりません。

オプション名と引数のフラグの順番に決まりはないので、次のような 形式でも構いません。

parser.set_options([GetoptLong::NO_ARGUMENT, '-d', '--debug'],
                   [GetoptLong::NO_ARGUMENT, '--version'],
                   [GetoptLong::NO_ARGUMENT, '--help'])

不正な引数が set_options メソッドに与えられると、例外 ArgumentError が発生します。

オプションを設定できるのは、get, get_option, each, each_option メソッドを呼び出す前だけです。これらのメソッドを 呼び出した後でオプションを設定しようとすると、RuntimeError 例外が発生します。

メソッドのレシーバであるオブジェクトを返します。

terminate

オプションの処理を、強制的に終了させます。ただし、エラーが起き ている状態でこのメソッドを起動しても、終了させることはできませ ん。エラーが起きている状態でこのメソッドを起動すると、 RuntimeError 例外が発生します。すでにオプションの処理が終了 しているときは、このメソッドは何も行いません。

メソッドのレシーバであるオブジェクトを返します。

terminated?

エラーが起きずにオプションの処理が終了しているときは TRUE が 返ります。それ以外のときは、FALSE が返ります。

定数

NO_ARGUMENT
REQUIRED_ARGUMENT
OPTIONAL_ARGUMENT

オプションへの引数のフラグです。

PERMUTE
REQUIRE_ORDER
RETURN_IN_ORDER

順序形式を表しています。

Methods

Classes