Using Ruby Blocks And Rolling Your Own Iterators · HackerTrans