Rubyプログラムを書く際に、コマンドライン引数を簡単かつ効果的に処理する方法としてoptparseライブラリがあります。 OptparseはRubyの標準ライブラリで、コマンドライン引数のパースとヘルプの生成が簡単に行えます。今回はRubyを使用して、カレンダーを表示するプログラムを作成します。その中でも、コマンドライン引数を処理するためにoptparseを使用する方法を紹介します。まずは具体例から見ていきましょう。
require 'date' require 'optparse' options = {} OptionParser.new do |opt| opt.on('--month MONTH', 'Specify the month (1..12)') do |month| options[:month] = month end end.parse! options[:month] = Date.today.month if options[:month].nil? unless (1..12).include?(options[:month].to_i) puts "#{options[:month]} is neither a month number (1..12) nor a name" exit end date = Date.new(Date.today.year, options[:month].to_i, 1) puts " #{date.strftime('%B %Y')}" puts "月 火 水 木 金 土 日" first_day = date.wday print " " * first_day last_day = Date.new(date.year, date.month, -1) (date..last_day).each do |day| print day.day.to_s.rjust(2) + " " print "\n" if day.saturday? end puts "\n" unless last_day.saturday?
このプログラムでは、optparseを使用して--monthオプションで月を指定できるようにしています。また、指定がない場合は現在の月がデフォルトで使用されます。もし指定された月が1から12の範囲外であれば、エラーメッセージが表示されます。その後、指定された月のカレンダーを表示します。
このようにoptparseを活用することで、コマンドライン引数を簡単かつ柔軟に処理することができます。