class Geokit::Geocoders::RipeGeocoder
Provides geocoding based upon an IP address. The underlying web service is geoplugin.net
Private Class Methods
do_geocode(ip)
click to toggle source
# File lib/geokit/geocoders/ripe.rb, line 9 def self.do_geocode(ip) process :json, ip end
parse_json(json)
click to toggle source
# File lib/geokit/geocoders/ripe.rb, line 17 def self.parse_json(json) loc = new_loc data = json["data"]["locations"][0] if data loc.lat = data["latitude"] loc.lng = data["longitude"] set_address_components(data, loc) loc.success = data && (data["status_code"] == 200) end loc end
set_address_components(data, loc)
click to toggle source
# File lib/geokit/geocoders/ripe.rb, line 30 def self.set_address_components(data, loc) match = data["country"].match(/([A-Z]+)(\(([A-Z]+)\))?/) if match[3] loc.state_code = match[1] loc.country_code = match[3] else loc.country_code = match[1] end loc.city = data["city"] end
submit_url(ip)
click to toggle source
# File lib/geokit/geocoders/ripe.rb, line 13 def self.submit_url(ip) "#{protocol}://stat.ripe.net/data/geoloc/data.json?resource=#{ip}" end