This is excerpted from the Practical Object-Oriented Design in Ruby book by Sandi Metz
attr_reader -
http://www-rohan.sdsu.edu/doc/ruby/chp_04/classes.html
http://stackoverflow.com/questions/5046831/why-use-rubys-attr-accessor-attr-reader-and-attr-writer
wrapper method -
http://yehudakatz.com/2009/01/18/other-ways-to-wrap-a-method/
instance variable -
## Writing Code that Embraces Change
### Depend on Behavior, Not Data
**Hide instance Variables ** Don't directly refer to variables
def ratio
@chainring / @cog to_f
end
### Enforce Single Responsibility Everywhere