Class: Ratis::ClosestStop

Inherits:
Object
  • Object
show all
Defined in:
lib/ratis/closest_stop.rb

Class Method Summary collapse

Class Method Details

.where(conditions) ⇒ Object

Raises:

  • (ArgumentError)


4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/ratis/closest_stop.rb', line 4

def self.where(conditions)
  latitude      = conditions.delete :latitude
  longitude     = conditions.delete :longitude
  location_text = conditions.delete :location_text
  num_stops     = conditions.delete :num_stops

  raise ArgumentError.new('You must provide a longitude') unless longitude
  raise ArgumentError.new('You must provide a latitude')  unless latitude

  Ratis.all_conditions_used? conditions

  response = Request.get 'Closeststop',
                         {'Locationlat'  => latitude,
                          'Locationlong' => longitude,
                          'Locationtext' => location_text,
                          'Numstops'     => num_stops }

  return [] unless response.success?

  stops = response.to_hash[:closeststop_response][:stops][:stop].map do |stop|
            next if stop[:description].blank?

            Ratis::Stop.new(stop)
          end.compact
end