File: README.txt

package info (click to toggle)
libtrollop-ruby 1.9-1
  • links: PTS
  • area: main
  • in suites: squeeze
  • size: 104 kB
  • ctags: 85
  • sloc: ruby: 1,132; makefile: 7
file content (94 lines) | stat: -rw-r--r-- 2,513 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
== trollop

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

http://trollop.rubyforge.org

Documentation quickstart: See Trollop::Parser.

== DESCRIPTION

Trollop is a commandline option parser for Ruby that just gets out of your
way. One line of code per option is all you need to write. For that, you get
a nice automatically-generated help page, robust option parsing, command
subcompletion, and sensible defaults for everything you don't specify.

== FEATURES/PROBLEMS

- Dirt-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.
- Support for subcommands.
- Automatic help message generation, wrapped to current screen width.
- Lots of unit tests.

== SYNOPSIS

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

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

  p opts # { :monkey => false, :goat => true, :num_limbs => 4 }

  ####################
  ###### medium ######
  ####################

  require 'trollop'
  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.exist?(opts[:file]) if opts[:file]
  ################################
  ##### sub-command support ######
  ################################

  require 'trollop'
  global_opts = Trollop::options do
    opt :global_option, "This is a global option"
    stop_on %w(sub-command-1 sub-command-2)
  end

  cmd = ARGV.shift
  cmd_opts = Trollop::options do
    opt :cmd_option, "This is an option only for the subcommand"
  end

  p global_opts
  p cmd
  p cmd_opts

== REQUIREMENTS

* A burning desire to write less code.

== INSTALL

* gem install trollop

== LICENSE

Copyright (c) 2008 William Morgan.

Trollop is distributed under the same terms as Ruby.