要約
主に Object::ARGV を拡張するために用意されたモジュールです。 optparse を require することにより、ARGV は OptionParser::Arguable を Object#extend します。
コマンドライン引数を表す文字列の配列を、拡張するためにも使うことができます。
目次
インスタンスメソッド
getopts(short_opt, *long_opt) -> Hash
[permalink][rdoc][edit]-
指定された 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 のサブクラスの例外になります。
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][edit]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][edit]-
自身をパースするための OptionParser オブジェクトをセットします。
- [PARAM] opt:
- 自身をパースする OptionParser 、あるいは nil か false を指定します。 nil か false である場合、自身の options= メソッドと options メソッドを undef します。
order! -> [String]
[permalink][rdoc][edit]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][edit]-
自身を破壊的にパースし、パースされずに残った引数を文字列の配列として返します。 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][edit]-
自身を破壊的にパースし、パースされずに残った引数を文字列の配列として返します。 OptionParser#permute! を参照して下さい。
- [EXCEPTION] OptionParser::ParseError:
- 自身のパースに失敗した場合、発生します。実際は OptionParser::ParseError のサブクラスの例外になります。
require 'optparse' o = nil ARGV.options.on('-a'){ o = true } ARGV.permute! p o #=> true