Class: Workarea::Visit
- Inherits:
-
Object
show all
- Defined in:
- lib/workarea/visit.rb
Defined Under Namespace
Classes: UnsupportedSessionAccess
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
#initialize(env) ⇒ Visit
Returns a new instance of Visit.
11
12
13
|
# File 'lib/workarea/visit.rb', line 11
def initialize(env)
@env = env
end
|
Instance Attribute Details
#env ⇒ Object
Returns the value of attribute env.
5
6
7
|
# File 'lib/workarea/visit.rb', line 5
def env
@env
end
|
#override_segments ⇒ Object
61
62
63
|
# File 'lib/workarea/visit.rb', line 61
def override_segments
@override_segments ||= Segment.in(id: session[:segment_ids]).to_a
end
|
Instance Method Details
#applied_segments ⇒ Object
65
66
67
|
# File 'lib/workarea/visit.rb', line 65
def applied_segments
admin? ? override_segments : segments
end
|
#browser ⇒ Object
77
78
79
|
# File 'lib/workarea/visit.rb', line 77
def browser
@browser ||= Browser.new(env['HTTP_USER_AGENT'], accept_language: env['HTTP_ACCEPT_LANGUAGE'])
end
|
#cookies ⇒ Object
15
16
17
|
# File 'lib/workarea/visit.rb', line 15
def cookies
request.cookie_jar
end
|
#current_email ⇒ Object
40
41
42
43
44
45
|
# File 'lib/workarea/visit.rb', line 40
def current_email
cookies.signed[:email].presence || (email_from_user_id if logged_in?)
end
|
#current_metrics_id ⇒ Object
81
82
83
84
|
# File 'lib/workarea/visit.rb', line 81
def current_metrics_id
return @current_metrics_id if defined?(@current_metrics_id)
@current_metrics_id = current_email.presence || session['session_id']
end
|
#current_metrics_id=(id) ⇒ Object
86
87
88
89
|
# File 'lib/workarea/visit.rb', line 86
def current_metrics_id=(id)
@current_metrics_id = id
@metrics = nil
end
|
#geolocation ⇒ Object
32
33
34
|
# File 'lib/workarea/visit.rb', line 32
def geolocation
@geolocation ||= Workarea::Geolocation.new(env, request.remote_ip)
end
|
#location_names ⇒ Object
36
37
38
|
# File 'lib/workarea/visit.rb', line 36
def location_names
geolocation.names
end
|
#logged_in? ⇒ Boolean
24
25
26
|
# File 'lib/workarea/visit.rb', line 24
def logged_in?
session[:user_id].present?
end
|
#metrics ⇒ Object
47
48
49
50
|
# File 'lib/workarea/visit.rb', line 47
def metrics
return blank_metrics if current_metrics_id.blank?
@metrics ||= Metrics::User.find_or_initialize_by(id: current_metrics_id)
end
|
#referrer ⇒ Object
69
70
71
72
73
74
75
|
# File 'lib/workarea/visit.rb', line 69
def referrer
@referrer ||= begin
value = cookies['workarea_referrer'].presence || request.referrer
attributes = Workarea.referrer_parser.parse(value) rescue {}
TrafficReferrer.new(attributes)
end
end
|
#request ⇒ Object
28
29
30
|
# File 'lib/workarea/visit.rb', line 28
def request
@request ||= ActionDispatch::Request.new(env)
end
|
#sessions ⇒ Object
A value of 0 here means it’s the first request we’ve seen
53
54
55
|
# File 'lib/workarea/visit.rb', line 53
def sessions
@sessions ||= cookies[:sessions].to_i
end
|