Live data from Hacker News

A Recap of Cool Libraries for Ruby

alfajango.com

1–9 of 9 posts

Re: A Recap of Cool Libraries for Ruby

#3
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... ) 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.

Re: A Recap of Cool Libraries for Ruby

#4
post #3

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... ) 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…

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

Re: A Recap of Cool Libraries for Ruby

#5
post #4
post #3

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... ) 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…

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

It's a very simple parser generator. You can quickly create a grammar to parse whatever code you want to compile (or otherwise transform) and then manipulate it from Ruby. It simplifies compiler creation considerably.

Re: A Recap of Cool Libraries for Ruby

#6
post #3

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... ) 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…

I've seen Treetop before but had completely forgotten about it, thanks! I might have to include that in the next edition ;-) Polygot and the Case gem are new to me.

Re: A Recap of Cool Libraries for Ruby

#7
post #4
post #3

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... ) 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…

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

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.

Re: A Recap of Cool Libraries for Ruby

#9
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"] }