Class: Gitlab::InternalEvents::EventsRouter

Inherits:
Object
  • Object
show all
Includes:
Utils::StrongMemoize
Defined in:
lib/gitlab/internal_events/events_router.rb

Instance Method Summary collapse

Constructor Details

#initialize(event_name, additional_properties, kwargs) ⇒ EventsRouter

Returns a new instance of EventsRouter.



8
9
10
11
12
# File 'lib/gitlab/internal_events/events_router.rb', line 8

def initialize(event_name, additional_properties, kwargs)
  @event_name = event_name
  @additional_properties = additional_properties
  @kwargs = kwargs
end

Instance Method Details

#event_definitionObject



19
20
21
# File 'lib/gitlab/internal_events/events_router.rb', line 19

def event_definition
  Gitlab::Tracking::EventDefinition.find(event_name)
end

#extra_tracking_data(properties) ⇒ Object



24
25
26
27
28
# File 'lib/gitlab/internal_events/events_router.rb', line 24

def extra_tracking_data(properties)
  additional_properties.slice(*properties[:protected_properties])
    .merge(public_additional_properties)
    .merge(kwargs)
end

#public_additional_propertiesObject



14
15
16
17
# File 'lib/gitlab/internal_events/events_router.rb', line 14

def public_additional_properties
  public_properties = event_definition.additional_properties.keys
  additional_properties.slice(*public_properties)
end