Module: DeadBro::ArObjectTracker
- Defined in:
- lib/dead_bro/ar_object_tracker.rb
Constant Summary collapse
- THREAD_KEY =
:dead_bro_ar_objects
Class Method Summary collapse
Class Method Details
.start_request_tracking ⇒ Object
21 22 23 |
# File 'lib/dead_bro/ar_object_tracker.rb', line 21 def self.start_request_tracking Thread.current[THREAD_KEY] = 0 end |
.stop_request_tracking ⇒ Object
25 26 27 28 29 |
# File 'lib/dead_bro/ar_object_tracker.rb', line 25 def self.stop_request_tracking Thread.current[THREAD_KEY] ensure Thread.current[THREAD_KEY] = nil end |
.subscribe! ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/dead_bro/ar_object_tracker.rb', line 9 def self.subscribe! return if @subscribed @subscribed = true ActiveSupport::Notifications.subscribe("instantiation.active_record") do |_name, _started, _finished, _id, data| count = Thread.current[THREAD_KEY] next unless count Thread.current[THREAD_KEY] = count + (data[:record_count] || 1).to_i end rescue StandardError # Never raise from instrumentation install end |