class Accuweather::Location::Cache

Constants

CITIES_CSV_FILE

Public Class Methods

new() click to toggle source
# 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

Public Instance Methods

cities(name:) click to toggle source
# File lib/accuweather/location/cache.rb, line 23
def cities(name:)
  @city_data.fetch(name.downcase, [])
end