Class: Hackle::UserEventFactory

Inherits:
Object
  • Object
show all
Defined in:
lib/hackle/internal/event/user_event_factory.rb

Instance Method Summary collapse

Constructor Details

#initialize(clock:) ⇒ UserEventFactory

Returns a new instance of UserEventFactory.

Parameters:



8
9
10
11
# File 'lib/hackle/internal/event/user_event_factory.rb', line 8

def initialize(clock:)
  # @type [Clock]
  @clock = clock
end

Instance Method Details

#create(request, evaluation) ⇒ Array<UserEvent>

Parameters:

Returns:



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/hackle/internal/event/user_event_factory.rb', line 16

def create(request, evaluation)
  timestamp = @clock.current_millis
  events = []

  root_event = create_internal(request, evaluation, timestamp, PropertiesBuilder.new)
  events << root_event unless root_event.nil?

  evaluation.target_evaluations.each do |target_evaluation|
    properties_builder = PropertiesBuilder.new
    properties_builder.add('$targetingRootType', request.key.type)
    properties_builder.add('$targetingRootId', request.key.id)
    target_event = create_internal(request, target_evaluation, timestamp, properties_builder)
    events << target_event unless target_event.nil?
  end

  events
end