network_resiliency 0.7.0 → 0.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0b05ddc43d74cc05325b32b3a45cbc1377bee1228c2c2f8ad7f2fd717ed7b49f
4
- data.tar.gz: 8a9b5274e52a3ebc039f00e4aad18af9a7c2e645a7a246fd9e45cc474bbfb50b
3
+ metadata.gz: e8e570cbf267a9b9469004a731f7ea7379db90cee1b42fb15e18aae35d92d561
4
+ data.tar.gz: dc6e164d063b4266ca4ba36dd5ef8da210119c51058386eac7d997e38c6733bd
5
5
  SHA512:
6
- metadata.gz: ffe3b488a66c2721a25a3a995a007ff89a822d4ea2b85638b370535a4895968c5e74084ef89ee7a9bc97a325beba410f74e4ce2ecf4c941e99b00bc3f07daf4a
7
- data.tar.gz: 5632e5111b856b1fc9d34b31f8d099b584491dbb9beb623ddcff016a058b8f839900fe65554ef60619930843b5b98c4137b92f15722c5040547632b91ec5ac7e
6
+ metadata.gz: 3235234a8290a169e922f4b0531ee2d00dc398ad15d3c1a97fb7f2c1ffb79aa4f4c69d492e019e540fa005daaf08149b862ee26f156af34b014bbf0cf20c7c9c
7
+ data.tar.gz: 4f85c6de88904ab51fb4cf1804b3f3ec9b20441779e8e282baebc5eadb232d3c770b6f9a0f1f91d78afcb1256648dfa678803c46337b46049cf4b7b42b7267fb
data/CHANGELOG.md CHANGED
@@ -1,3 +1,6 @@
1
+ ### v0.7.1 (2023-12-12)
2
+ - observe! and fix mode recursion
3
+
1
4
  ### v0.7.0 (2023-12-11)
2
5
  - proc support for mode
3
6
  - rails adapater and deadline
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- network_resiliency (0.7.0)
4
+ network_resiliency (0.7.1)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -87,16 +87,16 @@ GEM
87
87
  concurrent-ruby (1.2.2)
88
88
  connection_pool (2.4.1)
89
89
  crass (1.0.6)
90
- datadog-ci (0.2.0)
90
+ datadog-ci (0.5.1)
91
91
  msgpack
92
92
  date (3.3.4)
93
- ddtrace (1.15.0)
94
- datadog-ci (~> 0.2.0)
95
- debase-ruby_core_source (= 3.2.2)
93
+ ddtrace (1.18.0)
94
+ datadog-ci (~> 0.5.0)
95
+ debase-ruby_core_source (= 3.2.3)
96
96
  libdatadog (~> 5.0.0.1.0)
97
97
  libddwaf (~> 1.14.0.0.0)
98
98
  msgpack
99
- debase-ruby_core_source (3.2.2)
99
+ debase-ruby_core_source (3.2.3)
100
100
  diff-lcs (1.5.0)
101
101
  docile (1.4.0)
102
102
  dogstatsd-ruby (4.8.3)
@@ -1,3 +1,3 @@
1
1
  module NetworkResiliency
2
- VERSION = "0.7.0"
2
+ VERSION = "0.7.1"
3
3
  end
@@ -66,8 +66,7 @@ module NetworkResiliency
66
66
 
67
67
  if @enabled.is_a?(Proc)
68
68
  # prevent recursive calls
69
- enabled = @enabled
70
- disable! { !!enabled.call(adapter) }
69
+ disable! { !!@enabled.call(adapter) }
71
70
  else
72
71
  @enabled
73
72
  end
@@ -84,7 +83,6 @@ module NetworkResiliency
84
83
  end
85
84
 
86
85
  def enable!
87
- original = @enabled
88
86
  thread_state["enabled"] = true
89
87
 
90
88
  yield if block_given?
@@ -93,7 +91,6 @@ module NetworkResiliency
93
91
  end
94
92
 
95
93
  def disable!
96
- original = @enabled
97
94
  thread_state["enabled"] = false
98
95
 
99
96
  yield if block_given?
@@ -111,8 +108,11 @@ module NetworkResiliency
111
108
  raise ArgumentError, "invalid NetworkResiliency action: #{action}"
112
109
  end
113
110
 
111
+ return thread_state[:mode] if thread_state.key?(:mode)
112
+
114
113
  mode = if @mode.is_a?(Proc)
115
- @mode.call(action)
114
+ # prevent recursion
115
+ observe! { @mode.call(action) }
116
116
  elsif @mode
117
117
  @mode[action]
118
118
  end || :observe
@@ -164,7 +164,15 @@ module NetworkResiliency
164
164
  ACTIONS.each { |action| @mode[action] = mode }
165
165
  end
166
166
 
167
- @mode.freeze
167
+ @mode.freeze if @mode.is_a?(Hash)
168
+ end
169
+
170
+ def observe!
171
+ thread_state[:mode] = :observe
172
+
173
+ yield if block_given?
174
+ ensure
175
+ thread_state.delete(:mode) if block_given?
168
176
  end
169
177
 
170
178
  def deadline
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.7.0
4
+ version: 0.7.1
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-12-11 00:00:00.000000000 Z
11
+ date: 2023-12-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: byebug