splitclient-rb 7.3.2.pre.rc5-java → 7.3.3-java

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
  SHA1:
3
- metadata.gz: c917976eb6355b62f027e7ef26c09500cc178036
4
- data.tar.gz: c46a506b6827f1e82d0b2ba93e1999fb36aefc44
3
+ metadata.gz: 77986ee9dc5cf888ad1ea011c373e1ad043bc511
4
+ data.tar.gz: 1df4f2b6c7a0f8a94f2fa43ebef96d809e18b318
5
5
  SHA512:
6
- metadata.gz: a3d0cb16db7dcaf8c2988b965532e479f54be59b850bc1a04f1f45c049812740eac4544828eeb382d0748dd00b1d45379bada72e2088c0266b1ef4260eb64a70
7
- data.tar.gz: 90e841e898379408d6a3104e97ed1f065abba0a46a6d01b9ecc6f04e9d42cd38d01164b0b6440747e04fb174621620666808ea17e8e9706647d7aafb9662b811
6
+ metadata.gz: d07637c238982ba19dd9513c9bdc04c23d305c39a0bfe045e579230f39ae9fc31d47dbc58027451cdeee2d8b6050d31b7988cf24aaeabf4e8049377734f432c0
7
+ data.tar.gz: 18321bb8760ef5a02fad01e68a994ef65df3323a0e60b1b72224dd5caa0a7aa0c704c742cdef70550b259b7d22c87356ef08f69f11928f0d43ea106309aa20fc
data/.rubocop.yml CHANGED
@@ -64,3 +64,5 @@ AllCops:
64
64
  - lib/splitclient-rb/engine/parser/**/*
65
65
  - spec/telemetry/synchronizer_spec.rb
66
66
  - lib/splitclient-rb/engine/synchronizer.rb
67
+ - tmp/**/*
68
+ - lib/splitclient-rb/sse/event_source/client.rb
data/CHANGES.txt CHANGED
@@ -1,6 +1,16 @@
1
1
  CHANGES
2
2
 
3
- 7.3.2 (Dec 3, 2021)
3
+ 7.3.3 (Jan 28, 2021)
4
+ - Fixed edge cases where the sdk lost streaming connection.
5
+ - Updated default auth service url to https://auth.split.io/api/v2/auth
6
+ - Updated dependencies:
7
+ - faraday to >= 0.8, < 2.0
8
+ - net-http-persistent to >= 2.9, < 5.0
9
+ - redis to >= 4.0.0, < 5.0
10
+ - socketry to >= 0.4, < 1.0
11
+ - thread_safe to ~> 0.3
12
+
13
+ 7.3.2 (Dec 10, 2021)
4
14
  - Updated the readiness flow to be more consistent with the other sdks and improve the readiness time.
5
15
  - Updated the name of telemety key latencies in Redis.
6
16
 
@@ -15,15 +15,10 @@ module SplitIoClient
15
15
  def call
16
16
  if ENV['SPLITCLIENT_ENV'] == 'test'
17
17
  fetch_segments
18
- else
19
- segments_thread
20
-
21
- if defined?(PhusionPassenger)
22
- PhusionPassenger.on_event(:starting_worker_process) do |forked|
23
- segments_thread if forked
24
- end
25
- end
18
+ return
26
19
  end
20
+
21
+ segments_thread
27
22
  end
28
23
 
29
24
  def fetch_segments_if_not_exists(names, cache_control_headers = false)
@@ -15,15 +15,10 @@ module SplitIoClient
15
15
  def call
16
16
  if ENV['SPLITCLIENT_ENV'] == 'test'
17
17
  fetch_splits
18
- else
19
- splits_thread
20
-
21
- if defined?(PhusionPassenger)
22
- PhusionPassenger.on_event(:starting_worker_process) do |forked|
23
- splits_thread if forked
24
- end
25
- end
18
+ return
26
19
  end
20
+
21
+ splits_thread
27
22
  end
28
23
 
29
24
  def fetch_splits(fetch_options = { cache_control_headers: false, till: nil })
@@ -11,12 +11,6 @@ module SplitIoClient
11
11
 
12
12
  def call
13
13
  events_thread
14
-
15
- if defined?(PhusionPassenger)
16
- PhusionPassenger.on_event(:starting_worker_process) do |forked|
17
- events_thread if forked
18
- end
19
- end
20
14
  end
21
15
 
22
16
  private
@@ -14,12 +14,6 @@ module SplitIoClient
14
14
 
15
15
  def call
16
16
  impressions_count_thread
17
-
18
- if defined?(PhusionPassenger)
19
- PhusionPassenger.on_event(:starting_worker_process) do |forked|
20
- impressions_count_thread if forked
21
- end
22
- end
23
17
  end
24
18
 
25
19
  private
@@ -12,12 +12,6 @@ module SplitIoClient
12
12
 
13
13
  def call
14
14
  impressions_thread
15
-
16
- if defined?(PhusionPassenger)
17
- PhusionPassenger.on_event(:starting_worker_process) do |forked|
18
- impressions_thread if forked
19
- end
20
- end
21
15
  end
22
16
 
23
17
  private
@@ -34,7 +34,6 @@ module SplitIoClient
34
34
  end
35
35
 
36
36
  def stop_sse
37
- @sse_handler.process_disconnect if @sse_handler.sse_client.nil?
38
37
  @sse_handler.stop
39
38
  SplitIoClient::Helpers::ThreadHelper.stop(:schedule_next_token_refresh, @config)
40
39
  end
@@ -56,10 +56,6 @@ module SplitIoClient
56
56
  if @config.streaming_enabled
57
57
  @config.logger.debug('Starting Straming mode ...')
58
58
  connected = @push_manager.start_sse
59
-
60
- if defined?(PhusionPassenger)
61
- PhusionPassenger.on_event(:starting_worker_process) { |forked| sse_thread_forked if forked }
62
- end
63
59
  end
64
60
 
65
61
  unless connected
@@ -140,6 +136,7 @@ module SplitIoClient
140
136
  record_telemetry(Telemetry::Domain::Constants::SYNC_MODE, SYNC_MODE_POLLING)
141
137
 
142
138
  if reconnect
139
+ @push_manager.stop_sse
143
140
  @synchronizer.sync_all
144
141
  @push_manager.start_sse
145
142
  end
@@ -150,11 +147,6 @@ module SplitIoClient
150
147
  def record_telemetry(type, data)
151
148
  @telemetry_runtime_producer.record_streaming_event(type, data)
152
149
  end
153
-
154
- def sse_thread_forked
155
- connected = @push_manager.start_sse
156
- @synchronizer.start_periodic_fetch unless connected
157
- end
158
150
  end
159
151
  end
160
152
  end
@@ -8,7 +8,6 @@ module SplitIoClient
8
8
 
9
9
  unless thread.nil?
10
10
  config.logger.debug("Stopping #{thread_sym} thread...") if config.debug_enabled
11
- sleep(0.1) while thread.status == 'run'
12
11
  Thread.kill(thread)
13
12
  end
14
13
  rescue StandardError => e
@@ -329,7 +329,7 @@ module SplitIoClient
329
329
  end
330
330
 
331
331
  def self.default_auth_service_url
332
- 'https://auth.split.io/api/auth'
332
+ 'https://auth.split.io/api/v2/auth'
333
333
  end
334
334
 
335
335
  def self.default_auth_retry_back_off_base
@@ -35,11 +35,15 @@ module SplitIoClient
35
35
  @on[:action] = action
36
36
  end
37
37
 
38
- def close(action = Constants::PUSH_NONRETRYABLE_ERROR)
39
- dispatch_action(action)
38
+ def close(action = nil)
39
+ unless connected?
40
+ @config.logger.error('SSEClient already disconected.') if @config.debug_enabled
41
+ return
42
+ end
43
+
40
44
  @connected.make_false
41
- SplitIoClient::Helpers::ThreadHelper.stop(:connect_stream, @config)
42
45
  @socket&.close
46
+ dispatch_action(action) unless action.nil?
43
47
  rescue StandardError => e
44
48
  @config.logger.error("SSEClient close Error: #{e.inspect}")
45
49
  end
@@ -72,12 +76,14 @@ module SplitIoClient
72
76
  def connect_thread(latch)
73
77
  @config.threads[:connect_stream] = Thread.new do
74
78
  @config.logger.info('Starting connect_stream thread ...') if @config.debug_enabled
75
- connect_stream(latch)
79
+ action = connect_stream(latch)
80
+ dispatch_action(action) unless action.nil?
81
+ @config.logger.info('connect_stream thread finished.') if @config.debug_enabled
76
82
  end
77
83
  end
78
84
 
79
85
  def connect_stream(latch)
80
- socket_write(latch)
86
+ return Constants::PUSH_NONRETRYABLE_ERROR unless socket_write(latch)
81
87
 
82
88
  while connected? || @first_event.value
83
89
  begin
@@ -86,24 +92,30 @@ module SplitIoClient
86
92
  read_first_event(partial_data, latch)
87
93
 
88
94
  raise 'eof exception' if partial_data == :eof
95
+ rescue Errno::EBADF, IOError => e
96
+ @config.logger.error(e.inspect)
97
+ return nil
89
98
  rescue StandardError => e
90
- @config.logger.error('Error reading partial data: ' + e.inspect) if @config.debug_enabled
91
- close(Constants::PUSH_RETRYABLE_ERROR)
92
- return
99
+ return nil if ENV['SPLITCLIENT_ENV'] == 'test'
100
+
101
+ @config.logger.error("Error reading partial data: #{e.inspect}") if @config.debug_enabled
102
+ return Constants::PUSH_RETRYABLE_ERROR
93
103
  end
94
104
 
95
105
  process_data(partial_data)
96
106
  end
107
+ nil
97
108
  end
98
109
 
99
110
  def socket_write(latch)
100
111
  @first_event.make_true
101
112
  @socket = socket_connect
102
113
  @socket.write(build_request(@uri))
114
+ true
103
115
  rescue StandardError => e
104
116
  @config.logger.error("Error during connecting to #{@uri.host}. Error: #{e.inspect}")
105
- close(Constants::PUSH_NONRETRYABLE_ERROR)
106
117
  latch.count_down
118
+ false
107
119
  end
108
120
 
109
121
  def read_first_event(data, latch)
@@ -181,8 +193,10 @@ module SplitIoClient
181
193
  end
182
194
 
183
195
  def dispatch_action(action)
184
- @config.logger.debug("Dispatching action: #{action}") if @config.debug_enabled
185
- @on[:action].call(action)
196
+ @config.threads[:dispatch_action] = Thread.new do
197
+ @config.logger.debug("Dispatching action: #{action}") if @config.debug_enabled
198
+ @on[:action].call(action)
199
+ end
186
200
  end
187
201
  end
188
202
  end
@@ -31,7 +31,7 @@ module SplitIoClient
31
31
  end
32
32
 
33
33
  def stop
34
- @sse_client.close
34
+ @sse_client.close(Constants::PUSH_NONRETRYABLE_ERROR)
35
35
  stop_workers
36
36
  rescue StandardError => e
37
37
  @config.logger.debug("SSEHandler stop error: #{e.inspect}") if @config.debug_enabled
@@ -13,11 +13,6 @@ module SplitIoClient
13
13
  end
14
14
 
15
15
  def add_to_queue(change_number, segment_name)
16
- unless @running.value
17
- @config.logger.debug('segments worker not running.')
18
- return
19
- end
20
-
21
16
  item = { change_number: change_number, segment_name: segment_name }
22
17
  @config.logger.debug("SegmentsWorker add to queue #{item}")
23
18
  @queue.push(item)
@@ -61,10 +56,6 @@ module SplitIoClient
61
56
  perform
62
57
  end
63
58
  end
64
-
65
- def perform_passenger_forked
66
- PhusionPassenger.on_event(:starting_worker_process) { |forked| perform_thread if forked }
67
- end
68
59
  end
69
60
  end
70
61
  end
@@ -33,21 +33,11 @@ module SplitIoClient
33
33
  end
34
34
 
35
35
  def add_to_queue(change_number)
36
- unless @running.value
37
- @config.logger.debug('splits worker not running.')
38
- return
39
- end
40
-
41
36
  @config.logger.debug("SplitsWorker add to queue #{change_number}")
42
37
  @queue.push(change_number)
43
38
  end
44
39
 
45
40
  def kill_split(change_number, split_name, default_treatment)
46
- unless @running.value
47
- @config.logger.debug('splits worker not running.')
48
- return
49
- end
50
-
51
41
  return if @splits_repository.get_change_number.to_i > change_number
52
42
 
53
43
  @config.logger.debug("SplitsWorker kill #{split_name}, #{change_number}")
@@ -70,10 +60,6 @@ module SplitIoClient
70
60
  perform
71
61
  end
72
62
  end
73
-
74
- def perform_passenger_forked
75
- PhusionPassenger.on_event(:starting_worker_process) { |forked| perform_thread if forked }
76
- end
77
63
  end
78
64
  end
79
65
  end
@@ -10,8 +10,6 @@ module SplitIoClient
10
10
 
11
11
  def call
12
12
  stats_thread
13
-
14
- PhusionPassenger.on_event(:starting_worker_process) { |forked| stats_thread if forked } if defined?(PhusionPassenger)
15
13
  end
16
14
 
17
15
  private
@@ -1,3 +1,3 @@
1
1
  module SplitIoClient
2
- VERSION = '7.3.2.pre.rc5'
2
+ VERSION = '7.3.3'
3
3
  end
@@ -36,27 +36,27 @@ Gem::Specification.new do |spec|
36
36
  spec.extensions = ['ext/murmurhash/extconf.rb']
37
37
  end
38
38
 
39
- spec.add_development_dependency 'allocation_stats'
40
- spec.add_development_dependency 'appraisal'
39
+ spec.add_development_dependency 'allocation_stats', '~> 0.1'
40
+ spec.add_development_dependency 'appraisal', '~> 2.4'
41
41
  spec.add_development_dependency 'bundler', '~> 2.2'
42
- spec.add_development_dependency 'pry'
43
- spec.add_development_dependency 'pry-nav'
44
- spec.add_development_dependency 'rake', '12.3.3'
45
- spec.add_development_dependency 'rake-compiler'
46
- spec.add_development_dependency 'rspec'
42
+ spec.add_development_dependency 'pry', '~> 0.14'
43
+ spec.add_development_dependency 'pry-nav', '~> 1.0'
44
+ spec.add_development_dependency 'rake', '~> 12.3'
45
+ spec.add_development_dependency 'rake-compiler', '~> 1.1'
46
+ spec.add_development_dependency 'rspec', '~> 3.10'
47
47
  spec.add_development_dependency 'rubocop', '0.59.0'
48
- spec.add_development_dependency 'simplecov', '0.20.0'
49
- spec.add_development_dependency 'simplecov-json'
50
- spec.add_development_dependency 'timecop'
51
- spec.add_development_dependency 'webmock'
48
+ spec.add_development_dependency 'simplecov', '~> 0.20'
49
+ spec.add_development_dependency 'simplecov-json', '~> 0.2'
50
+ spec.add_development_dependency 'timecop', '~> 0.9'
51
+ spec.add_development_dependency 'webmock', '~> 3.14'
52
52
 
53
53
  spec.add_runtime_dependency 'concurrent-ruby', '~> 1.0'
54
- spec.add_runtime_dependency 'faraday', '>= 0.8'
55
- spec.add_runtime_dependency 'json', '>= 1.8'
56
- spec.add_runtime_dependency 'jwt', '>= 2.2.1'
57
- spec.add_runtime_dependency 'lru_redux'
58
- spec.add_runtime_dependency 'net-http-persistent', '>= 2.9'
59
- spec.add_runtime_dependency 'redis', '>= 4.2.2'
60
- spec.add_runtime_dependency 'socketry', '~> 0.5.1'
61
- spec.add_runtime_dependency 'thread_safe', '>= 0.3'
54
+ spec.add_runtime_dependency 'faraday', '>= 0.8', '< 2.0'
55
+ spec.add_runtime_dependency 'json', '>= 1.8', '< 3.0'
56
+ spec.add_runtime_dependency 'jwt', '>= 1.0.0', '< 3.0'
57
+ spec.add_runtime_dependency 'lru_redux', '~> 1.1'
58
+ spec.add_runtime_dependency 'net-http-persistent', '>= 2.9', '< 5.0'
59
+ spec.add_runtime_dependency 'redis', '>= 4.0.0', '< 5.0'
60
+ spec.add_runtime_dependency 'socketry', '>= 0.4', '< 1.0'
61
+ spec.add_runtime_dependency 'thread_safe', '~> 0.3'
62
62
  end
metadata CHANGED
@@ -1,43 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: splitclient-rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.3.2.pre.rc5
4
+ version: 7.3.3
5
5
  platform: java
6
6
  authors:
7
7
  - Split Software
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-12-02 00:00:00.000000000 Z
11
+ date: 2022-01-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
15
15
  requirements:
16
- - - ">="
16
+ - - "~>"
17
17
  - !ruby/object:Gem::Version
18
- version: '0'
18
+ version: '0.1'
19
19
  name: allocation_stats
20
20
  prerelease: false
21
21
  type: :development
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0'
26
+ version: '0.1'
27
27
  - !ruby/object:Gem::Dependency
28
28
  requirement: !ruby/object:Gem::Requirement
29
29
  requirements:
30
- - - ">="
30
+ - - "~>"
31
31
  - !ruby/object:Gem::Version
32
- version: '0'
32
+ version: '2.4'
33
33
  name: appraisal
34
34
  prerelease: false
35
35
  type: :development
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0'
40
+ version: '2.4'
41
41
  - !ruby/object:Gem::Dependency
42
42
  requirement: !ruby/object:Gem::Requirement
43
43
  requirements:
@@ -55,73 +55,73 @@ dependencies:
55
55
  - !ruby/object:Gem::Dependency
56
56
  requirement: !ruby/object:Gem::Requirement
57
57
  requirements:
58
- - - ">="
58
+ - - "~>"
59
59
  - !ruby/object:Gem::Version
60
- version: '0'
60
+ version: '0.14'
61
61
  name: pry
62
62
  prerelease: false
63
63
  type: :development
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '0'
68
+ version: '0.14'
69
69
  - !ruby/object:Gem::Dependency
70
70
  requirement: !ruby/object:Gem::Requirement
71
71
  requirements:
72
- - - ">="
72
+ - - "~>"
73
73
  - !ruby/object:Gem::Version
74
- version: '0'
74
+ version: '1.0'
75
75
  name: pry-nav
76
76
  prerelease: false
77
77
  type: :development
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ">="
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '0'
82
+ version: '1.0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  requirement: !ruby/object:Gem::Requirement
85
85
  requirements:
86
- - - '='
86
+ - - "~>"
87
87
  - !ruby/object:Gem::Version
88
- version: 12.3.3
88
+ version: '12.3'
89
89
  name: rake
90
90
  prerelease: false
91
91
  type: :development
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - '='
94
+ - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: 12.3.3
96
+ version: '12.3'
97
97
  - !ruby/object:Gem::Dependency
98
98
  requirement: !ruby/object:Gem::Requirement
99
99
  requirements:
100
- - - ">="
100
+ - - "~>"
101
101
  - !ruby/object:Gem::Version
102
- version: '0'
102
+ version: '1.1'
103
103
  name: rake-compiler
104
104
  prerelease: false
105
105
  type: :development
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ">="
108
+ - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: '0'
110
+ version: '1.1'
111
111
  - !ruby/object:Gem::Dependency
112
112
  requirement: !ruby/object:Gem::Requirement
113
113
  requirements:
114
- - - ">="
114
+ - - "~>"
115
115
  - !ruby/object:Gem::Version
116
- version: '0'
116
+ version: '3.10'
117
117
  name: rspec
118
118
  prerelease: false
119
119
  type: :development
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - ">="
122
+ - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: '0'
124
+ version: '3.10'
125
125
  - !ruby/object:Gem::Dependency
126
126
  requirement: !ruby/object:Gem::Requirement
127
127
  requirements:
@@ -139,59 +139,59 @@ dependencies:
139
139
  - !ruby/object:Gem::Dependency
140
140
  requirement: !ruby/object:Gem::Requirement
141
141
  requirements:
142
- - - '='
142
+ - - "~>"
143
143
  - !ruby/object:Gem::Version
144
- version: 0.20.0
144
+ version: '0.20'
145
145
  name: simplecov
146
146
  prerelease: false
147
147
  type: :development
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
- - - '='
150
+ - - "~>"
151
151
  - !ruby/object:Gem::Version
152
- version: 0.20.0
152
+ version: '0.20'
153
153
  - !ruby/object:Gem::Dependency
154
154
  requirement: !ruby/object:Gem::Requirement
155
155
  requirements:
156
- - - ">="
156
+ - - "~>"
157
157
  - !ruby/object:Gem::Version
158
- version: '0'
158
+ version: '0.2'
159
159
  name: simplecov-json
160
160
  prerelease: false
161
161
  type: :development
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
- - - ">="
164
+ - - "~>"
165
165
  - !ruby/object:Gem::Version
166
- version: '0'
166
+ version: '0.2'
167
167
  - !ruby/object:Gem::Dependency
168
168
  requirement: !ruby/object:Gem::Requirement
169
169
  requirements:
170
- - - ">="
170
+ - - "~>"
171
171
  - !ruby/object:Gem::Version
172
- version: '0'
172
+ version: '0.9'
173
173
  name: timecop
174
174
  prerelease: false
175
175
  type: :development
176
176
  version_requirements: !ruby/object:Gem::Requirement
177
177
  requirements:
178
- - - ">="
178
+ - - "~>"
179
179
  - !ruby/object:Gem::Version
180
- version: '0'
180
+ version: '0.9'
181
181
  - !ruby/object:Gem::Dependency
182
182
  requirement: !ruby/object:Gem::Requirement
183
183
  requirements:
184
- - - ">="
184
+ - - "~>"
185
185
  - !ruby/object:Gem::Version
186
- version: '0'
186
+ version: '3.14'
187
187
  name: webmock
188
188
  prerelease: false
189
189
  type: :development
190
190
  version_requirements: !ruby/object:Gem::Requirement
191
191
  requirements:
192
- - - ">="
192
+ - - "~>"
193
193
  - !ruby/object:Gem::Version
194
- version: '0'
194
+ version: '3.14'
195
195
  - !ruby/object:Gem::Dependency
196
196
  requirement: !ruby/object:Gem::Requirement
197
197
  requirements:
@@ -212,6 +212,9 @@ dependencies:
212
212
  - - ">="
213
213
  - !ruby/object:Gem::Version
214
214
  version: '0.8'
215
+ - - "<"
216
+ - !ruby/object:Gem::Version
217
+ version: '2.0'
215
218
  name: faraday
216
219
  prerelease: false
217
220
  type: :runtime
@@ -220,12 +223,18 @@ dependencies:
220
223
  - - ">="
221
224
  - !ruby/object:Gem::Version
222
225
  version: '0.8'
226
+ - - "<"
227
+ - !ruby/object:Gem::Version
228
+ version: '2.0'
223
229
  - !ruby/object:Gem::Dependency
224
230
  requirement: !ruby/object:Gem::Requirement
225
231
  requirements:
226
232
  - - ">="
227
233
  - !ruby/object:Gem::Version
228
234
  version: '1.8'
235
+ - - "<"
236
+ - !ruby/object:Gem::Version
237
+ version: '3.0'
229
238
  name: json
230
239
  prerelease: false
231
240
  type: :runtime
@@ -234,12 +243,18 @@ dependencies:
234
243
  - - ">="
235
244
  - !ruby/object:Gem::Version
236
245
  version: '1.8'
246
+ - - "<"
247
+ - !ruby/object:Gem::Version
248
+ version: '3.0'
237
249
  - !ruby/object:Gem::Dependency
238
250
  requirement: !ruby/object:Gem::Requirement
239
251
  requirements:
240
252
  - - ">="
241
253
  - !ruby/object:Gem::Version
242
- version: 2.2.1
254
+ version: 1.0.0
255
+ - - "<"
256
+ - !ruby/object:Gem::Version
257
+ version: '3.0'
243
258
  name: jwt
244
259
  prerelease: false
245
260
  type: :runtime
@@ -247,27 +262,33 @@ dependencies:
247
262
  requirements:
248
263
  - - ">="
249
264
  - !ruby/object:Gem::Version
250
- version: 2.2.1
265
+ version: 1.0.0
266
+ - - "<"
267
+ - !ruby/object:Gem::Version
268
+ version: '3.0'
251
269
  - !ruby/object:Gem::Dependency
252
270
  requirement: !ruby/object:Gem::Requirement
253
271
  requirements:
254
- - - ">="
272
+ - - "~>"
255
273
  - !ruby/object:Gem::Version
256
- version: '0'
274
+ version: '1.1'
257
275
  name: lru_redux
258
276
  prerelease: false
259
277
  type: :runtime
260
278
  version_requirements: !ruby/object:Gem::Requirement
261
279
  requirements:
262
- - - ">="
280
+ - - "~>"
263
281
  - !ruby/object:Gem::Version
264
- version: '0'
282
+ version: '1.1'
265
283
  - !ruby/object:Gem::Dependency
266
284
  requirement: !ruby/object:Gem::Requirement
267
285
  requirements:
268
286
  - - ">="
269
287
  - !ruby/object:Gem::Version
270
288
  version: '2.9'
289
+ - - "<"
290
+ - !ruby/object:Gem::Version
291
+ version: '5.0'
271
292
  name: net-http-persistent
272
293
  prerelease: false
273
294
  type: :runtime
@@ -276,12 +297,18 @@ dependencies:
276
297
  - - ">="
277
298
  - !ruby/object:Gem::Version
278
299
  version: '2.9'
300
+ - - "<"
301
+ - !ruby/object:Gem::Version
302
+ version: '5.0'
279
303
  - !ruby/object:Gem::Dependency
280
304
  requirement: !ruby/object:Gem::Requirement
281
305
  requirements:
282
306
  - - ">="
283
307
  - !ruby/object:Gem::Version
284
- version: 4.2.2
308
+ version: 4.0.0
309
+ - - "<"
310
+ - !ruby/object:Gem::Version
311
+ version: '5.0'
285
312
  name: redis
286
313
  prerelease: false
287
314
  type: :runtime
@@ -289,25 +316,34 @@ dependencies:
289
316
  requirements:
290
317
  - - ">="
291
318
  - !ruby/object:Gem::Version
292
- version: 4.2.2
319
+ version: 4.0.0
320
+ - - "<"
321
+ - !ruby/object:Gem::Version
322
+ version: '5.0'
293
323
  - !ruby/object:Gem::Dependency
294
324
  requirement: !ruby/object:Gem::Requirement
295
325
  requirements:
296
- - - "~>"
326
+ - - ">="
327
+ - !ruby/object:Gem::Version
328
+ version: '0.4'
329
+ - - "<"
297
330
  - !ruby/object:Gem::Version
298
- version: 0.5.1
331
+ version: '1.0'
299
332
  name: socketry
300
333
  prerelease: false
301
334
  type: :runtime
302
335
  version_requirements: !ruby/object:Gem::Requirement
303
336
  requirements:
304
- - - "~>"
337
+ - - ">="
338
+ - !ruby/object:Gem::Version
339
+ version: '0.4'
340
+ - - "<"
305
341
  - !ruby/object:Gem::Version
306
- version: 0.5.1
342
+ version: '1.0'
307
343
  - !ruby/object:Gem::Dependency
308
344
  requirement: !ruby/object:Gem::Requirement
309
345
  requirements:
310
- - - ">="
346
+ - - "~>"
311
347
  - !ruby/object:Gem::Version
312
348
  version: '0.3'
313
349
  name: thread_safe
@@ -315,7 +351,7 @@ dependencies:
315
351
  type: :runtime
316
352
  version_requirements: !ruby/object:Gem::Requirement
317
353
  requirements:
318
- - - ">="
354
+ - - "~>"
319
355
  - !ruby/object:Gem::Version
320
356
  version: '0.3'
321
357
  description: Ruby client for using split SDK.
@@ -478,9 +514,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
478
514
  version: '0'
479
515
  required_rubygems_version: !ruby/object:Gem::Requirement
480
516
  requirements:
481
- - - ">"
517
+ - - ">="
482
518
  - !ruby/object:Gem::Version
483
- version: 1.3.1
519
+ version: '0'
484
520
  requirements: []
485
521
  rubyforge_project:
486
522
  rubygems_version: 2.6.14