optparseとは
octparse
は標準ライブラリの内の1つで、コマンドラインのオプションを使うためのライブラリです。
使い方
-
OptionParser
オブジェクトoptを生成 - オプションを取り扱うブロックをoptに登録する
- opt.parse(ARGV)でコマンドラインを実際にparseする
1. OptionParser
オブジェクトoptを生成
optparseライブラリを読み込んで、OptionParseオブジェクトoptを生成します。
sample.rb
require 'optparse'
opt = OptionParser.new
2. オプションを取り扱うブロックをoptに登録する
onメソッドを使用し、引数でオプション-a
と-b
を定義し、引数が指定されたときの処理をブロック内に記述する
sample.rb
opt.on('-a') {|v| p v }
opt.on('-b') {|v| p v }
3. opt.parse(ARGV)でコマンドラインを実際にparseする
ARGV
にはコマンドラインで渡されたオプション、引数が配列として渡される。
sample.rb
opt.parse!(ARGV)
p ARGV
結果
ruby sample.rb -a foo bar -b baz
# => true
true
["foo", "bar", "baz"]
オプションの引数
on
メソッドのオプション定義で末尾に何かを書くと、そのオプションは引数を受け付けることの指定となる
sample.rb
require 'optparse'
opt = OptionParser.new
opt.on('-a VAL') {|v| p v } # <- " VAL" を追加
opt.on('-b') {|v| p v }
opt.parse!(ARGV)
p ARGV
結果
ruby sample.rb -a foo bar -b baz
# => "foo"
true
["bar", "baz"]
ロングオプション
ロングオプションはon
メソッドの引数に--
ではじまるオプションを指定します
sample.rb
require 'optparse'
opt = OptionParser.new
opt.on('-a', '--foo') {|v| p v }
opt.on('--bar') {|v| p v }
opt.parse!(ARGV)
p ARGV
結果
ruby sample.rb -a foo bar --bar baz
# => true
true
["foo", "bar", "baz"]