jashmenn / trollop

mirror of William Morgan's repo at git://gitorious.org/trollop/mainline.git

This URL has Read+Write access

William Morgan (author)
Sun Jun 17 13:20:44 -0700 2007
name age message
file FAQ.txt Loading commit data...
file History.txt
file Manifest.txt
file README.txt
file Rakefile
file index.html
directory lib/
directory test/
README.txt
== trollop

by William Morgan <wmorgan-trollop@masanjin.net>

http://trollop.rubyforge.org

== DESCRIPTION:

Trollop is YAFCLAP --- yet another fine commandline argument
processing library for Ruby. Trollop is designed to provide the
maximal amount of GNU-style argument processing in the minimum number
of lines of code (for you, the programmer).

Trollop provides a nice automatically-generated help page, robust
option parsing, and sensible defaults for everything you don't
specify.

Trollop: getting you 90% of the way there with only 10% of the effort.

== FEATURES/PROBLEMS:

- Simple usage.
- Sensible defaults. No tweaking necessary, much tweaking possible.
- Support for long options, short options, short option bundling,
  and automatic type validation and conversion.
- Automatic help message generation, wrapped to current screen width.
- Lots of unit tests.

== SYNOPSIS:

  ###### simple ######

  opts = Trollop::options do
    opt :monkey, "Use monkey mode."
    opt :goat, "Use goat model", :default => true
    opt :num_limbs, "Set number of limbs", :default => 4
  end

  p opts

  ###### complex ######

  opts = Trollop::options do
    version "test 1.2.3 (c) 2007 William Morgan"
    banner <<-EOS
  Test is an awesome program that does something very, very important.

  Usage:
         test [options] <filenames>+
  where [options] are:
  EOS

    opt :ignore, "Ignore incorrect values"
    opt :file, "Extra data filename to read in, with a very long option description like this one", :type => String
    opt :volume, "Volume level", :default => 3.0
    opt :iters, "Number of iterations", :default => 5
  end
  Trollop::die :volume, "must be non-negative" if opts[:volume] < 0
  Trollop::die :file, "must exist" unless File.exists?(opts[:file]) if opts[:file]

== REQUIREMENTS:

* none

== INSTALL:

* gem install trollop

== LICENSE:

Copyright (c) 2007 William Morgan.

Trollop is distributed under the same terms as Ruby.