class ReportPortal::EventBus
@api private
Attributes
event_types[R]
Public Class Methods
new()
click to toggle source
# File lib/report_portal/event_bus.rb, line 8 def initialize @event_types = { prepare_start_item_request: Events::PrepareStartItemRequest } @handlers = {} end
Public Instance Methods
broadcast(event_name, **attributes)
click to toggle source
# File lib/report_portal/event_bus.rb, line 19 def broadcast(event_name, **attributes) event = event_types.fetch(event_name).new(**attributes) handlers_for(event_name).each { |handler| handler.call(event) } end
on(event_name, &proc)
click to toggle source
# File lib/report_portal/event_bus.rb, line 15 def on(event_name, &proc) handlers_for(event_name) << proc end
Private Instance Methods
handlers_for(event_name)
click to toggle source
# File lib/report_portal/event_bus.rb, line 26 def handlers_for(event_name) @handlers[event_name] ||= [] end