]> git.openstreetmap.org Git - rails.git/blob - lib/country.rb
Merge pull request #5932 from tomhughes/frozen-strings
[rails.git] / lib / country.rb
1 # frozen_string_literal: true
2
3 class Country
4   attr_reader :code, :min_lat, :max_lat, :min_lon, :max_lon
5
6   def initialize(code, min_lat, max_lat, min_lon, max_lon)
7     @code = code
8     @min_lat = min_lat
9     @max_lat = max_lat
10     @min_lon = min_lon
11     @max_lon = max_lon
12   end
13
14   def self.find(code)
15     countries[code]
16   end
17
18   def self.countries
19     @countries ||= load_countries
20   end
21
22   def self.load_countries
23     countries = {}
24     xml = REXML::Document.new(Rails.root.join("config/countries.xml").read)
25
26     xml.elements.each("geonames/country") do |ele|
27       code = ele.get_text("countryCode").to_s
28       minlon = ele.get_text("west").to_s
29       minlat = ele.get_text("south").to_s
30       maxlon = ele.get_text("east").to_s
31       maxlat = ele.get_text("north").to_s
32
33       countries[code] = Country.new(code, minlat.to_f, maxlat.to_f, minlon.to_f, maxlon.to_f)
34     end
35
36     countries
37   end
38 end