Sha256: d9a7f2ae27db95d41e69f67c2f8e5c5d4b4f6e116b02a33397584b8617d72931

Contents?: true

Size: 957 Bytes

Versions: 7

Compression:

Stored size: 957 Bytes

Contents

module Skylight
  module Normalizers
    module Faraday
      class Request < Normalizer
        register "request.faraday"

        DISABLED_KEY = :__skylight_faraday_disabled

        def self.disable
          Thread.current[DISABLED_KEY] = true
          yield
        ensure
          Thread.current[DISABLED_KEY] = false
        end

        def disabled?
          !!Thread.current[DISABLED_KEY]
        end

        def normalize(_trace, _name, payload)
          uri = payload[:url]

          if disabled?
            return :skip
          end

          opts = Formatters::HTTP.build_opts(payload[:method], uri.scheme,
          uri.host, uri.port, uri.path, uri.query)
          description = opts[:title]

          # We use "Faraday" as the title to differentiate it in the UI in 
          # case it's wrapping or is wrapped by another HTTP backend
          [opts[:category], "Faraday", description]
        end
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
skylight-1.7.2 lib/skylight/normalizers/faraday/request.rb
skylight-1.7.1 lib/skylight/normalizers/faraday/request.rb
skylight-1.7.0 lib/skylight/normalizers/faraday/request.rb
skylight-1.6.1 lib/skylight/normalizers/faraday/request.rb
skylight-1.6.0 lib/skylight/normalizers/faraday/request.rb
skylight-1.5.1 lib/skylight/normalizers/faraday/request.rb
skylight-1.5.0 lib/skylight/normalizers/faraday/request.rb