Sha256: 21dd055bcd9c21f118bd9f974119f08114b745a94e602d229f288ea71e269269

Contents?: true

Size: 771 Bytes

Versions: 2

Compression:

Stored size: 771 Bytes

Contents

class TestTrack::LazyVisitorByIdentity
  def initialize(identity)
    @identity = identity
  end

  def loaded?
    @visitor.present?
  end

  def id_loaded?
    loaded?
  end

  private

  def method_missing(method, *args, &block)
    __visitor__.send(method, *args, &block)
  end

  def respond_to_missing?(method, include_private = false)
    super || __visitor__.respond_to?(method, include_private)
  end

  def __visitor__
    @visitor ||= __load_visitor__
  end

  def __load_visitor__
    remote_visitor = TestTrack::Remote::Visitor.from_identifier(
      @identity.test_track_identifier_type,
      @identity.test_track_identifier_value
    )
    TestTrack::Visitor.new(
      id: remote_visitor.id,
      assignments: remote_visitor.assignments
    )
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
test_track_rails_client-4.0.0.alpha35 app/models/test_track/lazy_visitor_by_identity.rb
test_track_rails_client-4.0.0.alpha34 app/models/test_track/lazy_visitor_by_identity.rb