http://devblog.avdi.org/2010/08/02/using-and-and-or-in-ruby/