Class: QuickTravel::Route
Class Method Summary collapse
-
.all(product_type_id) ⇒ Object
All routes for a given product type.
-
.all_by_route_ids_and_product_type_id(route_ids, product_type_id) ⇒ Object
Return routes that match the given ids and product_type_id.
- .find(routes_list, route_id) ⇒ Object
-
.find_by_route_id_and_product_type_id(route_id, product_type_id) ⇒ Object
find_by_id – but the API only does lookup by product_type_id.
Instance Method Summary collapse
- #can_choose_stops? ⇒ Boolean
- #find_route_stop_by_id(route_stop_id) ⇒ Object
- #get_return_route_stop!(forward_stop) ⇒ Object
- #get_reverse_route! ⇒ Object
- #route_stops ⇒ Object
Methods inherited from Adapter
belongs_to, create, has_many, #to_s, update
Methods included from InitFromHash
#define_readers, #initialize, #to_hash
Class Method Details
.all(product_type_id) ⇒ Object
All routes for a given product type
18 19 20 21 |
# File 'lib/quick_travel/route.rb', line 18 def self.all(product_type_id) find_all!("/product_types/#{product_type_id}/routes.json", cache_key: "QuickTravel::Route.all-#{product_type_id}-attrs") end |
.all_by_route_ids_and_product_type_id(route_ids, product_type_id) ⇒ Object
Return routes that match the given ids and product_type_id
Initializes with path set
11 12 13 14 15 |
# File 'lib/quick_travel/route.rb', line 11 def self.all_by_route_ids_and_product_type_id(route_ids, product_type_id) all(product_type_id).select do |route| route_ids.include?(route.id.to_i) end end |
.find(routes_list, route_id) ⇒ Object
23 24 25 26 27 |
# File 'lib/quick_travel/route.rb', line 23 def self.find(routes_list, route_id) routes_list.detect do|route| route.id.to_i == route_id.to_i end end |
.find_by_route_id_and_product_type_id(route_id, product_type_id) ⇒ Object
find_by_id – but the API only does lookup by product_type_id
4 5 6 |
# File 'lib/quick_travel/route.rb', line 4 def self.find_by_route_id_and_product_type_id(route_id, product_type_id) all_by_route_ids_and_product_type_id([route_id.to_i], product_type_id).first end |
Instance Method Details
#can_choose_stops? ⇒ Boolean
33 34 35 |
# File 'lib/quick_travel/route.rb', line 33 def can_choose_stops? route_stops.count > 2 end |
#find_route_stop_by_id(route_stop_id) ⇒ Object
63 64 65 |
# File 'lib/quick_travel/route.rb', line 63 def find_route_stop_by_id(route_stop_id) route_stops.detect { |route_stop| route_stop.id.to_i == route_stop_id.to_i } end |
#get_return_route_stop!(forward_stop) ⇒ Object
37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/quick_travel/route.rb', line 37 def get_return_route_stop!(forward_stop) if forward_stop.blank? fail AdapterError, 'Selected pick up/drop off stops have not been set up for the selected route.' end reverse_stop = get_reverse_route!.route_stops.detect { |route_stop| route_stop.name == forward_stop.name } if reverse_stop.blank? fail AdapterError, 'Selected pick up/drop off stops have not been setup on the reverse route.' end reverse_stop end |
#get_reverse_route! ⇒ Object
50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/quick_travel/route.rb', line 50 def get_reverse_route! if reverse_id.blank? fail AdapterError, 'Reverse has not been setup for the selected route.' end reverse_route = Route.find_by_route_id_and_product_type_id(reverse_id, product_type_id) if reverse_route.blank? fail AdapterError, 'Reverse does not exist for the selected route.' end reverse_route end |