class JDX::Geocoder::IpApi

Public Class Methods

new(term) click to toggle source
# File lib/jdx/geocoder/ip_api.rb, line 8
def initialize(term)
  @term = term
end

Public Instance Methods

address() click to toggle source
# File lib/jdx/geocoder/ip_api.rb, line 24
def address
  "#{city}, #{state_code} #{postal_code}, #{country}".sub(/^[ ,]*/, '')
end
city() click to toggle source
# File lib/jdx/geocoder/ip_api.rb, line 12
def city
  data['city']
end
coordinates() click to toggle source

coordinate order is longitude, latitude

# File lib/jdx/geocoder/ip_api.rb, line 49
def coordinates
  [longitude, latitude]
end
country() click to toggle source
# File lib/jdx/geocoder/ip_api.rb, line 16
def country
  data['country']
end
country_code() click to toggle source
# File lib/jdx/geocoder/ip_api.rb, line 20
def country_code
  data['countryCode']
end
latitude() click to toggle source
# File lib/jdx/geocoder/ip_api.rb, line 36
def latitude
  data['lat']
end
longitude() click to toggle source
# File lib/jdx/geocoder/ip_api.rb, line 40
def longitude
  data['lon']
end
postal_code() click to toggle source
# File lib/jdx/geocoder/ip_api.rb, line 44
def postal_code
  data['zip']
end
state() click to toggle source
# File lib/jdx/geocoder/ip_api.rb, line 28
def state
  data['regionName']
end
state_code() click to toggle source
# File lib/jdx/geocoder/ip_api.rb, line 32
def state_code
  data['region']
end

Private Instance Methods

cache_redis() click to toggle source
# File lib/jdx/geocoder/ip_api.rb, line 76
def cache_redis
  @cache_redis ||= Geocoder.configuration.ip_cache_db
end
handle_response() click to toggle source
# File lib/jdx/geocoder/ip_api.rb, line 63
def handle_response
  response = typhoeus_get
  if response.success?
    data = parse_json(response.body)
    return [true, data] if data['status'] == 'success'

    blacklist_term
  else
    handle_request_error(response)
  end
  false
end
ipapi_key() click to toggle source
# File lib/jdx/geocoder/ip_api.rb, line 80
def ipapi_key
  @ipapi_key ||= Geocoder.configuration.ipapi_key
end
serialize_data(response_data) click to toggle source
# File lib/jdx/geocoder/ip_api.rb, line 59
def serialize_data(response_data)
  response_data
end
url() click to toggle source
# File lib/jdx/geocoder/ip_api.rb, line 55
def url
  "https://pro.ip-api.com/json/#{escape_term}?key=#{ipapi_key}"
end