class PUNK::GeocodeSessionWorker
Public Instance Methods
process()
click to toggle source
# File lib/punk/workers/geocode_session_worker.rb, line 12 def process require "ipstack" session = Session[session_id] return if session.blank? ip_address = session.remote_addr.to_s return if ip_address == "127.0.0.1" return if PUNK.get.ipstack.api_key.blank? result = Ipstack::API.standard(ip_address).deep_symbolize_keys raise if result.blank? timezone = result[:time_zone][:code] if result[:time_zone].present? language = result[:location][:languages].first[:code] if result[:location].present? && result[:location][:languages].present? currency = result[:currency][:code] if result[:currency].present? session.update(data: session.data.merge( tz: timezone, lang: language, currency: currency, geo: { lat: result[:latitude], lng: result[:longitude] }, location: { city: result[:city], region: result[:region_name], country: result[:country_name], continent: result[:continent_name] } )) session.save_changes end
validate()
click to toggle source
# File lib/punk/workers/geocode_session_worker.rb, line 7 def validate validates_not_null :session_id validates_not_empty :session_id end