代码之家  ›  专栏  ›  技术社区  ›  Herms

为ruby的OptionParser设置默认选项处理程序

  •  7
  • Herms  · 技术社区  · 14 年前

    我正在尝试在我的ruby应用程序中实现简单的选项处理。看起来像 OptionParser

    如果提供了任何意外的参数,我希望将其视为 -h 参数已传递(显示用法并退出)。不过,我看不出有什么办法可以解决这个问题。

    选项分析器

    2 回复  |  直到 14 年前
        1
  •  10
  •   Wayne Conrad    14 年前

    也许有一种巧妙的方法,但我不知道。我已经做到了:

      opts = OptionParser.new
      ...
      opts.on_tail("-h", "--help",
                   "Show this message") do
        puts opts
        exit
      end
      begin      
        opts.parse!(argv)
      rescue OptionParser::InvalidOption => e
        puts e
        puts opts
        exit(1)
      end
    
        2
  •  0
  •   ktsujister    11 年前

    如果将以下内容另存为test.rb

    #/usr/bin/env ruby
    require 'optparse'
    
    test = nil
    help = nil
    ARGV.options {|opt|
      opt.on("--test=test") {|val| test=val}
      help = opt.help
      begin
        opt.parse!
      rescue OptionParser::InvalidOption => e
        puts help
      end
    }
    

    并在终端中执行以下操作,

    $./test.rb --foo
    

    Usage: test [options]
        --test=test