Skip to content

Commit 155b6d8

Browse files
authored
Merge pull request #431 from splitio/deprecate-old-versions
Deprecating support for ruby 2.3 and 2.4
2 parents 6056481 + 9e8bfa4 commit 155b6d8

11 files changed

Lines changed: 31 additions & 132 deletions

File tree

.rubocop.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ Naming/FileName:
5252
- splitclient-rb.gemspec
5353

5454
AllCops:
55-
TargetRubyVersion: 2.3.6
55+
TargetRubyVersion: 2.5
5656
Exclude:
5757
- gemfiles/* # excluded as appraisal generates them with errors
5858
- lib/*

Appraisals

Lines changed: 0 additions & 10 deletions
This file was deleted.

Rakefile

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
require 'bundler/gem_tasks'
44
require 'rspec/core/rake_task'
55
require 'rubocop/rake_task'
6-
require 'appraisal'
76

87
Dir['tasks/**/*.rake'].each { |rake| load rake }
98

@@ -26,10 +25,4 @@ else
2625
end
2726
end
2827

29-
if !ENV['APPRAISAL_INITIALIZED']
30-
task :default do
31-
sh 'appraisal install && rake appraisal && rake rubocop'
32-
end
33-
else
34-
task default: %i[spec rubocop]
35-
end
28+
task default: %i[spec rubocop]

lib/splitclient-rb.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@
4949
require 'splitclient-rb/split_factory_registry'
5050

5151
require 'splitclient-rb/engine/api/faraday_middleware/gzip'
52-
require 'splitclient-rb/engine/api/faraday_adapter/patched_net_http_persistent'
5352
require 'splitclient-rb/engine/api/client'
5453
require 'splitclient-rb/engine/api/impressions'
5554
require 'splitclient-rb/engine/api/segments'

lib/splitclient-rb/engine/api/client.rb

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
# frozen_string_literal: true
22

3-
require 'net/http/persistent'
4-
53
module SplitIoClient
64
module Api
75
class Client
@@ -54,33 +52,12 @@ def post_api(url, api_key, data, headers = {}, params = {})
5452
private
5553

5654
def api_client
57-
if needs_patched_net_http_persistent_adapter?
58-
require 'splitclient-rb/engine/api/faraday_adapter/patched_net_http_persistent'
59-
60-
Faraday::Adapter.register_middleware(
61-
net_http_persistent: SplitIoClient::FaradayAdapter::PatchedNetHttpPersistent
62-
)
63-
end
64-
6555
@api_client ||= Faraday.new do |builder|
6656
builder.use SplitIoClient::FaradayMiddleware::Gzip
6757
builder.adapter :net_http_persistent
6858
end
6959
end
7060

71-
def needs_patched_net_http_persistent_adapter?
72-
new_net_http_persistent? && incompatible_faraday_version?
73-
end
74-
75-
def incompatible_faraday_version?
76-
version = Faraday::VERSION.split('.')[0..1]
77-
version[0].to_i == 0 && version[1].to_i < 13
78-
end
79-
80-
def new_net_http_persistent?
81-
Net::HTTP::Persistent::VERSION.split('.').first.to_i >= 3
82-
end
83-
8461
def common_headers(api_key)
8562
{
8663
'Authorization' => "Bearer #{api_key}",

lib/splitclient-rb/engine/api/faraday_adapter/patched_net_http_persistent.rb

Lines changed: 0 additions & 46 deletions
This file was deleted.

lib/splitclient-rb/engine/push_manager.rb

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -41,17 +41,20 @@ def stop_sse
4141
private
4242

4343
def schedule_next_token_refresh(time)
44-
@config.threads[:schedule_next_token_refresh] = Thread.new do
45-
begin
46-
@config.logger.debug("schedule_next_token_refresh refresh in #{time} seconds.") if @config.debug_enabled
47-
sleep(time)
48-
@config.logger.debug('schedule_next_token_refresh starting ...') if @config.debug_enabled
49-
@sse_handler.stop
50-
start_sse
51-
rescue StandardError => e
52-
@config.logger.debug("schedule_next_token_refresh error: #{e.inspect}") if @config.debug_enabled
53-
end
54-
end
44+
@config.threads[:schedule_next_token_refresh] = Thread.new { refresh_token_task(time) }
45+
end
46+
47+
def refresh_token_task(time)
48+
@config.logger.debug("schedule_next_token_refresh refresh in #{time} seconds.") if @config.debug_enabled
49+
50+
sleep(time)
51+
52+
@config.logger.debug('schedule_next_token_refresh starting ...') if @config.debug_enabled
53+
@sse_handler.stop
54+
55+
start_sse
56+
rescue StandardError => e
57+
@config.logger.debug("schedule_next_token_refresh error: #{e.inspect}") if @config.debug_enabled
5558
end
5659

5760
def record_telemetry(time)

lib/splitclient-rb/telemetry/sync_task.rb

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,21 +15,21 @@ def call
1515
private
1616

1717
def stats_thread
18-
@config.threads[:telemetry_stats_sender] = Thread.new do
19-
begin
20-
@config.logger.info('Starting Telemetry Sync Task')
18+
@config.threads[:telemetry_stats_sender] = Thread.new { telemetry_sync_task }
19+
end
2120

22-
loop do
23-
sleep(@config.telemetry_refresh_rate)
21+
def telemetry_sync_task
22+
@config.logger.info('Starting Telemetry Sync Task')
2423

25-
@telemetry_synchronizer.synchronize_stats
26-
end
27-
rescue SplitIoClient::SDKShutdownException
28-
@telemetry_synchronizer.synchronize_stats
24+
loop do
25+
sleep(@config.telemetry_refresh_rate)
2926

30-
@config.logger.info('Posting Telemetry due to shutdown')
31-
end
27+
@telemetry_synchronizer.synchronize_stats
3228
end
29+
rescue SplitIoClient::SDKShutdownException
30+
@telemetry_synchronizer.synchronize_stats
31+
32+
@config.logger.info('Posting Telemetry due to shutdown')
3333
end
3434
end
3535
end

lib/splitclient-rb/version.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
module SplitIoClient
2-
VERSION = '7.3.5.pre.rc5'
2+
VERSION = '8.0.0.pre.rc1'
33
end

spec/engine/api/client_spec.rb

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -23,20 +23,5 @@
2323

2424
expect { described_class.new(@default_config).post_api(url, api_key, data) }.not_to raise_error
2525
end
26-
27-
if described_class.new(@default_config).send(:needs_patched_net_http_persistent_adapter?)
28-
it 'uses PatchedNetHttpPersistent middleware' do
29-
url = 'https://example.org?hello=world'
30-
api_key = 'abc-def-ghi'
31-
params = { hello: :world }
32-
33-
stub_request(:get, url).to_return(status: 200)
34-
35-
expect_any_instance_of(SplitIoClient::FaradayAdapter::PatchedNetHttpPersistent)
36-
.to receive(:net_http_connection).and_call_original
37-
38-
described_class.new(@default_config).get_api(url, api_key, params)
39-
end
40-
end
4126
end
4227
end

0 commit comments

Comments
 (0)