Set up default option handler for ruby's OptionParser

command-line-arguments, ruby

Solution

There's probably a slick way to do it, but I don't know it. I've done this:

  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

Problem

I'm trying to get simple option handling in my ruby app. Looks like `OptionParser` does most of what I want, though I can't figure out a way to gracefully handle unexpected arguments. If any unexpected arguments are provided I want to treat it as if the `-h` argument was passed (show usage and quit). I'm not seeing any way to handle that though. If `OptionParser` can't do it, is there another library I could use for easily parsing command line arguments?

Original source