class LaunchDarkly::EventSummarizer
Manages the state of summarizable information for the EventProcessor
, including the event counters and user deduplication. Note that the methods of this class are deliberately not thread-safe; the EventProcessor
is responsible for enforcing synchronization across both the summarizer and the event queue.
@private
Public Class Methods
new()
click to toggle source
# File lib/ldclient-rb/event_summarizer.rb, line 13 def initialize clear end
Public Instance Methods
clear()
click to toggle source
# File lib/ldclient-rb/event_summarizer.rb, line 49 def clear @start_date = 0 @end_date = 0 @counters = {} end
snapshot()
click to toggle source
Returns a snapshot of the current summarized event data, and resets this state.
# File lib/ldclient-rb/event_summarizer.rb, line 44 def snapshot ret = EventSummary.new(@start_date, @end_date, @counters) ret end
summarize_event(event)
click to toggle source
Adds this event to our counters, if it is a type of event we need to count.
# File lib/ldclient-rb/event_summarizer.rb, line 18 def summarize_event(event) if event[:kind] == "feature" counter_key = { key: event[:key], version: event[:version], variation: event[:variation] } c = @counters[counter_key] if c.nil? @counters[counter_key] = { value: event[:value], default: event[:default], count: 1 } else c[:count] = c[:count] + 1 end time = event[:creationDate] if !time.nil? @start_date = time if @start_date == 0 || time < @start_date @end_date = time if time > @end_date end end end