learn ruby the hard way exercise 3, revised