ume

Ruby ライブラリーoptparseの概要と使い方

optparseとは?

Rubyコマンドライン引数を扱うための標準ライブラリ.
通常Rubyファイルを実行する際以下のようにして行う

ruby ファイル名

optparseを使用したRubyファイルを実行する際下記のようファイル名の後に引数(-a 3)を取ることができファイル内で使用できるようになる.

optparseの使い方

全体像
  1. require 'optparse'をファイルの一番上に記載する.

  2. OptionParserクラスからOptionParserオブジェクトを作成する.

  3. OptionParserオブジェクトにonメソッドを使用し任意のオプションの処理を登録する

  4. opt.parse(ARGV) でコマンドラインから引数を受け取り③で作成した処理に渡し③の処理を行う。

require 'optparse'をファイルの一番上に記載する.

⇨これでoptparseを読み込み下準備完成

require 'optparse'

OptionParserクラスからOptionParserオブジェクトを作成する.

⇨onメソッドを使用するためにまずはOptionParserオブジェクトを作成する

opt = OptionParser.new
onメソッドとは?

⇨OptionParserオブジェクトにコマンドラインでオプションが渡されたときに行う処理を登録するためのメソッド

構文

OptionParserオブジェクト.on("任意のコマンド 引数"){処理}

OptionParserオブジェクトにonメソッドを使用し任意のオプションの処理を登録する

例もし下記のような-m 12というオプションを使用可能にしたい場合

ruby ファイル名 -m 12

以下のように記載することで-m 12というオプションが使用可能になりこのオプションで行う処理もOptionParserオブジェクトに登録できる。

opt = OptionParser.new
opt.on("-m month"){
                   |month|
                   puts month
                 
                   }

任意のコマンド(-m)の横に任意の名前の引数(month)を指定することでコマンドラインで指定した(12)ものを受け取りブロック内{}の|month|に渡しています。

⚠️この時オプションを使用可能にし処理を登録するのみで処理の実行はまだできません。

1. opt.parse(ARGV) で登録したオプションを実行できるようする

例 もしコマンドラインで以下が実行されたとする

ruby ファイル名 -m 12

するとopt.parse(ARGV)でoptの中に登録された-mで呼び出せるメソッドを探し実行する。この時ARGVという変数の中にはコマンドラインの引数(12)が代入される.ARGVとは配列のオブジェクトなので ARGV[0]やARGV[1]といった形でコマンドラインの引数を確認することもできる。

まとめ

ruby ファイル名 -m 12

上記のようなコマンドが実行されると12と出力される

require 'optparse'
opt = OptionParser.new
  opt.on('-m month'){|month|
                    puts month
                                     ⇨12と出力される

                    }
                    opt.parse(ARGV)

参考情報

docs.ruby-lang.org