network_resiliency 0.7.0 → 0.7.1

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: 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