module Mumukit::Nuntius::EventConsumer
Public Class Methods
handle(&block)
click to toggle source
# File lib/mumukit/nuntius/event_consumer.rb, line 31 def handle(&block) register_handlers! Builder.new.tap { |it| it.instance_eval(&block) }.build end
handle_event!(properties, body)
click to toggle source
# File lib/mumukit/nuntius/event_consumer.rb, line 54 def handle_event!(properties, body) return if body[:data][:sender] == Mumukit::Nuntius.config.app_name event = properties[:type] if handles? event @@handlers[event].call body[:data].except(:sender) else log_unknown_event event end rescue => e log_exception(event, e, body[:data]) end
handled_events()
click to toggle source
# File lib/mumukit/nuntius/event_consumer.rb, line 35 def handled_events @@handlers.keys end
handles?(event)
click to toggle source
# File lib/mumukit/nuntius/event_consumer.rb, line 50 def handles?(event) @@handlers.include? event end
log_exception(event, e, body)
click to toggle source
# File lib/mumukit/nuntius/event_consumer.rb, line 70 def log_exception(event, e, body) Mumukit::Nuntius::Logger.error "Failed to proccess #{event}, error was: #{e}, body was: #{body}" end
log_unknown_event(event)
click to toggle source
# File lib/mumukit/nuntius/event_consumer.rb, line 66 def log_unknown_event(event) Mumukit::Nuntius::Logger.info "Unhandled event: #{event} does not exists." end
register_handlers!(handlers)
click to toggle source
# File lib/mumukit/nuntius/event_consumer.rb, line 39 def register_handlers!(handlers) @@handlers = handlers end
start!()
click to toggle source
# File lib/mumukit/nuntius/event_consumer.rb, line 43 def start! queue_name = "#{Mumukit::Nuntius.config.app_name}-events" Mumukit::Nuntius::Consumer.start queue_name, 'events' do |_delivery_info, properties, body| handle_event!(properties, body) end end