Sha256: 92dd4c43ea4c9cec297491d6f7d712b18889d8f0cb38b9593b7138712920e286
Contents?: true
Size: 929 Bytes
Versions: 4
Compression:
Stored size: 929 Bytes
Contents
class TestTrack::IdentitySessionDiscriminator attr_reader :identity def initialize(identity) @identity = identity end def with_visitor raise ArgumentError, "must provide block to `with_visitor`" unless block_given? if matching_identity? yield session.visitor_dsl else TestTrack::OfflineSession.with_visitor_for(identity.test_track_identifier_type, identity.test_track_identifier_value) do |v| yield v end end end def with_session raise ArgumentError, "must provide block to `with_session`" unless block_given? if web_context? yield session else raise "#with_session called outside of web context" end end private def matching_identity? session.present? && session.has_matching_identity?(identity) end def web_context? session.present? end def session @session ||= RequestStore[:test_track_session] end end
Version data entries
4 entries across 4 versions & 1 rubygems