概要
書籍 Build Awesome Command-Line Applications in Ruby2
章
Be Easy to Use
詳細
ほとんどのCLIアプリケーションは慣習に従って作られている。
慣習に従っておけばユーザーにとって覚えるのが簡単なツールになる。
そこで、慣習に従ったCLIを作る助力となるのが標準ライブラリのOptionParserです。
OptionParserはデフォルトでhelpオプション・versionオプションをサポートしています。
versionオプションを利用するには、OptionParserのインスタンスに
program_name と version を設定しておく必要があります。
サンプル仕様
※書籍に載っていたものとは全く別のものです。自分独自の仕様で考えました。
指定した文字列を大文字か小文字に変換して出力します。
オプションの仕様は以下。
Short-From Option | Long-From Option | 内容 |
---|---|---|
u | upcase | 大文字に変換 |
d | downcase | 小文字に変換 |
サンプルコード
require 'optparse' require 'pp' options = {} opts = OptionParser.new do |opts| opts.on("-u", "--upcase", "大文字に変換します"){ |v| options[:upcase] = true } opts.on("-d", "--downcase", "小文字に変換します"){ |v| options[:downcase] = true } opts.on("-t TEXT", "--text=TEXT", "テキストを指定します"){ |text| options[:text] = text } opts.program_name = "up_down_converter" opts.version = "0.0.1" end opts.parse!(ARGV) pp options text = ARGV.first if options[:upcase] puts options[:text].upcase elsif options[:downcase] puts options[:text].downcase else puts text end
サンプル出力
$ ruby 1.rb -t HoGe -d {:text=>"HoGe", :downcase=>true} hoge $ ruby 1.rb --text=HoGe --downcase {:text=>"HoGe", :downcase=>true} hoge $ ruby 1.rb -t HoGe -u {:text=>"HoGe", :upcase=>true} HOGE $ ruby 1.rb --text=HoGe --upcase {:text=>"HoGe", :upcase=>true} HOGE $ ruby 1.rb -h Usage: up_down_converter [options] -u, --upcase 大文字に変換します -d, --downcase 小文字に変換します -t, --text=TEXT テキストを指定します $ ruby 1.rb --help Usage: up_down_converter [options] -u, --upcase 大文字に変換します -d, --downcase 小文字に変換します -t, --text=TEXT テキストを指定します $ ruby 1.rb -v up_down_converter 0.0.1 $ ruby 1.rb --version up_down_converter 0.0.1