Class: Threatstack::Events::EventAccumulator

Inherits:
Object
  • Object
show all
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

Constructor Details

#initializeEventAccumulator

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_eventsObject



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_eventObject



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_eventsObject



20
21
22
# File 'lib/events/event_accumulator.rb', line 20

def total_events
  @events.length
end