Class: TestTrack::Session

Inherits:
Object
  • Object
show all
Defined in:
app/models/test_track/session.rb

Constant Summary collapse

1.year

Instance Method Summary collapse

Constructor Details

#initialize(controller) ⇒ Session

Returns a new instance of Session.



7
8
9
# File 'app/models/test_track/session.rb', line 7

def initialize(controller)
  @controller = controller
end

Instance Method Details

#log_in!(identifier_type, identifier_value, opts = {}) ⇒ Object



34
35
36
37
38
39
# File 'app/models/test_track/session.rb', line 34

def log_in!(identifier_type, identifier_value, opts = {})
  @visitor = TestTrack::Visitor.new if opts[:forget_current_visitor]
  visitor.link_identifier!(identifier_type, identifier_value)
  self.mixpanel_distinct_id = visitor.id
  true
end

#manageObject



11
12
13
14
15
16
17
18
# File 'app/models/test_track/session.rb', line 11

def manage
  yield
ensure
  manage_cookies!
  manage_response_headers!
  notify_unsynced_assignments! if sync_assignments?
  create_alias! if signed_up?
end

#sign_up!(identifier_type, identifier_value) ⇒ Object



41
42
43
44
# File 'app/models/test_track/session.rb', line 41

def sign_up!(identifier_type, identifier_value)
  visitor.link_identifier!(identifier_type, identifier_value)
  @signed_up = true
end

#state_hashObject



24
25
26
27
28
29
30
31
32
# File 'app/models/test_track/session.rb', line 24

def state_hash
  {
    url: TestTrack.url,
    cookieDomain: cookie_domain,
    cookieName: visitor_cookie_name,
    registry: visitor.split_registry,
    assignments: visitor.assignment_json
  }
end

#visitor_dslObject



20
21
22
# File 'app/models/test_track/session.rb', line 20

def visitor_dsl
  @visitor_dsl ||= TestTrack::VisitorDSL.new(visitor)
end