[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

[ANN] Trollop 1.5 Released

William Morgan

4/1/2007 2:35:00 AM

Trollop version 1.5 has been released!

http://trollop.rub...

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.rub...

--
William <wmorgan-ruby-talk@masanjin.net>

3 Answers

Jonas Pfenniger

4/1/2007 9:58:00 AM

0

2007/4/1, William Morgan <wmorgan-ruby-talk@masanjin.net>:
> Trollop version 1.5 has been released!
>
> http://trollop.rub...
>
> 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.rub...
>
> --
> 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 ?

--
Cheers,
zimbatm

William Morgan

4/1/2007 10:28:00 PM

0

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.

--
William <wmorgan-ruby-talk@masanjin.net>

Jonas Pfenniger

4/2/2007 9:36:00 AM

0

2007/4/2, William Morgan <wmorgan-ruby-talk@masanjin.net>:
> 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.

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] ...".

--
Cheers,
zimbatm