lib/countries/tasks/postal_codes.rake in countries-4.2.3 vs lib/countries/tasks/postal_codes.rake in countries-5.0.0

- old
+ new

@@ -1,5 +1,7 @@ +# frozen_string_literal: true + namespace :postal_codes do desc 'Retrieve and update postal codes and their format' task :update do require 'json' require 'open-uri' @@ -18,17 +20,17 @@ response = URI.open("https://chromium-i18n.appspot.com/ssl-address/data/#{country_code}").read json = JSON.parse(response) rescue {} puts ' - Returned empty data. Skipping ' and next if json.empty? - postal_code = ['postal_code', !!json['zip']] + postal_code = ['postal_code', !json['zip'].nil?] postal_code_format = ['postal_code_format', json['zip']] if postal_code_index data[postal_code_index] = postal_code else - postal_code_index = data.find_index { |d| d[0] == 'nationality' } + 1 || data.size + postal_code_index = (data.find_index { |d| d[0] == 'nationality' } + 1) || data.size data.insert(postal_code_index, postal_code) end if json['zip'] if postal_code_format_index @@ -40,9 +42,9 @@ data.delete_at(postal_code_format_index) end yaml[country_code] = data.to_h - File.open(country_file, 'w') { |file| file.write(yaml.to_yaml) } + File.write(country_file, yaml.to_yaml) end end end