Class: CitiBikeDirections
- Inherits:
-
Object
- Object
- CitiBikeDirections
- Defined in:
- lib/citi_bike_directions.rb
Instance Attribute Summary collapse
-
#avail_bike_stations ⇒ Object
readonly
Returns the value of attribute avail_bike_stations.
-
#avail_dock_stations ⇒ Object
readonly
Returns the value of attribute avail_dock_stations.
-
#client ⇒ Object
readonly
Returns the value of attribute client.
-
#stations ⇒ Object
readonly
Returns the value of attribute stations.
Instance Method Summary collapse
- #find_avail_bike_stations(n = @avail_tol) ⇒ Object
- #find_avail_dock_stations(n = @avail_tol) ⇒ Object
- #find_by_id(id) ⇒ Object
- #find_nearest_avail_bike(address) ⇒ Object
- #find_nearest_avail_dock(address) ⇒ Object
- #find_total_directions(start_address, finish_address) ⇒ Object
-
#initialize(user_agent, availability_tolerance = 5) ⇒ CitiBikeDirections
constructor
A new instance of CitiBikeDirections.
Methods included from GmapsWalkingDirections
#get_walking_directions_with_waypoints
Methods included from GmapsBikingDirections
Methods included from DistanceMatrixHelper
#build_dmatrix_params, #build_dmatrix_url
Methods included from HelperMethods
Constructor Details
#initialize(user_agent, availability_tolerance = 5) ⇒ CitiBikeDirections
Returns a new instance of CitiBikeDirections.
19 20 21 22 23 |
# File 'lib/citi_bike_directions.rb', line 19 def initialize(user_agent, availability_tolerance = 5) @client = Citibikenyc.client(user_agent: user_agent, debug: true) @stations = @client.stations.results @avail_tol = availability_tolerance end |
Instance Attribute Details
#avail_bike_stations ⇒ Object (readonly)
Returns the value of attribute avail_bike_stations.
17 18 19 |
# File 'lib/citi_bike_directions.rb', line 17 def avail_bike_stations @avail_bike_stations end |
#avail_dock_stations ⇒ Object (readonly)
Returns the value of attribute avail_dock_stations.
17 18 19 |
# File 'lib/citi_bike_directions.rb', line 17 def avail_dock_stations @avail_dock_stations end |
#client ⇒ Object (readonly)
Returns the value of attribute client.
17 18 19 |
# File 'lib/citi_bike_directions.rb', line 17 def client @client end |
#stations ⇒ Object (readonly)
Returns the value of attribute stations.
17 18 19 |
# File 'lib/citi_bike_directions.rb', line 17 def stations @stations end |
Instance Method Details
#find_avail_bike_stations(n = @avail_tol) ⇒ Object
29 30 31 |
# File 'lib/citi_bike_directions.rb', line 29 def find_avail_bike_stations(n = @avail_tol) stations.select { |station| station.availableBikes > n } end |
#find_avail_dock_stations(n = @avail_tol) ⇒ Object
33 34 35 |
# File 'lib/citi_bike_directions.rb', line 33 def find_avail_dock_stations(n = @avail_tol) stations.select{ |station| station.availableDocks > n } end |
#find_by_id(id) ⇒ Object
25 26 27 |
# File 'lib/citi_bike_directions.rb', line 25 def find_by_id(id) @stations.find { |station| station.id == id } end |
#find_nearest_avail_bike(address) ⇒ Object
37 38 39 40 |
# File 'lib/citi_bike_directions.rb', line 37 def find_nearest_avail_bike(address) coords = address_to_lat_lng(address) find_nearest_avail(coords, :bike) end |
#find_nearest_avail_dock(address) ⇒ Object
42 43 44 45 |
# File 'lib/citi_bike_directions.rb', line 42 def find_nearest_avail_dock(address) coords = address_to_lat_lng(address) find_nearest_avail(coords, :dock) end |
#find_total_directions(start_address, finish_address) ⇒ Object
47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/citi_bike_directions.rb', line 47 def find_total_directions(start_address, finish_address) nearest_bike = find_nearest_avail_bike(start_address) nearest_dock = find_nearest_avail_dock(finish_address) walking_directions = get_walking_directions_with_waypoints(start_address, "#{nearest_bike['latitude']},#{nearest_bike['longitude']}", "#{nearest_dock['latitude']},#{nearest_dock['longitude']}", finish_address) biking_directions = get_biking_directions("#{nearest_bike['latitude']},#{nearest_bike['longitude']}", "#{nearest_dock['latitude']},#{nearest_dock['longitude']}") directions = [walking_directions[0]].concat(biking_directions) << (walking_directions[2]) directions.to_json end |