class Hanami::Events::CloudPubsub::Subscriber

Subscriber class for calling subscriber blocks, with extra support for passing the raw message.

@since 0.1.0

@api private

Public Class Methods

new(event_name, handler, logger = nil, data_struct_class = nil) click to toggle source
Calls superclass method
# File lib/hanami/events/cloud_pubsub/subscriber.rb, line 13
def initialize(event_name, handler, logger = nil, data_struct_class = nil)
  super
  @handler = handler
end

Public Instance Methods

call(event_name, payload, message) click to toggle source
# File lib/hanami/events/cloud_pubsub/subscriber.rb, line 18
def call(event_name, payload, message)
  return unless @pattern_matcher.match?(event_name)

  data_object = @data_struct_class ? @data_struct_class.new(payload) : payload

  if @handler.arity == 2
    @handler.call(data_object, message)
  else
    @handler.call(data_object)
  end
end