Sha256: c118a553c7cd90cf004c40762e2e0c2d15c05c2d833f1d7978628a5428e23efe
Contents?: true
Size: 988 Bytes
Versions: 3
Compression:
Stored size: 988 Bytes
Contents
class TestTrack::JobSession def manage raise ArgumentError, "must provide block to `manage`" unless block_given? original_job_session = RequestStore[:test_track_job_session] RequestStore[:test_track_job_session] = self yield ensure notify_unsynced_assignments! RequestStore[:test_track_job_session] = original_job_session end def visitor_dsl_for(identity) raise "must be called within `manage` block" if RequestStore[:test_track_job_session].nil? TestTrack::VisitorDSL.new(for_identity(identity)) end private def for_identity(identity) identity_visitor_map[identity] ||= TestTrack::LazyVisitorByIdentity.new(identity) end def notify_unsynced_assignments! identity_visitor_map.each_value do |visitor| if visitor.loaded? && visitor.unsynced_assignments.present? TestTrack::ThreadedVisitorNotifier.new(visitor).notify end end end def identity_visitor_map @identity_visitor_map ||= {} end end
Version data entries
3 entries across 3 versions & 1 rubygems