Forum: Ruby Trollop 1.5 Released

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Bef8474ed2205be6c37e821bb741afec?d=identicon&s=25 William Morgan (Guest)
on 2007-04-01 04:35
(Received via mailing list)
Trollop version 1.5 has been released!

  http://trollop.rubyforge.org

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.

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

Changes:

== 1.5 / 2007-03-31
* --help and --version do the right thing even if the rest of the
  command line is incorrect.
* Added #conflicts and #depends to model dependencies and exclusivity
  between arguments.
* Minor bugfixes.

  http://trollop.rubyforge.org
0c0103cd305c41429e5683d93956bbdc?d=identicon&s=25 Jonas Pfenniger (Guest)
on 2007-04-01 11:59
(Received via mailing list)
2007/4/1, William Morgan <wmorgan-ruby-talk@masanjin.net>:
> option parsing, and sensible defaults for everything you don't
>   end
>   Usage:
>   Trollop::die :file, "must exist" unless File.exists?(opts[:file]) if opts[:file]
> * Added #conflicts and #depends to model dependencies and exclusivity
>   between arguments.
> * Minor bugfixes.
>
>   http://trollop.rubyforge.org
>
> --
> William <wmorgan-ruby-talk@masanjin.net>
>
>

Hi William,

it's indeed a really nice parser. I especially liked how it's small
and still very powerful. What do you think it would take to add a
groff -> man output generator ?
Bef8474ed2205be6c37e821bb741afec?d=identicon&s=25 William Morgan (Guest)
on 2007-04-02 00:28
(Received via mailing list)
Excerpts from Jonas Pfenniger's message of Sun Apr 01 02:57:54 -0700
2007:
> it's indeed a really nice parser. I especially liked how it's small
> and still very powerful. What do you think it would take to add a
> groff -> man output generator ?

There's a gnu tool called "help2man" that works very well at turning
Trollop output into a man page, especially if you format things how it
expects them.

I've just release version 1.6, which doesn't do the curses screen-width
detection magic unless it's running on a terminal. This is necessary for
help2man (and "less"!) to work right.
0c0103cd305c41429e5683d93956bbdc?d=identicon&s=25 Jonas Pfenniger (Guest)
on 2007-04-02 11:36
(Received via mailing list)
2007/4/2, William Morgan <wmorgan-ruby-talk@masanjin.net>:
> detection magic unless it's running on a terminal. This is necessary for
> help2man (and "less"!) to work right.

Cool ! I might try it on my next project. Do you plan to add a default
usage if no banner is given ? Something like : "Usage :
#{File.basename($0)} [OPTIONS] ...".
This topic is locked and can not be replied to.