18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
# File 'lib/countries/sources/cldr/subdivision_updater.rb', line 18
def update_locale(file_path)
language_data = Nokogiri::XML(File.read(file_path))
language_code = File.basename(file_path, '.*')
subdivisions = language_data.css('subdivision')
return if subdivisions.empty?
last_country_code_seen = nil
subdivisions.each_with_index do |subdivision, index|
subdivision = Sources::CLDR::Subdivision.new(language_code:, xml: subdivision)
data = @loader.load(subdivision.country_code)
data[subdivision.code] ||= {}
data[subdivision.code] = data[subdivision.code].deep_merge(subdivision.to_h)
if (last_country_code_seen && last_country_code_seen != subdivision.country_code) ||
index == subdivisions.size - 1
puts "Updated #{subdivision.country_code} with language_code #{language_code}"
@loader.save(subdivision.country_code, data)
end
last_country_code_seen = subdivision.country_code
end
end
|