Tbpgr Blog

Ruby プログラマ tbpgr(てぃーびー) のブログ

Ruby | CLI | Be Helpful | Adding a Brief Description for a CLI Apps

概要

書籍 Build Awesome Command-Line Applications in Ruby2

Be Helpful

詳細

CLIアプリケーションをどういった目的に利用するのか、ヘルプに含めること。

例として ls コマンドの日本語ヘルプを見てみます。

$ ls --help
使用法: ls [オプション]... [ファイル]...
FILE に関する情報を一覧表示します (デフォルトは現在のディレクトリ)。
-cftuvSUX または --sort が指定されない限り、要素はアルファベット順で並べ替えられます。

アプリケーションの目的を OptionParser の bannar に追加してみます。
下記記事のサンプルをベースに設定を追加します。

Ruby | CLI | Be Easy to Use | Ruby | CLI | Be Easy to Use | OptionParserを利用した使いやすいCLIインターフェース
http://d.hatena.ne.jp/tbpg/20140526/1401109608

サンプルコード

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.program_name = "up_down_converter"
  opts.version = "0.0.1"
  opts.banner = <<-EOS
テキストを大文字か小文字に変換して出力します。

Usage: #{opts.program_name} [options] text
  EOS
end
opts.parse!(ARGV)
pp options

text = ARGV.first

if options[:upcase]
  puts text.upcase
elsif options[:downcase]
  puts text.downcase
else
  puts text
end

出力

$ ruby 1.rb -h
テキストを大文字か小文字に変換して出力します。

Usage: up_down_converter [options] text
    -u, --upcase                     大文字に変換します
    -d, --downcase                   小文字に変換します