One of the most misunderstood parts of Ruby are Blocks, Procs, and Lambdas. I've used them in the past a few times, but have never had the time to dig deep and truly understand the differences. Lately I've been working with Rack and it's forcing me to really understand Blocks, Procs, and Lambdas. I found a great article by Robert Sosinski, http://www.robertsosinski.com/2008/12/21/understanding-ruby-blocks-procs-and-lambdas. Robert really gives a great explanation of this useful feature.