Class: RailsWayback::RenderTracker
- Inherits:
-
Object
- Object
- RailsWayback::RenderTracker
- Defined in:
- lib/rails_wayback/render_tracker.rb
Overview
Collects render events for one request. A tracker can be shared with child execution contexts while keeping mutation and closure atomic.
Instance Method Summary collapse
- #close ⇒ Object
- #closed? ⇒ Boolean
- #entries ⇒ Object
-
#initialize ⇒ RenderTracker
constructor
A new instance of RenderTracker.
- #record(event:, identifier:) ⇒ Object
Constructor Details
#initialize ⇒ RenderTracker
Returns a new instance of RenderTracker.
7 8 9 10 11 |
# File 'lib/rails_wayback/render_tracker.rb', line 7 def initialize @entries = [] @mutex = Mutex.new @closed = false end |
Instance Method Details
#close ⇒ Object
26 27 28 |
# File 'lib/rails_wayback/render_tracker.rb', line 26 def close @mutex.synchronize { @closed = true } end |
#closed? ⇒ Boolean
30 31 32 |
# File 'lib/rails_wayback/render_tracker.rb', line 30 def closed? @mutex.synchronize { @closed } end |
#entries ⇒ Object
22 23 24 |
# File 'lib/rails_wayback/render_tracker.rb', line 22 def entries @mutex.synchronize { @entries.dup } end |
#record(event:, identifier:) ⇒ Object
13 14 15 16 17 18 19 20 |
# File 'lib/rails_wayback/render_tracker.rb', line 13 def record(event:, identifier:) @mutex.synchronize do next false if @closed @entries << { event: event.to_s, identifier: identifier.to_s }.freeze true end end |