As the author of Trollop, I cannot BELIEVE the stuff that people think is reasonable in an option parser. Seriously. It boggles the mind.
Why should I have to make a module that extends some other module to parse options? Why should I have to subclass anything? Why should I have to subscribe to some “framework” just to parse the command line?
Here’s the Trollop version of the above:
opts = Trollop::options do
opt :quiet, "Use minimal output", :short => 'q'
opt :interactive, "Be interactive"
opt :filename, "File to process", :type => String
end
And that’s it. opts
is now a hash with keys :quiet
, :interactive
, and :filename
. You can do whatever you want with it. And you get a beautiful help page, formatted to fit your screen width, automatic short argument names, type checking… everything you need.
It’s one file, so you can drop it in your lib/ directory if you don’t want a formal dependency. It has a minimal DSL that is easy to pick up.
LOC per option people. It matters.