Sha256: 2ba89283c526dd5c9fedb513fc4f725d8dd3f0896566d10dcb2412ea4b4d232d

Contents?: true

Size: 764 Bytes

Versions: 28

Compression:

Stored size: 764 Bytes

Contents

class TestTrack::ThreadedVisitorNotifier
  attr_reader :visitor

  def initialize(visitor)
    @visitor = visitor
  end

  def notify
    payload = {
      visitor_id: visitor.id,
      assignments: visitor.unsynced_assignments
    }
    ActiveSupport::Notifications.instrument('test_track.notify_unsynced_assignments', payload) do
      new_thread_with_request_store do
        TestTrack::UnsyncedAssignmentsNotifier.new(payload).notify
      end
    end
  end

  private

  def new_thread_with_request_store
    Thread.new(RequestStore.store) do |original_store|
      begin
        RequestStore.begin!
        RequestStore.store.merge!(original_store)
        yield
      ensure
        RequestStore.end!
        RequestStore.clear!
      end
    end
  end
end

Version data entries

28 entries across 28 versions & 1 rubygems

Version Path
test_track_rails_client-4.0.0.alpha35 app/models/test_track/threaded_visitor_notifier.rb
test_track_rails_client-4.0.0.alpha34 app/models/test_track/threaded_visitor_notifier.rb
test_track_rails_client-4.0.0.alpha33 app/models/test_track/threaded_visitor_notifier.rb
test_track_rails_client-4.0.0.alpha32 app/models/test_track/threaded_visitor_notifier.rb
test_track_rails_client-4.0.0.alpha31 app/models/test_track/threaded_visitor_notifier.rb
test_track_rails_client-4.0.0.alpha30 app/models/test_track/threaded_visitor_notifier.rb
test_track_rails_client-4.0.0.alpha29 app/models/test_track/threaded_visitor_notifier.rb
test_track_rails_client-4.0.0.alpha28 app/models/test_track/threaded_visitor_notifier.rb
test_track_rails_client-4.0.0.alpha27 app/models/test_track/threaded_visitor_notifier.rb
test_track_rails_client-4.0.0.alpha26 app/models/test_track/threaded_visitor_notifier.rb
test_track_rails_client-4.0.0.alpha25 app/models/test_track/threaded_visitor_notifier.rb
test_track_rails_client-4.0.0.alpha24 app/models/test_track/threaded_visitor_notifier.rb
test_track_rails_client-4.0.0.alpha23 app/models/test_track/threaded_visitor_notifier.rb
test_track_rails_client-4.0.0.alpha22 app/models/test_track/threaded_visitor_notifier.rb
test_track_rails_client-4.0.0.alpha21 app/models/test_track/threaded_visitor_notifier.rb
test_track_rails_client-4.0.0.alpha20 app/models/test_track/threaded_visitor_notifier.rb
test_track_rails_client-4.0.0.alpha19 app/models/test_track/threaded_visitor_notifier.rb
test_track_rails_client-4.0.0.alpha18 app/models/test_track/threaded_visitor_notifier.rb
test_track_rails_client-4.0.0.alpha17 app/models/test_track/threaded_visitor_notifier.rb
test_track_rails_client-4.0.0.alpha16 app/models/test_track/threaded_visitor_notifier.rb