Module: SimpleGeolocator
- Defined in:
- lib/simple_geolocator/ipapi_response.rb,
lib/simple_geolocator.rb
Overview
noinspection RubyTooManyInstanceVariablesInspection
Defined Under Namespace
Classes: IPAPIResponse
Constant Summary collapse
- URL_FORMAT =
'http://ip-api.com/json/%s?fields=258047'.freeze
Class Method Summary collapse
-
.get(ip) ⇒ IPAPIResponse
Gets the full response.
Instance Method Summary collapse
-
#get(ip) ⇒ IPAPIResponse
private
Gets the full response.
Class Method Details
.get(ip) ⇒ IPAPIResponse
Gets the full response. From here, all the data related to the IP can be accessed. Caches the result in order to prevent reaching the rate limit.
17 18 19 20 21 22 23 |
# File 'lib/simple_geolocator.rb', line 17 def get(ip) return @cache[ip] if @cache.key?(ip) url = format(URL_FORMAT, ip) response = Curl.get(url).body_str ipapi = SimpleGeolocator::IPAPIResponse.new(Oj.load(response)) @cache[ip] = ipapi end |
Instance Method Details
#get(ip) ⇒ IPAPIResponse (private)
Gets the full response. From here, all the data related to the IP can be accessed. Caches the result in order to prevent reaching the rate limit.
17 18 19 20 21 22 23 |
# File 'lib/simple_geolocator.rb', line 17 def get(ip) return @cache[ip] if @cache.key?(ip) url = format(URL_FORMAT, ip) response = Curl.get(url).body_str ipapi = SimpleGeolocator::IPAPIResponse.new(Oj.load(response)) @cache[ip] = ipapi end |