Method: Accuweather::Location::Cache#initialize

Defined in:
lib/accuweather/location/cache.rb

#initializeCache

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