Chapter 3 of Ruby Tutorials