Tag: Ruby/OptionParser

目次

関連ページ

参考情報

概要

  • コマンドラインオプションを解析するライブラリ。

基本的方法

  • 以下のように使用する
    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.on('-t VAL', '--type=VAL', ['foo', 'bar' 'baz']) {|v| opts[:t] = v } #選択肢は配列として第二引数に指定
    opt.parse!(ARGV)
    p opts
    
    
  • 以下が出力される。
    $ ruby option.rb -a foo -b
    {:a=>"foo", :b=>true}
    
  • ヘルプを表示する場合。
    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

必要な引数が存在しない場合ヘルプを表示して終了する

  • デフォルトで-h / -vオプションがサポートされている。必要な引数がわたっていなかった場合にヘルプを表示して終了したい場合、以下のように処理する。
    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
Last-modified: 2018-05-28 (月) 15:07:55