lib/ddtrace/contrib/faraday/patcher.rb in ddtrace-0.38.0 vs lib/ddtrace/contrib/faraday/patcher.rb in ddtrace-0.39.0

- old
+ new

@@ -39,16 +39,25 @@ ::Faraday::Middleware.register_middleware(ddtrace: Middleware) end def add_default_middleware! if target_version >= Gem::Version.new('1.0.0') + # Patch the default connection (e.g. +Faraday.get+) + ::Faraday.default_connection.use(:ddtrace) + + # Patch new connection instances (e.g. +Faraday.new+) ::Faraday::Connection.send(:prepend, Connection) else + # Patch the default connection (e.g. +Faraday.get+) + # + # We insert our middleware before the 'adapter', which is + # always the last handler. + idx = ::Faraday.default_connection.builder.handlers.size - 1 + ::Faraday.default_connection.builder.insert(idx, Middleware) + + # Patch new connection instances (e.g. +Faraday.new+) ::Faraday::RackBuilder.send(:prepend, RackBuilder) end - - # Instrument the Faraday default connection (e.g. +Faraday.get+) - ::Faraday.default_connection.use(:ddtrace) end def get_option(option) Datadog.configuration[:faraday].get_option(option) end