From 760d2d567028799d115487a2247a5efecc6637ca Mon Sep 17 00:00:00 2001
From: ce07c3 <ce07c3@gmail.com>
Date: Wed, 8 Jul 2020 00:19:04 +0200
Subject: [PATCH 1/5] Adjust `perform` override and call HTTP features wrapping
 request/response pairs.

The change helps reduce differences between mocking and not mocking to successfully test e.g. instrumentation which the `http` gem exposes through said features.
---
 lib/webmock/http_lib_adapters/http_rb/client.rb | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/lib/webmock/http_lib_adapters/http_rb/client.rb b/lib/webmock/http_lib_adapters/http_rb/client.rb
index b343cf182..374b2538d 100644
--- a/lib/webmock/http_lib_adapters/http_rb/client.rb
+++ b/lib/webmock/http_lib_adapters/http_rb/client.rb
@@ -4,7 +4,11 @@ class Client
 
     def perform(request, options)
       return __perform__(request, options) unless webmock_enabled?
-      WebMockPerform.new(request) { __perform__(request, options) }.exec
+       
+      response = options.features.inject(response) do |response, (_name, feature)|
+        feature.wrap_response(response)
+      end
+      response
     end
 
     def webmock_enabled?

From f78f9d79719c4af901a0674cadc0d35b5d0a41ad Mon Sep 17 00:00:00 2001
From: Carl <ce07c3@gmail.com>
Date: Wed, 8 Jul 2020 10:32:36 +0200
Subject: [PATCH 2/5] Added missing line / copy-paste problem.

---
 lib/webmock/http_lib_adapters/http_rb/client.rb | 1 +
 1 file changed, 1 insertion(+)

diff --git a/lib/webmock/http_lib_adapters/http_rb/client.rb b/lib/webmock/http_lib_adapters/http_rb/client.rb
index 374b2538d..8d6a76378 100644
--- a/lib/webmock/http_lib_adapters/http_rb/client.rb
+++ b/lib/webmock/http_lib_adapters/http_rb/client.rb
@@ -5,6 +5,7 @@ class Client
     def perform(request, options)
       return __perform__(request, options) unless webmock_enabled?
        
+      response = WebMockPerform.new(request) { __perform__(request, options) }.exec
       response = options.features.inject(response) do |response, (_name, feature)|
         feature.wrap_response(response)
       end

From f78ab0afae7b3e1f3713bfcac10b1cb0cff6075c Mon Sep 17 00:00:00 2001
From: Carl <ce07c3@gmail.com>
Date: Fri, 4 Dec 2020 11:15:21 +0100
Subject: [PATCH 3/5] Removed whitespace.

---
 lib/webmock/http_lib_adapters/http_rb/client.rb | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/webmock/http_lib_adapters/http_rb/client.rb b/lib/webmock/http_lib_adapters/http_rb/client.rb
index 8d6a76378..418fe1a0b 100644
--- a/lib/webmock/http_lib_adapters/http_rb/client.rb
+++ b/lib/webmock/http_lib_adapters/http_rb/client.rb
@@ -4,7 +4,7 @@ class Client
 
     def perform(request, options)
       return __perform__(request, options) unless webmock_enabled?
-       
+
       response = WebMockPerform.new(request) { __perform__(request, options) }.exec
       response = options.features.inject(response) do |response, (_name, feature)|
         feature.wrap_response(response)

From 90e7ed8398045a0496b9b6071516c8246e10dd40 Mon Sep 17 00:00:00 2001
From: Carl <ce07c3@gmail.com>
Date: Tue, 15 Dec 2020 00:30:25 +0100
Subject: [PATCH 4/5] Avoid shadowing.

Co-authored-by: Alexey Zapparov <alexey@zapparov.com>
---
 lib/webmock/http_lib_adapters/http_rb/client.rb | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/lib/webmock/http_lib_adapters/http_rb/client.rb b/lib/webmock/http_lib_adapters/http_rb/client.rb
index 418fe1a0b..0b2269e7f 100644
--- a/lib/webmock/http_lib_adapters/http_rb/client.rb
+++ b/lib/webmock/http_lib_adapters/http_rb/client.rb
@@ -6,9 +6,9 @@ def perform(request, options)
       return __perform__(request, options) unless webmock_enabled?
 
       response = WebMockPerform.new(request) { __perform__(request, options) }.exec
-      response = options.features.inject(response) do |response, (_name, feature)|
-        feature.wrap_response(response)
-      end
+      
+      options.features.each { |_name, feature| response = feature.wrap_response(response) }
+      
       response
     end
 

From f730b4f214408aff580da7d757946d960d6cc6c3 Mon Sep 17 00:00:00 2001
From: Carl <ce07c3@gmail.com>
Date: Tue, 15 Dec 2020 11:10:57 +0100
Subject: [PATCH 5/5] Fixed whitespace issues.

---
 lib/webmock/http_lib_adapters/http_rb/client.rb | 2 --
 1 file changed, 2 deletions(-)

diff --git a/lib/webmock/http_lib_adapters/http_rb/client.rb b/lib/webmock/http_lib_adapters/http_rb/client.rb
index 0b2269e7f..476e55119 100644
--- a/lib/webmock/http_lib_adapters/http_rb/client.rb
+++ b/lib/webmock/http_lib_adapters/http_rb/client.rb
@@ -6,9 +6,7 @@ def perform(request, options)
       return __perform__(request, options) unless webmock_enabled?
 
       response = WebMockPerform.new(request) { __perform__(request, options) }.exec
-      
       options.features.each { |_name, feature| response = feature.wrap_response(response) }
-      
       response
     end