X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/933b0913304fdd581c7cb3f1ec30450d6e04c63a..42b329ed82c7899b970e1f0fd8d6d29fd625f7d5:/lib/country.rb diff --git a/lib/country.rb b/lib/country.rb new file mode 100644 index 000000000..ea52efd77 --- /dev/null +++ b/lib/country.rb @@ -0,0 +1,38 @@ +class Country + attr_reader :code, :min_lat, :max_lat, :min_lon, :max_lon + + def initialize(code, min_lat, max_lat, min_lon, max_lon) + @code = code + @min_lat = min_lat + @max_lat = max_lat + @min_lon = min_lon + @max_lon = max_lon + end + + def self.find_by_code(code) + countries[code] + end + +private + + def self.countries + @@countries ||= load_countries + end + + def self.load_countries + countries = Hash.new + xml = REXML::Document.new(File.read("config/countries.xml")) + + xml.elements.each("geonames/country") do |ele| + code = ele.get_text("countryCode").to_s + minlon = ele.get_text("west").to_s + minlat = ele.get_text("south").to_s + maxlon = ele.get_text("east").to_s + maxlat = ele.get_text("north").to_s + + countries[code] = Country.new(code, minlat.to_f, maxlat.to_f, minlon.to_f, maxlon.to_f) + end + + countries + end +end