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?

More than 1 year has passed since last update.

optparseの使い方

Last updated at Posted at 2023-10-16

optparseとは

optparseとはコマンドラインのオプションを取り扱うためのライブラリであり、Rubyプログラムでコマンドラインユーザーインターフェースを簡単に実装するために使用されます。

optparseの使い方

  • 下記のように記述することでoptparseライブラリをインポートすることができます。
require 'optparse'
  • デフォルトのオプションや変数を設定します。
options = {}
  • OptionParserを使用してコマンドラインオプションと引数を定義します。
    • opts.bannerは、OptionParser オブジェクト内でコマンドラインヘルプメッセージを定義するための属性です。ここで定義したメッセージはユーザーがヘルプオプションを使用してヘルプ情報を表示したときに表示されます。
    • opts.on は、コマンドラインオプションを定義するためのメソッドです。このメソッドは、オプションのショートフォーム(-f)およびロングフォーム(--fruit)を指定し、そのオプションが受け取る値の説明を定義できます。ブロック内のコードは、オプションが指定されたときに実行されます。
OptionParser.new do |opts|
  opts.banner = "Usage: fruit_info.rb [options]"

  opts.on("-f", "--fruit FRUIT", "Specify a fruit") do |fruit|
    options[:fruit] = fruit
  end

  opts.on("-t", "--taste TASTE", "Specify the taste of the fruit") do |taste|
    options[:taste] = taste
  end
end.parse!
  • オプションで実際に行う処理の中身を記述します。
if options[:fruit]
  puts "Fruit: #{options[:fruit]}"
  # ここで、指定されたフルーツに関する情報を取得できるロジックを追加
else
  puts "Please specify a fruit using -f or --fruit option."
end

if options[:taste]
  puts "Taste: #{options[:taste]}"
end

上記のように記述することで、コマンドラインで実行する際に引数を指定して、コードを実行することが可能となります。
今回の例だとコマンドライン引数として -f または --fruit オプションを使用してフルーツ名を指定し、-t または --taste オプションを使用してそのフルーツの味を指定できます。

  • コマンドラインでのコードの実行することができます。
ruby fruit_info.rb -f Apple -t Sweet

このコマンドは、"Apple" というフルーツの情報を表示し、その味を "Sweet" と設定します。

まとめ

「optparseの使い方」で説明したように、optparseを使用することで、コマンドライン引数に対応したRubyプログラムの実行が可能となります。

参考文献

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?