なにをいってるかわからねータイトルですが。
rubyにはoptparseっていうコマンドラインパーサが標準ライブラリ*1があり、使う機会があった
-h
でヘルプを表示できるのだが、たとえばこんなやつ
require "optparse" OptionParser.new do |opt| begin # バージョンを追加 opt.version = "0.0.1" # リリース日を追加 opt.release = "2018-11-12" # 名前を追加 opt.program_name = "" # Usageで最初に表示されるやつ opt.banner = "Usage: #{opt.program_name} [options] [directory]" # helpとかUsageで表示されるときのサマリーが始まるまでの行頭からの幅 summary_width = 32 opt.summary_width = summary_width # 同じくコマンドのインデント summary_indent = 4 opt.summary_indent = ' ' * summary_indent # summaryの幅を改行時にも揃えたい。長文で折り返した際も同じようにインデントするようにしたい # opt.onでオプションとそのdescを追加 opt.on("-x", "所詮サマリーなのでそもそも長文を書くものではないんだけど、それにしてもターミナル幅が短いとめちゃくちゃ読みにくいしつらい。\n改行なんてしようもんならもっとひどいことになる。とても読めたものではない"){ |v| options[:a] = v } opt.separator("") opt.on("-h", "--help", "show help."){ puts opt.help exit } opt.on("-v", "--version", "show version."){ puts opt.ver exit } opt.parse!(ARGV) rescue OptionParser::InvalidOption => e puts e.message return end end
を、ヘルプオプションで表示しようとすると、ターミナル幅が70とかだとこんな感じになっちゃう
これがストレスなのでちゃんとインデント付きで折り返してくれるようなヘルパー関数を作ってあげた
(中見ればわかりますが力ずくでよろしくやっているだけ...)