背景
現場で使うことがあったので備忘録として
optparseとは
バッチなど.rbファイルを実行(ruby test.rb等)するときオプションを追加できる。
使い方
●一例
test.rb
require 'optparse'
opt = OptionParser.new
opt.on('-a', 'add option -a') do # onメソッドでハンドルすべきオプションを設定
puts 'Add -a option'
end
opt.parse!(ARGV)
$ ruby test.rb -a
Add -a option # 出力
onメソッドでは
on(short, long, desc = "") {|v| ... }
on(short, desc = "") {|v| ... }
on(long, desc = "") {|v| ... }
上記のような形で指定可能で
shortには '-a'
や '-D'
等を指定
longには '--add'
や '--delete'
等を指定
descには--help オプションを指定して実行した場合に表示される説明文を設定する。
--helpオプション指定
ruby test.rb --help
Usage: test [options]
-a add option -a
最後にparse!(ARGV) を実行すると、指定したオプションに一致するブロックが実行される。
●オプションにパラメータを指定することも可能
test.rb
require 'optparse'
opt = OptionParser.new
opt.on('-a v', '--add v', 'add param') do |v| #パラメータを指定
puts "Add #{v}"
end
opt.parse!(ARGV)
$ ruby test.rb -a foo
Add foo
$ ruby test.rb --add bar
Add bar
※注意点
理由はよくわかっていないが
test.rb
opt.on('-a', '--add', 'add param') do |v| #パラメータを指定
puts "Add #{v}"
end
'-a'
などの後にパラメータを指定しなかった場合、boolean型が返ってくるので注意
最後に
ざっくりと簡単なコードだけ説明していきました。
optparseを使うことでプログラム実行するときにオプションが指定でき、可変に実行することが出来ます。