source: http://innig.net/software/ruby/closures-in-ruby