/optparse-simple

Minimalistic Ruby option parser (based on OptionParser API)

Primary LanguageRuby

optparse-simple

A partial pre-implementation of OptionParser, in particular that actual parsing part:

opts = OptionParser.new do |opts|
  opts.on('-f', '--foo'){ ... }
end

opts.parse! args

I really love optparse but:

  • I don’t care about separators / banners / etc, I use other gems/libraries for that stuff

  • optparse is a PITA to extend and the source code is 1,791 lines long!

This is a re-implementation of the part of optparse that actually parses.

This is not trying to be a whole framework for creating CLI applications. There are already numerous great tools out there. Unfortunately, many of them re-implement OptionParser, themselves, because there’s no library out there (that I know of) that just does the parsing part.

Our libraries need to be more UNIX-y! “Write programs that do one thing and do it well.”

install

sudo gem install remi-optparse-simple -s http://gems.github.com

usage

opts = OptParseSimple.new do |opts|
  opts.on('-f', '--foo'){ ... }
end

opts.parse! args

OptParseSimple is pretty much API-compatible with OptionParser, so far as basic parsing is concerned.

The primary difference at the moment is that OptParseSimple doesn’t raise an exception if #parse or #parse! is called and an invalid option is detected. To raise this exception, enable compatibility mode:

OptParseSimple.compatibility_mode = true

Not much else has been implemented YET