Module: Gitlab::EventStore::Subscriber

Instance Method Summary collapse

Instance Method Details

#handle_event(event) ⇒ Object

Raises:

  • (NotImplementedError)


43
44
45
# File 'lib/gitlab/event_store/subscriber.rb', line 43

def handle_event(event)
  raise NotImplementedError, 'you must implement this methods in order to handle events'
end

#handle_event_in(delay, event) ⇒ Object



39
40
41
# File 'lib/gitlab/event_store/subscriber.rb', line 39

def handle_event_in(delay, event)
  self.class.perform_in(delay, event.class.name, event.data)
end

#perform(event_type, data) ⇒ Object

Raises:



29
30
31
32
33
34
35
36
37
# File 'lib/gitlab/event_store/subscriber.rb', line 29

def perform(event_type, data)
  raise InvalidEvent, event_type unless self.class.const_defined?(event_type)

  event_type_class = event_type.constantize

  Array.wrap(data).each do |single_event_data|
    handle_event(construct_event(event_type_class, single_event_data))
  end
end