This is excerpted from the Practical Object-Oriented Design in Ruby book by Sandi Metz

attr_reader -

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:w