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