Class: Hackle::UserEvent

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

Direct Known Subclasses

ExposureEvent, RemoteConfigEvent, TrackEvent

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(insert_id:, timestamp:, user:) ⇒ UserEvent

Returns a new instance of UserEvent.

Parameters:

  • insert_id (String)
  • timestamp (Integer)
  • user (HackleUser)


20
21
22
23
24
# File 'lib/hackle/internal/event/user_event.rb', line 20

def initialize(insert_id:, timestamp:, user:)
  @insert_id = insert_id
  @timestamp = timestamp
  @user = user
end

Instance Attribute Details

#insert_idString (readonly)

Returns:

  • (String)


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

def insert_id
  @insert_id
end

#timestampInteger (readonly)

Returns:

  • (Integer)


12
13
14
# File 'lib/hackle/internal/event/user_event.rb', line 12

def timestamp
  @timestamp
end

#userHackleUser (readonly)

Returns:



15
16
17
# File 'lib/hackle/internal/event/user_event.rb', line 15

def user
  @user
end

Class Method Details

.exposure(evaluation, properties, user, timestamp) ⇒ Hackle::ExposureEvent

Parameters:

Returns:



33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/hackle/internal/event/user_event.rb', line 33

def exposure(evaluation, properties, user, timestamp)
  ExposureEvent.new(
    insert_id: SecureRandom.uuid,
    timestamp: timestamp,
    user: user,
    experiment: evaluation.experiment,
    variation_id: evaluation.variation_id,
    variation_key: evaluation.variation_key,
    decision_reason: evaluation.reason,
    properties: properties
  )
end

.remote_config(evaluation, properties, user, timestamp) ⇒ Hackle::RemoteConfigEvent

Parameters:

Returns:



66
67
68
69
70
71
72
73
74
75
76
# File 'lib/hackle/internal/event/user_event.rb', line 66

def remote_config(evaluation, properties, user, timestamp)
  RemoteConfigEvent.new(
    insert_id: SecureRandom.uuid,
    timestamp: timestamp,
    user: user,
    parameter: evaluation.parameter,
    value_id: evaluation.value_id,
    decision_reason: evaluation.reason,
    properties: properties
  )
end

.track(event_type, event, user, timestamp) ⇒ Hackle::TrackEvent

Parameters:

Returns:



51
52
53
54
55
56
57
58
59
# File 'lib/hackle/internal/event/user_event.rb', line 51

def track(event_type, event, user, timestamp)
  TrackEvent.new(
    insert_id: SecureRandom.uuid,
    timestamp: timestamp,
    user: user,
    event_type: event_type,
    event: event
  )
end