optparseの使い方について

この表題を見てoptparseってなんぞや?って思われる方が多いかと思います。
そんなoptparseはどんなもの?から使い方までを紹介したいと思います。

optparseとは

Ruby標準ライブラリの一部で、コマンドラインのオプションを取り扱うためものです。
コマンドラインのオプションというのはterminal(黒い画面)にてコマンドを打ちますよね?
例えば下記のコマンド。
ディレクトリー内にあるもの全てを表示するというコマンドなのですが、-aこれがオプションになります。
※ちなみlsのみだとディレクトリー内にあるものを表示するというコマンドになります。

ls -a

つまりoptparseはオプションを自分で文字や内容を設定することができます。

optparseを使う流れ
  1. OptionParserオブジェクトoptを生成する。
  2. オプションを取り扱うブロックを opt に登録する。
  3. opt.parse(ARGV) でコマンドラインを実際に parse する。

わかりやすく言うと下記になります。
オブジェクトというのは設計図を元に作成したもののことで
1. 設計図をもとにoptを作る
2. どのようなオプションを作るかブロックに登録、記載する
※ブロックについては上記のリンクにて!
3. opt.parse!を最後に記載しよう!

optparseの使い方
1. 設計図をもとにoptを作る
opt = OptionParser.new

2. どのようなオプションを作るかブロックに登録、記載する
opt.on('short', 'long') do |sample|
# 条件など
end

3. `opt.parse!`を最後に記載しよう!
opt.parse!(ARGV)


1文ずつ具体的に説明していきます!

opt = OptionParser.new

OptionParserオブジェクト(設計図)にてoptを作成

opt.on('short', 'long') do |sample|
# 条件など
end

上記コードでのshortは短い形式のオプションを表し、longは長い形式のオプションを表します。
下記に具体例を出します。

opt.on('-m M', '--month=M') do |sample|

-m M: -mは短い形式のオプションを表し、オプションの引数をM
--month=M: --monthは長い形式のオプションを表し、オプションの引数をM
※上記はshortかlongのどちらかを一方のみでも問題ないです。
ここでの引数Mコマンドライン上で入力をされたものが入ります。
ruby sample.rb -m 5と入力された場合であればMには5が入ります。

opt.parse!(ARGV)

解析・実行を行う。
ARGVはプログラムが実行された際に与えられたコマンドライン引数が配列として格納されます。
例えばterminalでruby sample.rb -m 5とコマンドを入力した場合、["-m", "5"]が配列に格納される

参考サイト

docs.ruby-lang.org

qiita.com

qiita.com

以上、optparseはどんなもの?から使い方までを紹介でした。