Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Set up default option handler for ruby's OptionParser

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?

like image 715
Herms Avatar asked Jan 30 '10 04:01

Herms


1 Answers

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
like image 95
Wayne Conrad Avatar answered Sep 20 '22 03:09

Wayne Conrad