はじめに
今回はOptparseとは何か、Optparseの基本的な使い方について記載していきます。
Optparseとは
Optparseとはコマンドラインでのオプションを取り扱うためのライブラリ
です。
Optparseを使うことで、例えば入力されたオプションの引数を取得→取得した引数をどうこうするといったことができるようになります。
私が使用した例だと、コマンドラインの引数に指定された月のカレンダーを表示するというところでOptparseを使用しました。
# オプション・・・-m
# -mの引数・・・9
$ ruby calendar.rb -m 9
使い方
# ①ライブラリ読み込み
require 'optparse'
# ②OptionParser オブジェクト opt を生成
opt = OptionParser.new
# オプションを取り扱うブロックを opt に登録
# 引数が指定された時の処理をブロック{}で記載
opt.on('-a') {|v| p v }
opt.on('-b') {|v| p v }
# opt.parse(ARGV) でコマンドラインを実際に parse する
# コマンドラインの解析を行う、結果はARGVに格納される
opt.parse!(ARGV)
p ARGV
入力値
$ ruby sample.rb -a foo bar -b baz
出力結果
# オプション(-a)が指定されたのでtrue
true
# オプション(-b)が指定されたのでtrue
true
["foo", "bar", "baz"]
オプションの引数を必須にする
$ ruby sample.rb -a foo bar -b baz
-aオプションの引数は必須としたい場合などですね
require 'optparse'
opt = OptionParser.new
# -a オプションの後にVALを追加
opt.on('-a VAL') {|v| p v }
opt.on('-b') {|v| p v }
opt.parse!(ARGV)
p ARGV
①入力値 -aオプションを引数なしで指定
$ ruby optparse.rb -a
①結果 引数がありませんとエラーが返される
optparse.rb:7:in `<main>': missing argument: -a (OptionParser::MissingArgument)
②入力値 -aオプションを引数ありで指定
$ ruby optparse.rb -a foo bar -b baz
②結果
"foo"
true
["bar", "baz"]
参考文献