A Recap of Cool Libraries for Ruby(alfajango.com)
alfajango.com
A Recap of Cool Libraries for Ruby
http://www.alfajango.com/blog/cool-libraries-for-ruby/
4 comments
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.
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.
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.
Rush is my new favorite. http://github.com/adamwiggins/rush
A Ruby shell that allows you to do things like,
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"] }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?
RAD and racksh are totally new to me and I'm going to spend sometime looking into them now. Thanks.
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.