0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

optparseの使い方

Posted at

optparseとは

octparseは標準ライブラリの内の1つで、コマンドラインのオプションを使うためのライブラリです。

使い方

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

1. OptionParserオブジェクトoptを生成

optparseライブラリを読み込んで、OptionParseオブジェクトoptを生成します。

sample.rb
require 'optparse'
opt = OptionParser.new

2. オプションを取り扱うブロックをoptに登録する

onメソッドを使用し、引数でオプション-a-bを定義し、引数が指定されたときの処理をブロック内に記述する

sample.rb
opt.on('-a') {|v| p v }
opt.on('-b') {|v| p v }

3. opt.parse(ARGV)でコマンドラインを実際にparseする

ARGVにはコマンドラインで渡されたオプション、引数が配列として渡される。

sample.rb
opt.parse!(ARGV)
p ARGV

結果

ruby sample.rb -a foo bar -b baz
# => true
     true
     ["foo", "bar", "baz"]

オプションの引数

onメソッドのオプション定義で末尾に何かを書くと、そのオプションは引数を受け付けることの指定となる

sample.rb
require 'optparse'
opt = OptionParser.new

opt.on('-a VAL') {|v| p v }         # <- " VAL" を追加
opt.on('-b') {|v| p v }

opt.parse!(ARGV)
p ARGV

結果

ruby sample.rb -a foo bar -b baz

# => "foo"
     true
     ["bar", "baz"]

ロングオプション

ロングオプションはonメソッドの引数に--ではじまるオプションを指定します

sample.rb
require 'optparse'
opt = OptionParser.new

opt.on('-a', '--foo') {|v| p v }
opt.on('--bar') {|v| p v }

opt.parse!(ARGV)
p ARGV

結果

ruby sample.rb -a foo bar --bar baz
# => true
     true
     ["foo", "bar", "baz"]

参考文献

library optparse (Ruby 3.2 リファレンスマニュアル)

0
0
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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?