class Airports::AirportInfo
airport
Attributes
airports[R]
lat[R]
lng[R]
location[R]
Public Class Methods
find(location)
click to toggle source
# File lib/movlog/airport.rb, line 15 def self.find(location) data = { location: location, geocode: GoogleMapApi.geocode(location) } new(data) end
new(data)
click to toggle source
# File lib/movlog/airport.rb, line 10 def initialize(data) @location = data[:location] load_geocode(data[:geocode]) end
Private Instance Methods
airport_hash(ap)
click to toggle source
# File lib/movlog/airport.rb, line 58 def airport_hash(ap) { name: ap['name'], country_code: ap['countryCode'], lat: ap['lat'].to_f, lng: ap['lng'].to_f } end
load_airports(airports)
click to toggle source
# File lib/movlog/airport.rb, line 36 def load_airports(airports) @airports = airports.map do |ap| if ap['name'].include? 'Air' airport_hash(ap) end end.compact @airports = sort_airports end
load_geocode(data)
click to toggle source
# File lib/movlog/airport.rb, line 30 def load_geocode(data) data = data['geometry']['location'] @lat = data['lat'].to_f @lng = data['lng'].to_f end
sort_airports()
click to toggle source
# File lib/movlog/airport.rb, line 45 def sort_airports inter = [] nomal = [] @airports.each do |ap| if ap[:name].include? 'International' inter << ap elsif nomal.length < 5 nomal << ap end end sorted_airports = inter + nomal end