class WebValve::Instrumentation::Middleware

Constants

HOST
METHOD
PATH

Public Class Methods

new(app) click to toggle source
# File lib/webvalve/instrumentation/middleware.rb, line 10
def initialize(app)
  @app = app
end

Public Instance Methods

call(env) click to toggle source
# File lib/webvalve/instrumentation/middleware.rb, line 14
def call(env)
  ActiveSupport::Notifications.instrument('request.webvalve') do |payload|
    payload[:method] = env[METHOD]
    payload[:url] = env[PATH]
    payload[:host] = env[HOST]
    @app.call(env).tap do |status, _header, _body|
      payload[:status] = status
    end
  end
end