Class: Threatstack::Events::EventAccumulator
- Inherits:
-
Object
- Object
- Threatstack::Events::EventAccumulator
- Includes:
- Singleton
- Defined in:
- lib/events/event_accumulator.rb
Overview
Singleton class that handles temporarily caching events until they’re sent to the back end
Instance Method Summary collapse
- #add_event(event) ⇒ Object
- #clear_events ⇒ Object
-
#initialize ⇒ EventAccumulator
constructor
A new instance of EventAccumulator.
- #remove_event ⇒ Object
- #remove_events(num) ⇒ Object
- #total_events ⇒ Object
Constructor Details
#initialize ⇒ EventAccumulator
Returns a new instance of EventAccumulator.
15 16 17 18 |
# File 'lib/events/event_accumulator.rb', line 15 def initialize @events = Threatstack::Utils::CappedQueue.new Threatstack::Constants::MAX_QUEUED_EVENTS @logger = Threatstack::Utils::TSLogger.create 'EventAccumulator' end |
Instance Method Details
#add_event(event) ⇒ Object
24 25 26 27 |
# File 'lib/events/event_accumulator.rb', line 24 def add_event(event) @events.push(event) @logger.debug "Added event - New Total: #{@events.length}" end |
#clear_events ⇒ Object
39 40 41 42 |
# File 'lib/events/event_accumulator.rb', line 39 def clear_events @logger.debug "Clearing events - Total: #{@events.length}" @events.clear end |
#remove_event ⇒ Object
29 30 31 |
# File 'lib/events/event_accumulator.rb', line 29 def remove_event @events.shift end |
#remove_events(num) ⇒ Object
33 34 35 36 37 |
# File 'lib/events/event_accumulator.rb', line 33 def remove_events(num) ev = @events.shift(num) @logger.debug "Removed #{ev.length} event(s) - New Total: #{@events.length}" ev end |
#total_events ⇒ Object
20 21 22 |
# File 'lib/events/event_accumulator.rb', line 20 def total_events @events.length end |