class Trip

  attr_reader :bicycles, :customers, :vehicle

  def prepare(mechanic)
    mechanic.prepare_bicycles(bicycles)
  end
end

class Trip

  attr_reader :bicycles, :customers, :vehicle

  def prepare(preparers)
    preparers.each { |preparers|
      case preparers
      when Mechanic
        preparer.prepare_bicycles(bicycle)
      when TripCoordinator
        preparer.buy_food(customers)
      when Driver
        preparer.gas_up(vehicle)
        preparer.fill_water_tank(vehicle)
      end
    }
  end
end

class TripCoordinator
  def buy_food(customers)
    # ...
  end
end

class Driver
  def gas_up(vehicle)
    # ...
  end

  def fill_water_tank(vehicle)
    # ...
  end
end

Add Trip case statement (p88)
Add Trip case statement (p88)
