class Geokit::Geocoders::IpstackGeocoder

Provides geocoding based upon an IP address. The underlying web service is ipstack, old freegeoip.net

Private Class Methods

do_geocode(ip, _options = nil) click to toggle source
# File lib/geokit/geocoders/ipstack.rb, line 10
def self.do_geocode(ip, _options = nil)
  process :json, ip
end
parse_json(result) click to toggle source
# File lib/geokit/geocoders/ipstack.rb, line 18
def self.parse_json(result)
  loc = new_loc
  return loc if result['success'] == false

  loc.city = result['city']
  loc.state_code = result['region_code']
  loc.state_name = result['region_name']
  loc.zip = result['zip']
  loc.lat = result['latitude']
  loc.lng = result['longitude']
  loc.country_code = result['country_code']
  loc.country = result['country_name']
  loc.success = !loc.country_code.nil?

  loc
end
submit_url(ip) click to toggle source
# File lib/geokit/geocoders/ipstack.rb, line 14
def self.submit_url(ip)
  "http://api.ipstack.com/#{ip}?access_key=#{api_key}"
end