Guest User

Untitled

a guest
Apr 25th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.08 KB | None | 0 0
  1. # that it returns an Array is an implementation detail
  2. # that you have to build it in order to return it is also an implementation detail
  3. def itinerary(user)
  4. itinerary = []
  5.  
  6. user.bookings.each do |b|
  7. b.air_itineraries.each do |i|
  8. i.air_legs.each do |l|
  9. l.booked_flights.each do |f|
  10. itinerary << {
  11. :start_datetime => f.departure_timestamp.to_time,
  12. :type => 'flight',
  13. :object => f
  14. }
  15. end
  16. end
  17. end
  18.  
  19. hotels_itinerary(b.booked_hotels, itinerary) # should be possible to do it nicer
  20. cars_itinerary(b.booked_cars, itinerary) # same
  21. end #end @user.bookings.each
  22.  
  23. itinerary.sort_by { |e| e[:start_datetime] }
  24. end
  25.  
  26. def hotels_itinerary(hotels, itinerary=[])
  27. itinerary.concat hotels.map do |h|
  28. {
  29. :start_datetime => h.checkin.to_time,
  30. :type => 'hotel',
  31. :object => h
  32. }
  33. end
  34. end
  35.  
  36. def cars_itinerary(cars, itinerary=[])
  37. itinerary.concat cars.map do |c|
  38. {
  39. :start_datetime => c.pickup_timestamp.to_time,
  40. :type => 'car',
  41. :object => c
  42. }
  43. end
  44. end
Add Comment
Please, Sign In to add comment