Sha256: 064c93bc210ee5cb0cf1f23b9dccfaaa6fed4bb77d9f43927eec6021094c5d55

Contents?: true

Size: 834 Bytes

Versions: 29

Compression:

Stored size: 834 Bytes

Contents

class TestTrack::IdentitySessionLocator
  attr_reader :identity

  def initialize(identity)
    @identity = identity
  end

  def with_visitor
    raise ArgumentError, "must provide block to `with_visitor`" unless block_given?

    if web_context?
      yield session.visitor_dsl_for(identity)
    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 web_context?
    session.present?
  end

  def session
    @session ||= RequestStore[:test_track_session]
  end
end

Version data entries

29 entries across 29 versions & 1 rubygems

Version Path
test_track_rails_client-4.0.0.alpha29 app/models/test_track/identity_session_locator.rb
test_track_rails_client-4.0.0.alpha28 app/models/test_track/identity_session_locator.rb
test_track_rails_client-4.0.0.alpha27 app/models/test_track/identity_session_locator.rb
test_track_rails_client-4.0.0.alpha26 app/models/test_track/identity_session_locator.rb
test_track_rails_client-4.0.0.alpha25 app/models/test_track/identity_session_locator.rb
test_track_rails_client-4.0.0.alpha24 app/models/test_track/identity_session_locator.rb
test_track_rails_client-4.0.0.alpha23 app/models/test_track/identity_session_locator.rb
test_track_rails_client-4.0.0.alpha22 app/models/test_track/identity_session_locator.rb
test_track_rails_client-4.0.0.alpha21 app/models/test_track/identity_session_locator.rb
test_track_rails_client-4.0.0.alpha20 app/models/test_track/identity_session_locator.rb
test_track_rails_client-4.0.0.alpha19 app/models/test_track/identity_session_locator.rb
test_track_rails_client-4.0.0.alpha18 app/models/test_track/identity_session_locator.rb
test_track_rails_client-4.0.0.alpha17 app/models/test_track/identity_session_locator.rb
test_track_rails_client-4.0.0.alpha16 app/models/test_track/identity_session_locator.rb
test_track_rails_client-4.0.0.alpha15 app/models/test_track/identity_session_locator.rb
test_track_rails_client-4.0.0.alpha14 app/models/test_track/identity_session_locator.rb
test_track_rails_client-4.0.0.alpha13 app/models/test_track/identity_session_locator.rb
test_track_rails_client-4.0.0.alpha12 app/models/test_track/identity_session_locator.rb
test_track_rails_client-4.0.0.alpha11 app/models/test_track/identity_session_locator.rb
test_track_rails_client-4.0.0.alpha10 app/models/test_track/identity_session_locator.rb