Sha256: d27cff3d221f7702cdf603b6ff9fae72d1058b146a386380837ea84c130d6dff

Contents?: true

Size: 944 Bytes

Versions: 2

Compression:

Stored size: 944 Bytes

Contents

module Accuweather
  module Location
    class Cache
      CITIES_CSV_FILE = File.join(File.dirname(__dir__), '..', '..', 'assets', 'cities.z')

      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

      def cities(name:)
        @city_data.fetch(name.downcase, [])
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
accuweather-0.2.3 lib/accuweather/location/cache.rb
accuweather-0.2.2 lib/accuweather/location/cache.rb