optparseの使い方について
この表題を見てoptparseってなんぞや?って思われる方が多いかと思います。
そんなoptparseはどんなもの?から使い方までを紹介したいと思います。
optparseとは
Rubyの標準ライブラリの一部で、コマンドラインのオプションを取り扱うためものです。
コマンドラインのオプションというのはterminal(黒い画面)にてコマンドを打ちますよね?
例えば下記のコマンド。
ディレクトリー内にあるもの全てを表示する
というコマンドなのですが、-a
これがオプションになります。
※ちなみls
のみだとディレクトリー内にあるものを表示するというコマンドになります。
ls -a
つまりoptparseはオプションを自分で文字や内容を設定することができます。
optparseを使う流れ
- OptionParserオブジェクトoptを生成する。
- オプションを取り扱うブロックを opt に登録する。
- 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"]
が配列に格納される
参考サイト
以上、optparseはどんなもの?から使い方までを紹介でした。