0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Rubyでoptparserの使用方法【備忘録】

Last updated at Posted at 2019-12-08

背景

現場で使うことがあったので備忘録として

optparseとは

バッチなど.rbファイルを実行(ruby test.rb等)するときオプションを追加できる。

使い方

●一例

test.rb
require 'optparse'

opt = OptionParser.new
opt.on('-a', 'add option -a') do # onメソッドでハンドルすべきオプションを設定
  puts 'Add -a option'
end

opt.parse!(ARGV)
$ ruby test.rb -a
Add -a option # 出力

onメソッドでは
on(short, long, desc = "") {|v| ... }
on(short, desc = "") {|v| ... }
on(long, desc = "") {|v| ... }
上記のような形で指定可能で

shortには '-a''-D'等を指定
longには '--add''--delete'等を指定
descには--help オプションを指定して実行した場合に表示される説明文を設定する。

--helpオプション指定
ruby test.rb --help
Usage: test [options]
  -a                               add option -a

最後にparse!(ARGV) を実行すると、指定したオプションに一致するブロックが実行される。

●オプションにパラメータを指定することも可能

test.rb
require 'optparse'

opt = OptionParser.new
opt.on('-a v', '--add v', 'add param') do |v| #パラメータを指定
  puts "Add #{v}"
end

opt.parse!(ARGV)
$ ruby test.rb -a foo
Add foo
$ ruby test.rb --add bar
Add bar
※注意点

理由はよくわかっていないが

test.rb
opt.on('-a', '--add', 'add param') do |v| #パラメータを指定
  puts "Add #{v}"
end

'-a' などの後にパラメータを指定しなかった場合、boolean型が返ってくるので注意

最後に

ざっくりと簡単なコードだけ説明していきました。
optparseを使うことでプログラム実行するときにオプションが指定でき、可変に実行することが出来ます。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?