Ruby 1.9.2 リファレンスマニュアル > ライブラリ一覧 > library optparse > class OptionParser > on
on(short, desc = "") {|v| ... } -> self
on(long, desc = "") {|v| ... } -> self
on(short, long, desc = "") {|v| ... } -> self
オプションを取り扱うためのブロックを自身に登録します。 ブロックはコマンドラインのパース時に、オプションが指定されていれば呼ばれます。
ショートオプションとロングオプションを同時に登録することもできます。
opts.on("-r", "--require LIBRARY"){|lib| ...}
これは以下と同値です。
opts.on("-r LIBRARY"){|lib| ...} opts.on("--require LIBRARY"){|lib| ...}
複数の異なるオプションに同じブロックを一度に登録することもできます。
opt.on('-v', '-vv'){|boolean| ...} opt.on('--require X', '--need', '--dependon'){|x| ... }
on("-x"){|boolean| ...}となります。コマンドラインにオプションが存在した場合 true を引数と してブロックを評価します。 ショートオプションが引数をとる場合は、
on("-x MANDATORY"){|val| ...}となります。"MANDATORY" の部分は任意の文字列で構いません。 オプションの引数が必須でない場合は [ ] をつけて、
on("-x [OPTIONAL]"){|val| ...}となります。
on("--long"){|boolean| ...} on("--long MANDATORY"){|val| ...} on("--long [OPTIONAL]"){|val| ...}と指定できます。
on(short, pat = /.*/, desc = "") {|v| ...} -> self
on(long, pat = /.*/, desc = "") {|v| ...} -> self
on(short, long, pat = /.*/, desc = "") {|v| ...} -> self
オプションを取り扱うためのブロックを自身に登録します。 ブロックはコマンドラインのパース時に、オプションが指定されていれば呼ばれます。
pat にはオプションの引数に許すパターンを表す正規表現で与えます。 コマンドに与えられた引数がパターンにマッチしない場合、 例外 OptionParser::InvalidArgument が parse 実行時に投げられます。
opts.on("--username VALUE", /[a-zA-Z0-9_]+/){|name| ...} # ruby command --username=ruby_user # ruby command --username=ruby.user #=> Error
on(short, klass = String, desc = "") {|v| ...} -> self
on(long, klass = String, desc = "") {|v| ...} -> self
on(short, long, klass = String, desc = "") {|v| ...} -> self
オプションを取り扱うためのブロックを自身に登録します。 ブロックはコマンドラインのパース時に、オプションが指定されていれば呼ばれます。
klass にはクラスを与えます。どのようなクラスを受け付けるかは、 以下の「デフォルトで利用可能な引数クラス」を参照して下さい。 OptionParser.accept や OptionParser#accept によって、受け付け るクラスを増やすことができます。登録されていないクラスが指定された 場合、例外 ArgumentError を投げます。
オプションの引数は accept で登録したブロックで klass のインスタンス に変換されてから、ブロックに渡されます。
opts.on("-w", "--width N", Integer){|w| p w.class #=> Integer } # ruby command --width=32 opts.on("-o", "--overwrite VALUE", TrueClass){|boolean| ...} # ruby command --overwrite yes
any string, and no conversion. this is fall-back.
any none-empty string, and no conversion.
Ruby/C-like integer, octal for 0-7 sequence, binary for 0b, hexadecimal for 0x, and decimal for others; with optional sign prefix. Converts to Integer.
Float number format, and converts to Float.
Generic numeric format, and converts to Integer for integer format, Float for float format.
Decimal integer format, to be converted to Integer.
Ruby/C like octal/hexadecimal/binary integer format, to be converted to Integer.
Decimal integer/float number format, to be converted to Integer for integer format, Float for float format.
Boolean switch, which means whether it is present or not, whether it is absent or not with prefix no-, or it takes an argument yes/no/true/false/+/-.
Similar to TrueClass, but defaulted to false.
List of strings separated by ","
on(short, *rest) {|v| ...} -> self
on(long, *rest) {|v| ...} -> self
on(short, long, *rest) {|v| ...} -> self
オプションを取り扱うためのブロックを自身に登録します。 ブロックはコマンドラインのパース時に、オプションが指定されていれば呼ばれます。
コマンドに与えられた引数が配列やハッシュに含まれない場合、 例外 OptionParser::InvalidArgument が parse 実行時に投げられます。
例:
opts.on("--protocol VALUE", [:http, :ftp, :https]){|w| p w } # ruby command --protocol=http #=> :http opts.on("-c", "--charset VALUE", {"jis" => "iso-2022-jp", "sjis" => "shift_jis"}){|w| p w } # ruby command --charset=jis #=> "iso-2022-jp"