Class: ReactOnRailsPro::Stream::RendererServerTimingAttemptCollector

Inherits:
Object
  • Object
show all
Defined in:
lib/react_on_rails_pro/concerns/stream.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(collector:, previous_attempt_collector:) ⇒ RendererServerTimingAttemptCollector

Returns a new instance of RendererServerTimingAttemptCollector.



135
136
137
138
139
# File 'lib/react_on_rails_pro/concerns/stream.rb', line 135

def initialize(collector:, previous_attempt_collector:)
  @collector = collector
  @previous_attempt_collector = previous_attempt_collector
  @appended_entries = []
end

Instance Attribute Details

#collectorObject (readonly)

Returns the value of attribute collector.



133
134
135
# File 'lib/react_on_rails_pro/concerns/stream.rb', line 133

def collector
  @collector
end

#previous_attempt_collectorObject (readonly)

Returns the value of attribute previous_attempt_collector.



133
134
135
# File 'lib/react_on_rails_pro/concerns/stream.rb', line 133

def previous_attempt_collector
  @previous_attempt_collector
end

Instance Method Details

#append(entry, collector:) ⇒ Object



141
142
143
144
145
# File 'lib/react_on_rails_pro/concerns/stream.rb', line 141

def append(entry, collector:)
  return unless collector.equal?(@collector)

  @appended_entries << entry
end

#remove_appended_entriesObject



147
148
149
150
151
152
153
154
# File 'lib/react_on_rails_pro/concerns/stream.rb', line 147

def remove_appended_entries
  appended_entries = {}.compare_by_identity
  @appended_entries.each do |entry|
    appended_entries[entry] = true
  end

  @collector.delete_if { |entry| appended_entries[entry] }
end