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