Module: Airports
- Defined in:
- lib/airports.rb,
lib/airports/airport.rb,
lib/airports/version.rb
Defined Under Namespace
Classes: Airport
Constant Summary collapse
- VERSION =
"1.4.0"
Class Method Summary collapse
- .all ⇒ Object
- .find_by_iata_code(iata_code) ⇒ Object
- .find_by_icao_code(icao_code) ⇒ Object
- .iata_codes ⇒ Object
- .parsed_data ⇒ Object
Class Method Details
.all ⇒ Object
36 37 38 39 40 41 |
# File 'lib/airports.rb', line 36 def self.all @all ||= parsed_data.map do |_iata_code, airport_data| Airport. new(airport_data.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }) end end |
.find_by_iata_code(iata_code) ⇒ Object
8 9 10 11 12 13 14 15 16 17 |
# File 'lib/airports.rb', line 8 def self.find_by_iata_code(iata_code) return unless iata_code.length == 3 airport_data = parsed_data.fetch(iata_code, nil) return unless airport_data Airport. new(airport_data.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }) end |
.find_by_icao_code(icao_code) ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/airports.rb', line 19 def self.find_by_icao_code(icao_code) return unless icao_code.length == 4 airport_data = parsed_data.values.find do |data| data["icao"] == icao_code end return unless airport_data Airport. new(airport_data.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }) end |
.iata_codes ⇒ Object
32 33 34 |
# File 'lib/airports.rb', line 32 def self.iata_codes parsed_data.keys end |
.parsed_data ⇒ Object
43 44 45 |
# File 'lib/airports.rb', line 43 def self.parsed_data @parsed_data ||= JSON.parse(data) end |