Class: Ratis::Point2Point
- Inherits:
-
Object
- Object
- Ratis::Point2Point
- Defined in:
- lib/ratis/point_2_point.rb
Defined Under Namespace
Classes: Group, RoutesOnlyResponse, Service, StandardResponse, Stop, Trip
Class Method Summary collapse
Class Method Details
.where(conditions) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/ratis/point_2_point.rb', line 5 def self.where(conditions) routes_only = conditions.delete(:routes_only) || 'N' routes = conditions.delete(:routes) || [] origin_lat = conditions.delete(:origin_lat).to_f origin_long = conditions.delete(:origin_long).to_f destination_lat = conditions.delete(:destination_lat).to_f destination_long = conditions.delete(:destination_long).to_f date = conditions.delete :date start_time = conditions.delete(:start_time) end_time = conditions.delete :end_time raise ArgumentError.new("You must specify routes only with true, false, 'y' or 'n'") unless routes_only.y_or_n rescue false raise ArgumentError.new('You must provide an origin latitude') unless Ratis.valid_latitude? origin_lat raise ArgumentError.new('You must provide an origin longitude') unless Ratis.valid_longitude? origin_long raise ArgumentError.new('You must provide an destination latitude') unless Ratis.valid_latitude? destination_lat raise ArgumentError.new('You must provide an destination longitude') unless Ratis.valid_longitude? destination_long raise ArgumentError.new('You must provide a date DD/MM/YYYY') unless DateTime.strptime(date, '%d/%m/%Y') rescue false raise ArgumentError.new('You must provide a start time as 24-hour HHMM') unless DateTime.strptime(start_time, '%H%M') rescue false raise ArgumentError.new('You must provide an end time as 24-hour HHMM') unless DateTime.strptime(end_time, '%H%M') rescue false Ratis.all_conditions_used? conditions response = Request.get 'Point2point', 'Routesonly' => routes_only.y_or_n.upcase, 'Originlat' => origin_lat, 'Originlong' => origin_long, 'Destinationlat' => destination_lat, 'Destinationlong' => destination_long, 'Date' => date, 'Starttime' => start_time, 'Endtime' => end_time, 'Routes' => routes.join(',') return nil unless response.success? return parse_routes_only_yes(response) if routes_only.y_or_n.downcase == 'y' return parse_routes_only_no(response) if routes_only.y_or_n.downcase == 'n' nil end |