Class: Accuweather::Location::Cache
- Inherits:
-
Object
- Object
- Accuweather::Location::Cache
- Defined in:
- lib/accuweather/location/cache.rb
Constant Summary collapse
- CITIES_CSV_FILE =
File.join(File.dirname(__dir__), '..', '..', 'assets', 'cities.z')
Instance Method Summary collapse
- #cities(name:) ⇒ Object
-
#initialize ⇒ Cache
constructor
A new instance of Cache.
Constructor Details
#initialize ⇒ Cache
Returns a new instance of Cache.
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/accuweather/location/cache.rb', line 6 def initialize csv_data = Zlib::Inflate.inflate(File.read(CITIES_CSV_FILE)) @city_data = {} csv_data.split("\n").each do |line| line_data = line.split('|') arr = @city_data[line_data[1].downcase] arr = [] if arr.nil? arr << Accuweather::Location::City.new(id: line_data[0], city: line_data[1], state: line_data[2], latitude: line_data[3], longitude: line_data[4]) @city_data[line_data[1].downcase] = arr end end |
Instance Method Details
#cities(name:) ⇒ Object
23 24 25 |
# File 'lib/accuweather/location/cache.rb', line 23 def cities(name:) @city_data.fetch(name.downcase, []) end |