network_resiliency 0.6.5 → 0.6.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dda4e9b4c53597112ab927754e837d83a1e214afe622a4f0dc8ea85ee6aa3c9b
4
- data.tar.gz: 572f76610038089107a2709e8ccdebf68ee9495bb1d6a93d13391257000cb108
3
+ metadata.gz: 8cb7405c6ce983981b9eccdc8aa9c2b3b51020fc2ad8f525b5908621a7d5ceec
4
+ data.tar.gz: 6baa6fa692dc479082ffaa1805c7dd96e2815ae5bec9ccb6453452d8410c1db3
5
5
  SHA512:
6
- metadata.gz: 91d8f1f41e57faa483d8ec1e18211a60d00a87b5355d2c930481eee04f074b2199ca2bbcf22c91353764708949ed870bdd3be31b59caf56646ac2be15c14bc93
7
- data.tar.gz: 6272a3c665309e2e90f66e0ba578799b027372faf9e7a15c7bc9c7dda2112fa427b70cfd4bb11558b01161bd579f0bff1436da66898508396d692cf966bb91c5
6
+ metadata.gz: 8761514b5a55a983381df650817777c54679e13760c2af4e300b37dedb4ed820aa17b194f85a76b423b0ba0bd0ce645c724e1c10ae45ababaed621403d93ad14
7
+ data.tar.gz: a76fe8fc08364042547ff7a78ec13c598829e28e3140cfd462836c396419e29265aefa357874004c8627ff8310fadcc8f571dd0b9bb796508697a191353ebf50
data/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
1
+ ### v0.6.7 (2023-12-04)
2
+ - auto patch
3
+ - adapter stubbing
4
+
5
+ ### v0.6.6 (2023-11-29)
6
+ - path normalization
7
+ - http destination ordering
8
+
1
9
  ### v0.6.5 (2023-11-28)
2
10
  - per action modes
3
11
 
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- network_resiliency (0.6.5)
4
+ network_resiliency (0.6.7)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -104,10 +104,13 @@ module NetworkResiliency
104
104
  def transport_request(req, &block)
105
105
  return super unless NetworkResiliency.enabled?(:http)
106
106
 
107
+ # strip query params
108
+ path = URI.parse(req.path).path
109
+
107
110
  destination = [
108
- req.method.downcase,
109
111
  address,
110
- normalize_path(req.path),
112
+ req.method.downcase,
113
+ normalize_path(path),
111
114
  ].join(":")
112
115
 
113
116
  idepotent = Net::HTTP::IDEMPOTENT_METHODS_.include?(req.method)
@@ -1,3 +1,3 @@
1
1
  module NetworkResiliency
2
- VERSION = "0.6.5"
2
+ VERSION = "0.6.7"
3
3
  end
@@ -28,6 +28,14 @@ module NetworkResiliency
28
28
  yield self if block_given?
29
29
 
30
30
  Syncer.start(redis) if redis
31
+
32
+ unless @patched
33
+ # patch everything that's available
34
+ ADAPTERS.each do |adapter|
35
+ patch(adapter)
36
+ rescue LoadError, NotImplementedError
37
+ end
38
+ end
31
39
  end
32
40
 
33
41
  def patch(*adapters)
@@ -45,6 +53,8 @@ module NetworkResiliency
45
53
  raise NotImplementedError
46
54
  end
47
55
  end
56
+
57
+ @patched = true
48
58
  end
49
59
 
50
60
  def enabled?(adapter)
@@ -251,7 +261,7 @@ module NetworkResiliency
251
261
  warn "[ERROR] NetworkResiliency: #{e.class}: #{e.message}"
252
262
  end
253
263
 
254
- IP_ADDRESS_REGEX = Regexp.new(/\d{1,3}(\.\d{1,3}){3}/)
264
+ IP_ADDRESS_REGEX = /\d{1,3}(\.\d{1,3}){3}/
255
265
 
256
266
  def ignore_destination?(adapter, action, destination)
257
267
  # filter raw IP addresses
@@ -344,6 +354,7 @@ module NetworkResiliency
344
354
  @enabled = nil
345
355
  @mode = nil
346
356
  @normalize_request = nil
357
+ @patched = nil
347
358
  Thread.current["network_resiliency"] = nil
348
359
  StatsEngine.reset
349
360
  Syncer.stop
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: network_resiliency
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.5
4
+ version: 0.6.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Pepper
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-11-28 00:00:00.000000000 Z
11
+ date: 2023-12-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: byebug