#author("2016-04-27T19:51:27+09:00","default:wikiwriter","wikiwriter")
&tag(Ruby/OptionParser);
*目次 [#ka21f7d1]
#contents
*関連ページ [#a648f896]
*参考情報 [#c385c37c]
-[[library optparse:http://docs.ruby-lang.org/ja/2.1.0/library/optparse.html]]


*概要 [#wbf70088]
-コマンドラインオプションを解析するライブラリ。

*基本的方法 [#p899961b]
-以下のように使用する
#pre{{
require 'optparse'

opt = OptionParser.new
opt.banner = "Usage: #{opt.program_name} [-h|--help] <args>"
opt.separator("#{opt.program_name} Available Options")
opt.version = '2.3.4'
opt.on_head('-h', '--help', 'Show this message') do |v|
  puts opt.help
  exit
end
opts = {}
opt.on('-a VAL') {|v| opts[:a] = v }
opt.on('-b') {|v| opts[:b] = v }
opt.on('-c VAL', '--check-type=VAL') {|v| opts[:b] = v }

opt.parse!(ARGV)
p opts

}}
-以下が出力される。
#pre{{
$ ruby option.rb -a foo -b
{:a=>"foo", :b=>true}
}}
-ヘルプを表示する場合。
#pre{{
ruby option.rb  --help
Usage: option [-h|--help] <args>
    -h, --help                       Show this message
option Available Options
    -a VAL
    -b
    -c, --check-type=VAL
}}
-on_head / on_tailはopt.helpで表示されるヘルプ文字列の並びに影響する。on_headはseparatorの前になり、on_tailはonの後ろとなる。
-h / -vはデフォルトでハンドリングされるが、-vのほうは適切な表示を行いたい場合opt.versionを設定しておく。


*Tips [#f5db24a4]

**必要な引数が存在しない場合ヘルプを表示して終了する [#q435b567]
-デフォルトで-h / -vオプションがサポートされている。必要な引数がわたっていなかった場合にヘルプを表示して終了したい場合、以下のように処理する。
#pre{{
opts = {}
opt = OptionParser.new
opt.on('-f VAL', '--file=VAL') {|v| opts[:file] = v }
opt.parse!(ARGV)


if opts[:file].nil? || !FileTest.file?(opts[:file])
  puts opt # putsでヘルプが表示sあれる
  exit
end
}}

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS