class Geo2tz::Updater
Public Class Methods
new()
click to toggle source
# File lib/geo2tz/updater.rb, line 6 def initialize unzip_db parse_cities write_file end
Public Instance Methods
parse_cities()
click to toggle source
# File lib/geo2tz/updater.rb, line 26 def parse_cities @parsed_cities = [] @unparsed_cities.split("\n").each do |line| line_data = line.split("\t") @parsed_cities << {:lat => line_data[4], :long => line_data[5], :tz => line_data[17]} end @unparsed_cities = nil # dont need it anymore, let's free up some memory true end
unzip_db()
click to toggle source
# File lib/geo2tz/updater.rb, line 12 def unzip_db puts "Downloading #{Geo2tz.config[:geoname_url]}." open(Geo2tz.config[:geoname_url]) do |zf| puts "Done." zipfile = Zip::ZipFile.open(zf.path) if zipfile.find_entry(Geo2tz.config[:geoname_filename]) @unparsed_cities = zipfile.read(Geo2tz.config[:geoname_filename]) else raise "Zip file does not contain expected file" end end true end
write_file()
click to toggle source
# File lib/geo2tz/updater.rb, line 36 def write_file File.open(File.join(Geo2tz.config[:writable_directory],Geo2tz.config[:filename]), 'w') do |file| @parsed_cities.each do |city| file.write("#{city[:lat]},#{city[:long]},#{city[:tz]}\n") end end @parsed_cities = nil# dont need it anymore, let's free up some memory true end