Containers, blocks, and iterators are core concepts in Ruby. The more you write in Ruby, the more you'll find yourself moving away from conventional looping constructs. Instead, you'll write classes that support iteration over their contents. And you'll find that this code is compact, easy to read, and a joy to maintain.
Dave Thomas, Programming Ruby: The Pragmatic Programmers' Guide, 2nd Edition, 2005 (page 57)