Class: BusTime::BusRoute

Inherits:
Object
  • Object
show all
Defined in:
lib/bus_time/bus_route.rb

Overview

Service bus routes handling, including direction and stop retrieval via ‘BusTime::Api`

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(id, name) ⇒ BusRoute

Returns a new instance of BusRoute.



10
11
12
13
# File 'lib/bus_time/bus_route.rb', line 10

def initialize(id, name)
  @id = id
  @name = name
end

Instance Attribute Details

#directionsObject



15
16
17
# File 'lib/bus_time/bus_route.rb', line 15

def directions
  @directions || fetch_directions
end

#idObject (readonly)

Returns the value of attribute id.



6
7
8
# File 'lib/bus_time/bus_route.rb', line 6

def id
  @id
end

#nameObject (readonly)

Returns the value of attribute name.



6
7
8
# File 'lib/bus_time/bus_route.rb', line 6

def name
  @name
end

#stopsObject



19
20
21
# File 'lib/bus_time/bus_route.rb', line 19

def stops
  @stops || fetch_stops
end

Instance Method Details

#display_nameObject



35
36
37
# File 'lib/bus_time/bus_route.rb', line 35

def display_name
  "#{@id} - #{@name}"
end

#fetch_directionsObject



23
24
25
# File 'lib/bus_time/bus_route.rb', line 23

def fetch_directions
  @directions = BusTime.api.fetch_directions(@id)
end

#fetch_stopsObject



27
28
29
30
31
32
33
# File 'lib/bus_time/bus_route.rb', line 27

def fetch_stops
  @directions.each do |direction|
    @stops = BusTime.api.fetch_stops(@id, direction)
  end

  @stops
end

#nearby_stops(_lat, _lon, _radius = DEFAULT_NEARBY_DISTANCE) ⇒ Object



39
40
41
42
43
44
# File 'lib/bus_time/bus_route.rb', line 39

def nearby_stops(_lat, _lon, _radius = DEFAULT_NEARBY_DISTANCE)
  @stops.select do |stop|
    # stop.distanceFrom(lat, lon) <= radius
    stop
  end
end