optparseとは?
⇨Rubyでコマンドライン引数を扱うための標準ライブラリ.
通常Rubyファイルを実行する際以下のようにして行う
ruby ファイル名
optparseを使用したRubyファイルを実行する際下記のようファイル名の後に引数(-a 3)を取ることができファイル内で使用できるようになる.
optparseの使い方
全体像
require 'optparse'をファイルの一番上に記載する.
OptionParserクラスからOptionParserオブジェクトを作成する.
OptionParserオブジェクトにonメソッドを使用し任意のオプションの処理を登録する
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)