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

class OptionParser

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

要約

コマンドラインのオプションを取り扱うためのクラスです。

オプションが指定された時に呼ばれるブロックを OptionParser#on メソッドで登録していきます。 つまり、OptionParser を使う場合、基本的には

というような流れになります。

require "optparse"
ProgramConfig = Hash.new
opts = OptionParser.new
opts.on("-a"){|v| ProgramConfig[:a] = true } # オプション「-a」がコマンドラインで指定されていた場合の動作。
opts.parse!(ARGV)                            # 実際にコマンドラインの parse を行う。

デフォルトで利用可能なオプション

以下はデフォルトで利用可能なオプションです。オプションサマリには 出てきません。

--help

オプションサマリを表示してから exit します。

--version

OptionParser#ver を表示してから exit します。 OptionParser#ver が定義されていない場合は、そのようにエラーメッセージを出力して abort します。 オプション「--version」に「,」で区切られたクラス名かモジュール名を引数として与えた場合は、そのクラスおよびモジュールで定義されている定数「Version」および「Release」を表示して、終了します。

 $ ruby t.rb --version=OptionParser,URI,OpenSSL
 t: OptionParser version 12203 (2007-04-20)
 t: URI version 0.9.11
 t: OpenSSL version 1.0.0

特異メソッド

定義 説明
accept(klass, pat = /.*/) {|str| ...} -> ()

オプションの引数を文字列から Ruby のオブジェクトに変換するための ブロックを登録します。すべての OptionParser インスタンスに共通です。

getopts(argv, *opts) -> Hash
getopts(*opts) -> Hash

引数をパースした結果を、Hash として返します。(self.new.getopts と同じです)

new(banner = nil, width = 32, indent = ' ' * 4) -> OptionParser
new(banner = nil, width = 32, indent = ' ' * 4) {|opt| ...} -> OptionParser

OptionParser オブジェクトを生成して返します。

reject(klass) -> ()

OptionParser.accept メソッドで登録したブロックを削除します。

インスタンスメソッド

定義 説明
accept(klass, pat = /.*/) {|str| ...} -> ()

OptionParser.accept と同様ですが、 登録したブロックはレシーバーに限定されます。

banner -> String

サマリの最初に表示される文字列を返します。

banner=(heading)

サマリの最初に表示される文字列を指定します。

default_argv -> [String]

自身がデフォルトでパースする引数を文字列の配列で返します。

default_argv=(argv)

自身がデフォルトでパースする引数を文字列の配列で指定します。

environment(env) -> [String]

環境変数 env に対して Shellwords.#shellwords を呼 んで配列にしてから parse を行ないます。

getopts(argv, *opts) -> Hash
getopts(*opts) -> Hash

引数をパースした結果を、Hash として返します。

help -> String
to_s -> String

サマリの文字列を返します。

load(filename = nil) -> bool

指定された filename を読み込んで各行をまとめたものに対して OptionParser#parse を行ないます。

on(short, desc = "") {|v| ... } -> self
on(long, desc = "") {|v| ... } -> self
on(short, long, desc = "") {|v| ... } -> self

オプションを取り扱うためのブロックを自身に登録します。 ブロックはコマンドラインのパース時に、オプションが指定されていれば呼ばれます。

on(short, pat = /.*/, desc = "") {|v| ...} -> self
on(long, pat = /.*/, desc = "") {|v| ...} -> self
on(short, long, pat = /.*/, desc = "") {|v| ...} -> self

オプションを取り扱うためのブロックを自身に登録します。 ブロックはコマンドラインのパース時に、オプションが指定されていれば呼ばれます。

on(short, klass = String, desc = "") {|v| ...} -> self
on(long, klass = String, desc = "") {|v| ...} -> self
on(short, long, klass = String, desc = "") {|v| ...} -> self

オプションを取り扱うためのブロックを自身に登録します。 ブロックはコマンドラインのパース時に、オプションが指定されていれば呼ばれます。

on(short, *rest) {|v| ...} -> self
on(long, *rest) {|v| ...} -> self
on(short, long, *rest) {|v| ...} -> self

オプションを取り扱うためのブロックを自身に登録します。 ブロックはコマンドラインのパース時に、オプションが指定されていれば呼ばれます。

on_head(*arg, &block)
on_tail(*arg, &block)

OptionParser#onと同様、オプションを取り扱うためのブロックを自身に登録します。 on メソッドと違う点は、OptionParser オブジェクトが保持している リストの最初かあるいは最後にブロックを登録する点です。

order(argv) -> [String]
order(argv) {|s| ...} -> [String]
order(*args) -> [String]
order(*args) {|s| ...} -> [String]

与えられた argv を順番にパースします。 オプションではないコマンドの引数(下の例で言うと somefile)に出会うと、パースを中断します。 argv からオプションを取り除いたものを返します。

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

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

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

与えられた argv をパースします。 argv からオプションを取り除いたものを返します。

parse!(argv = self.default_argv) -> [String]

与えられた argv をパースします。

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

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

permute!(argv = self.default_argv) -> [String]

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

program_name -> String

プログラムの名前を文字列で返します。

program_name=(name)

プログラムの名前を文字列で指定します。

reject(klass) -> ()

OptionParser#accept で登録したクラスとブロックを 自身から削除します。

release -> String

プログラムのリリースを文字列で返します。

release=(rel)

プログラムのリリースを文字列で指定します。

separator(sep) -> ()

サマリにオプションを区切るための文字列 sep を挿入します。 オプションにいくつかの種類がある場合に、サマリがわかりやすくなります。

summarize(to = [], width = self.summary_width, max = width - 1, indent= self.summary_indent) -> ()
summarize(to = [], width = self.summary_width, max = width - 1, indent= self.summary_indent) {|line| ... } -> ()

サマリを指定された to へと加えていきます。

summary_indent -> String

サマリを表示する時のインデントを文字列で返します。

summary_indent=(indent)

サマリを表示する時のインデントを文字列で指定します。

summary_width -> Integer

サマリを表示するときの幅を整数で返します。

summary_width=(width)

サマリを表示するときの幅を整数で指定します。

to_a -> [String]

サマリの各行を要素とした配列を返します。

ver -> String

program_name、version と release から生成したバージョンを表す文字列を返します。

version -> String

プログラムのバージョンを文字列で返します。

version=(ver)

プログラムのバージョンを文字列で指定します。

継承したメソッド

! != == === =~ __id__ __send__ _dump class clone dclone display enum_for eql? equal? extend freeze frozen? hash initialize initialize_copy inspect instance_eval instance_exec instance_of? instance_variable_defined? instance_variable_get instance_variable_set instance_variables is_a? marshal_dump marshal_load method method_missing methods must_be must_be_close_to must_be_empty must_be_instance_of must_be_kind_of must_be_nil must_be_same_as must_be_within_epsilon must_equal must_include must_match must_raise must_respond_to must_send must_throw nil? pretty_inspect pretty_print pretty_print_cycle pretty_print_inspect pretty_print_instance_variables private_methods protected_methods public_methods remove_instance_variable respond_to? respond_to_missing? singleton_class singleton_method_added singleton_method_removed singleton_method_undefined singleton_methods taint tainted? tap to_ary to_hash to_int to_io to_proc to_regexp to_str to_yaml to_yaml_properties to_yaml_style trust untaint untrust untrusted? wont_be wont_be_close_to wont_be_empty wont_be_instance_of wont_be_kind_of wont_be_nil wont_be_same_as wont_be_within_epsilon wont_equal wont_include wont_match wont_respond_to