

A Recap of Cool Libraries for Ruby - JangoSteve
http://www.alfajango.com/blog/cool-libraries-for-ruby/

======
daeken
If you're a compiler type person, Treetop ( <http://treetop.rubyforge.org/> )
and Polyglot ( <http://polyglot.rubyforge.org/> ) are amazingly cool
libraries.

The Case gem (some information here:
[http://blog.objectmentor.com/articles/2009/03/16/tighter-
rub...](http://blog.objectmentor.com/articles/2009/03/16/tighter-ruby-methods-
with-functional-style-pattern-matching-using-the-case-gem) ) for pattern
matching is also great, especially if you're dealing with large S-exp
structures for compilation. After discovering a few of these libraries, Ruby
has become my de facto compiler language.

~~~
Shamiq
Can you explain a bit more about Treetop to me? I'm not understanding the use
cases. (Plain english would be nice...).

~~~
JangoSteve
From what I understand (and I may be wrong since I haven't actually used it),
it would simplify the process of creating something like the ubiquitus search
box Google uses in Google Maps. Where it sends the string you type through a
tree-type process parsing it into structured meaningful data. Of course,
that's just the first example of a use-case I thought of when I saw it. I'm
sure it's a lot more powerful than that.

------
mpk
Rush is my new favorite. <http://github.com/adamwiggins/rush>

A Ruby shell that allows you to do things like,

    
    
        local_dir = Rush::Box.new('localhost')['/Users/adam/server_logs/'].create
        servers = %w(www1 www2 www3).map { |n| Rush::Box.new(n) }
        servers.each { |s| s['/var/log/nginx/access.log'].copy_to local_dir["#{s.host}_access.log"] }

------
Tagith
As the site itself says, there are a few other libraries similar to nanoc,
notably <http://webby.rubyforge.org/> . However, nanoc looks to be a little
easier to use, I'll have to check it out. Anyone else have any experience with
static site generation?

------
Shamiq
RAD and racksh are totally new to me and I'm going to spend sometime looking
into them now. Thanks.

