前提
自分で何かプログラムを作成し、ターミナルでそれを実行します。その際オプションをつけ、引数を1つ指定できるようにすることを目標とします。
そういった時に使えるoptparseについて学んだので使い方を簡単にまとめておきます。
optparseとは
- Rubyの標準ライブラリの1つ
- コマンドラインのオプションを取り扱うライブラリ
使い方
基本的には以下の流れになります。
- optparseをrequireする
- OptionParser オブジェクト opt を生成する
- オプションを取り扱うブロックを opt に登録する
- opt.parse(ARGV) でコマンドラインを実際に parse する
それぞれ詳しく見ていきます。
1. optparseをrequireする
optparseは組み込みライブラリではないので、まず最初にrequireする必要があります。
sample.rb
require 'optparse'
2. OptionParser オブジェクト opt を生成する
次にOptionParserオブジェクトを生成します。
sample.rb
opt = OptionParser.new
3. オプションを取り扱うブロックを opt に登録する
今回はオプションの引数に指定された値を後の処理で使いたいことを想定しています。そういった場合はparams
などを用意してそこに値を格納します。
-m
のところでオプションとして-m
を受け付けるようにして、その後ろのVAL
で引数を受け付けることの指定をしています。
ここはあくまでも登録をしているだけでこれだけでは実行されません。
sample.rb
params = {}
opt.on('-m VAL') { |v| params[:m] = v }
4. opt.parse(ARGV) でコマンドラインを実際に parse する
これでパースします。
parseが呼ばれた時に、コマンドラインにオプションが指定されていれば3で登録した処理が実行されます。
sample.rb
opt.parse!(ARGV)