module SeptaStopLocator

Constants

VERSION

Public Class Methods

find(lat, long, route) click to toggle source
# File lib/septa_stop_locator.rb, line 6
def self.find(lat, long, route)
  stops = SeptaStopLocator::Route.new(route).stops

  stop_one = stops.each { |stop|
    stop['distance'] = Haversine.distance(lat, long, stop['lat'], stop['lng']).to_feet
  }.min_by { |stop| stop['distance'] }

  stop_two = stops.find { |stop|
    (stop['stopname'] == stop_one['stopname']) && (stop['stopid'] != stop_one['stopid'])
  }

  [stop_one, stop_two].compact
end