class ActionSubscriber::Middleware::Router

Constants

INSTRUMENT_KEY

Public Class Methods

new(app) click to toggle source
# File lib/action_subscriber/middleware/router.rb, line 7
def initialize(app)
  @app = app
end

Public Instance Methods

call(env) click to toggle source
# File lib/action_subscriber/middleware/router.rb, line 11
def call(env)
  action = env.action
  message_id = env.message_id
  queue = env.queue
  routing_key = env.routing_key
  subscriber = env.subscriber

  logger.info { "START #{message_id} #{subscriber}##{action}" }

  instrument_call(subscriber, routing_key, queue) do
    subscriber.run_action_with_filters(env, action)
  end

  logger.info { "FINISHED #{message_id}" }
end

Private Instance Methods

instrument_call(subscriber, routing_key, queue) { || ... } click to toggle source
# File lib/action_subscriber/middleware/router.rb, line 29
def instrument_call(subscriber, routing_key, queue)
  ::ActiveSupport::Notifications.instrument INSTRUMENT_KEY, :subscriber => subscriber.to_s, :routing_key => routing_key, :queue => queue do
    yield
  end
end