Class: EventHub::MessageProcessor

Inherits:
Object
  • Object
show all
Defined in:
lib/eventhub/message_processor.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(processor) ⇒ MessageProcessor

Returns a new instance of MessageProcessor.



4
5
6
# File 'lib/eventhub/message_processor.rb', line 4

def initialize(processor)
  @processor = processor
end

Instance Attribute Details

#processorObject (readonly)

Returns the value of attribute processor.



2
3
4
# File 'lib/eventhub/message_processor.rb', line 2

def processor
  @processor
end

Instance Method Details

#process(params, payload) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/eventhub/message_processor.rb', line 8

def process(params, payload)
  messages_to_send = []

  # try to convert to EventHub message
  message = EventHub::Message.from_json(payload)
  EventHub.logger.info("-> #{message.to_s}")

  message.append_to_execution_history(self.processor.name)

  if message.invalid?
    messages_to_send << message
    EventHub.logger.info("-> #{message.to_s} => Put to queue [#{EventHub::EH_X_INBOUND}].")
  else
    # pass received message to handler or dervied handler
    if processor.method(:handle_message).arity == 1
      messages_to_send = Array(processor.handle_message(message))
    else
      messages_to_send = Array(processor.handle_message(message,params))
    end
  end

  messages_to_send
end