class ElasticActivities::GeoLocation

Attributes

as[RW]
city[RW]
country[RW]
country_code[RW]
geo_points[RW]
ip_address[R]
isp[RW]
org[RW]
region[RW]
region_name[RW]
timezone[RW]
zip[RW]

Public Class Methods

new(args={}) click to toggle source
# File lib/elastic_activities/geo_location.rb, line 5
def initialize(args={})
  @ip_address = args[:ip] == '127.0.0.1' ? '' : args[:ip]
end

Public Instance Methods

get_details() click to toggle source
# File lib/elastic_activities/geo_location.rb, line 9
def get_details
  data = `curl -XGET http://ip-api.com/json/#{ip_address}`
  json_data = JSON.parse(data)
  @as = json_data['as']
  @city = json_data['city']
  @country = json_data['country']
  @country_code = json_data['countryCode']
  @isp = json_data['isp']
  @org = json_data['org']
  @region = json_data['region']
  @region_name = json_data['regionName']
  @timezone = json_data['timezone']
  @zip = json_data['zip']
  @geo_points = {
    lat: json_data['lat'],
    lon: json_data['lon']
  }
end