# Trollop 1.1 released

**URL:** <https://www.ruby-forum.com/t/trollop-1-1-released/83967>\
**Category:** Ruby\
**Created:** [January 31, 2007, 4:42am UTC](https://www.ruby-forum.com/t/trollop-1-1-released/83967 "2007-01-31T04:42:25Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![trucker](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/ecae2f/32.png) [@trucker](https://www.ruby-forum.com/u/trucker)\
**Post date:** [January 31, 2007, 4:42am UTC](https://www.ruby-forum.com/t/trollop-1-1-released/83967/1 "2007-01-31T04:42:25Z")

</div>

Trollop version 1.1 has been released!

[http://trollop.rubyforge.org](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 M.”  
banner \<\<-EOS  
Test is an awesome program that does something very, very important.

Usage:  
test [options] +  
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.1 / 2007-01-30

- Trollop::options now passes any arguments as block arguments. Since  
instance variables are not properly captured by the block, this  
makes it slightly less noisy to pass them in as local variables.  
(A real-life use for \_why’s cloaker!)

- Help display now preserves original argument order.

- Trollop::die now also has a single string form in case death is not  
due to a single argument.

- Parser#text now an alias for Parser#banner, and can be called  
multiple times, with the output being placed in the right position  
in the help text.

- Slightly more indicative formatting for parameterized arguments.

---

<div class="post-metadata">

**Author:** ![trucker](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/ecae2f/32.png) [@trucker](https://www.ruby-forum.com/u/trucker)\
**Post date:** [January 31, 2007, 6:52am UTC](https://www.ruby-forum.com/t/trollop-1-1-released/83967/2 "2007-01-31T06:52:33Z")

</div>

Hello William,

2007/1/30, William M. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> == REQUIREMENTS:
> 
> - none

I beg to differ:  
$ gem dependency trollop  
Gem trollop-1.1  
hoe (\>= 1.1.7)

$ gem dependency hoe  
Gem hoe-1.1.7  
rubyforge (\>= 0.4.0)  
rake (\>= 0.7.1)

So in effect, Trollop depends on Hoe and Rubyforge. Do you know any  
way to not depend on hoe ? I would like to find out, so I can use  
Trollop in Piston and not bother with Hoe.

My understanding is that Hoe allows you to generate gems. Is it still  
useful after the initial generation ?

Thanks !

---

<div class="post-metadata">

**Author:** ![trucker](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/ecae2f/32.png) [@trucker](https://www.ruby-forum.com/u/trucker)\
**Post date:** [January 31, 2007, 8:08am UTC](https://www.ruby-forum.com/t/trollop-1-1-released/83967/3 "2007-01-31T08:08:37Z")

</div>

On Jan 30, 2007, at 9:52 PM, Francois B. wrote:

> So in effect, Trollop depends on Hoe and Rubyforge. Do you know any  
> way to not depend on hoe ? I would like to find out, so I can use  
> Trollop in Piston and not bother with Hoe.

Can we NOT start with this again??

---

<div class="post-metadata">

**Author:** ![trucker](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/ecae2f/32.png) [@trucker](https://www.ruby-forum.com/u/trucker)\
**Post date:** [January 31, 2007, 8:36am UTC](https://www.ruby-forum.com/t/trollop-1-1-released/83967/4 "2007-01-31T08:36:38Z")

</div>

On 1/31/07, Ryan D. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> On Jan 30, 2007, at 9:52 PM, Francois B. wrote:
> 
> > So in effect, Trollop depends on Hoe and Rubyforge. Do you know any  
> > way to not depend on hoe ? I would like to find out, so I can use  
> > Trollop in Piston and not bother with Hoe.
> 
> Can we NOT start with this again??

As usual, the path to enlightenment is cuts through the garden of  
education:

For the benefit of the OP, here is the (somewhat long) discussion that  
went on on this topic recently:  
[http://rubyurl.com/fm5](http://rubyurl.com/fm5)

And here is one solution:

> **[if you don’t want to hoe… echoe](https://blog.evanweaver.com/2007/01/10/if-you-dont-want-to-hoe-echoe/)**
>
> Hoe, a gem used to build gems, injects itself as a dependency into every gem it creates. To many people, this is unnecessary, since hardly anybody wants to perform meta-operations on a gem itself. …

hth,  
-Harold

---

<div class="post-metadata">

**Author:** ![trucker](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/ecae2f/32.png) [@trucker](https://www.ruby-forum.com/u/trucker)\
**Post date:** [January 31, 2007, 3:10pm UTC](https://www.ruby-forum.com/t/trollop-1-1-released/83967/5 "2007-01-31T15:10:22Z")

</div>

Harold H. wrote:

> > On Jan 30, 2007, at 9:52 PM, Francois B. wrote:
> > 
> > > So in effect, Trollop depends on Hoe and Rubyforge. Do you know any  
> > > way to not depend on hoe ? I would like to find out, so I can use  
> > > Trollop in Piston and not bother with Hoe.
> 
> And here is one solution:  
> [if you don’t want to hoe… echoe « evan weaver](http://blog.evanweaver.com/articles/2007/01/10/if-you-dont-want-to-hoe-echoe)

That’s the solution for gem-makers. For gem-installers, it’s:  
gem install trollop --ignore-dependencies  
vi $RUBYLIB/gems/1.8/specifications/trollop-1.1.gemspec

(Is there a simpler/cleaner way?)

Devin

---

<div class="post-metadata">

**Author:** ![trucker](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/ecae2f/32.png) [@trucker](https://www.ruby-forum.com/u/trucker)\
**Post date:** [January 31, 2007, 6:28pm UTC](https://www.ruby-forum.com/t/trollop-1-1-released/83967/6 "2007-01-31T18:28:47Z")

</div>

Excerpts from Francois B.'s message of Wed Jan 31 08:04:24 -0800  
2007:

> I am _so_ sorry. Thinking back, I do remember seeing messages to that  
> effect.

Thanks for bringing this up. I was unaware of the issue.

I’ve released version 1.2, which has no dependency on hoe.

---

<div class="post-metadata">

**Author:** ![trucker](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/ecae2f/32.png) [@trucker](https://www.ruby-forum.com/u/trucker)\
**Post date:** [January 31, 2007, 5:04pm UTC](https://www.ruby-forum.com/t/trollop-1-1-released/83967/7 "2007-01-31T17:04:35Z")

</div>

Hi,

2007/1/31, Ryan D. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> Can we NOT start with this again??

I am _so_ sorry. Thinking back, I do remember seeing messages to that  
effect.

I forgot to check the archives.

Thanks for reminding me.

Bye !

---

<div class="post-metadata">

**Author:** ![trucker](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/ecae2f/32.png) [@trucker](https://www.ruby-forum.com/u/trucker)\
**Post date:** [January 31, 2007, 7:52pm UTC](https://www.ruby-forum.com/t/trollop-1-1-released/83967/8 "2007-01-31T19:52:55Z")

</div>

On Jan 31, 2007, at 9:27 AM, William M. wrote:

> Thanks for bringing this up. I was unaware of the issue.  
> I’ve released version 1.2, which has no dependency on hoe

WIMP! Don’t give in to them!

---

<div class="post-metadata">

**Author:** ![trucker](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/ecae2f/32.png) [@trucker](https://www.ruby-forum.com/u/trucker)\
**Post date:** [January 31, 2007, 8:40pm UTC](https://www.ruby-forum.com/t/trollop-1-1-released/83967/9 "2007-01-31T20:40:00Z")

</div>

Excerpts from Ryan D.'s message of Wed Jan 31 10:50:30 -0800 2007:

> WIMP! Don’t give in to them!

🙂
