Class: Bricolage::SQSDataSource::MessageHandler

Inherits:
Object
  • Object
show all
Defined in:
lib/bricolage/sqsdatasource.rb

Instance Method Summary collapse

Instance Method Details

#after_message_batchObject

Called after each message batch (ReceiveMessage) is processed. Override this method in subclasses on demand.



143
144
# File 'lib/bricolage/sqsdatasource.rb', line 143

def after_message_batch
end

#call_handler_method(msg) ⇒ Object



126
127
128
# File 'lib/bricolage/sqsdatasource.rb', line 126

def call_handler_method(msg)
  __send__(handler_method(msg), msg)
end

#handle(msg) ⇒ Object

abstract logger()



113
114
115
116
117
118
119
120
# File 'lib/bricolage/sqsdatasource.rb', line 113

def handle(msg)
  logger.debug "handling message: #{msg.inspect}" if logger.debug?
  if handleable?(msg)
    call_handler_method(msg)
  else
    handle_unknown(msg)
  end
end

#handle_unknown(msg) ⇒ Object

Unknown message handler. Feel free to override this method.



136
137
138
139
# File 'lib/bricolage/sqsdatasource.rb', line 136

def handle_unknown(msg)
  # just ignore unknown message to make app migration easy
  logger.error "unknown message type: #{msg.message_type.inspect} (message-id: #{msg.message_id})"
end

#handleable?(msg) ⇒ Boolean

Returns:

  • (Boolean)


122
123
124
# File 'lib/bricolage/sqsdatasource.rb', line 122

def handleable?(msg)
  respond_to?(handler_method(msg), true)
end

#handler_method(msg) ⇒ Object



130
131
132
# File 'lib/bricolage/sqsdatasource.rb', line 130

def handler_method(msg)
  "handle_#{msg.message_type}".intern
end