Class: PubSubModelSync::MessageProcessor

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Base

config, debug?, log

Constructor Details

#initialize(payload, klass = nil, action = nil) ⇒ MessageProcessor

@Deprecated: def initialize(data, klass, action)

Parameters:

  • payload (Payload)

    : payload to be delivered



9
10
11
12
13
14
15
16
# File 'lib/pub_sub_model_sync/message_processor.rb', line 9

def initialize(payload, klass = nil, action = nil)
  @payload = payload
  return if @payload.is_a?(Payload)

  # support for deprecated
  log('Deprecated: Use Payload instead of new(data, klass, action)')
  @payload = PubSubModelSync::Payload.new(payload, { klass: klass, action: action })
end

Instance Attribute Details

#payloadObject

Returns the value of attribute payload.



5
6
7
# File 'lib/pub_sub_model_sync/message_processor.rb', line 5

def payload
  @payload
end

Instance Method Details

#processObject



27
28
29
30
31
# File 'lib/pub_sub_model_sync/message_processor.rb', line 27

def process
  process!
rescue => e
  config.on_error_processing.call(e, { payload: payload })
end

#process!Object



18
19
20
21
22
23
24
25
# File 'lib/pub_sub_model_sync/message_processor.rb', line 18

def process!
  subscribers = filter_subscribers
  log("No subscribers found for #{payload.uuid}", :warn) if config.debug && subscribers.empty?
  subscribers.each(&method(:run_subscriber))
rescue => e
  print_error(e)
  raise
end