Class: Ratis::RouteStops

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

Overview

EXAMPLE ############################################

Ratis::RouteStops.all :route => 8, :direction => ā€˜Sā€™, :order => ā€˜Sā€™

Defined Under Namespace

Classes: Stop

Class Method Summary collapse

Class Method Details

.all(conditions) ⇒ Object

Raises:

  • (ArgumentError)


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
# File 'lib/ratis/route_stops.rb', line 11

def self.all(conditions)
  route     = conditions.delete(:route)
  direction = conditions.delete(:direction)

  raise ArgumentError.new('You must provide a route')     unless route
  raise ArgumentError.new('You must provide a direction') unless direction

  direction = direction.to_s.upcase
  order     = conditions.delete(:order).to_s.upcase

  Ratis.all_conditions_used? conditions

  request_params = {'Route' => route, 'Direction' => direction }
  request_params.merge! order ? { 'Order' => order } : {}

  response = Request.get 'Routestops', request_params

  return [] unless response.success?

  response.to_hash[:routestops_response][:stops][:stop].map do |s|
    stop = RouteStops::Stop.new
    stop.description              = s[:description]
    stop.area                     = s[:area]
    stop.atis_stop_id             = s[:atisstopid]
    stop.stop_seq                 = s[:stopseq]
    stop.latitude, stop.longitude = s[:point].split(',')
    stop
  end

end