Sha256: eb4baed9580865641f03a04f08aa676b0c58d1ed929b1ade246d5a9b1eb27c9b

Contents?: true

Size: 1.02 KB

Versions: 11

Compression:

Stored size: 1.02 KB

Contents

# frozen_string_literal: true

require 'airbrake/rack/user'
require 'airbrake/rack/user_filter'
require 'airbrake/rack/context_filter'
require 'airbrake/rack/session_filter'
require 'airbrake/rack/http_params_filter'
require 'airbrake/rack/http_headers_filter'
require 'airbrake/rack/request_body_filter'
require 'airbrake/rack/route_filter'
require 'airbrake/rack/middleware'
require 'airbrake/rack/request_store'
require 'airbrake/rack/instrumentable'

module Airbrake
  # Rack is a namespace for all Rack-related code.
  module Rack
    # @since v9.2.0
    # @api public
    def self.capture_timing(label)
      return yield unless Airbrake::Config.instance.performance_stats

      routes = Airbrake::Rack::RequestStore[:routes]
      if !routes || routes.none?
        result = yield
      else
        timed_trace = Airbrake::TimedTrace.span(label) do
          result = yield
        end

        routes.each do |_route_path, params|
          params[:groups].merge!(timed_trace.spans)
        end
      end

      result
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
airbrake-13.0.5 lib/airbrake/rack.rb
airbrake-13.0.4 lib/airbrake/rack.rb
airbrake-13.0.3 lib/airbrake/rack.rb
airbrake-13.0.2 lib/airbrake/rack.rb
airbrake-13.0.1 lib/airbrake/rack.rb
airbrake-13.0.0 lib/airbrake/rack.rb
airbrake-12.0.0 lib/airbrake/rack.rb
airbrake-11.0.3 lib/airbrake/rack.rb
airbrake-11.0.2 lib/airbrake/rack.rb
airbrake-11.0.1 lib/airbrake/rack.rb
airbrake-11.0.0 lib/airbrake/rack.rb