Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .rubocop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ Naming/FileName:
- splitclient-rb.gemspec

AllCops:
TargetRubyVersion: 2.3.6
TargetRubyVersion: 2.5
Exclude:
- gemfiles/* # excluded as appraisal generates them with errors
- lib/*
Expand Down
10 changes: 0 additions & 10 deletions Appraisals

This file was deleted.

9 changes: 1 addition & 8 deletions Rakefile
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
require 'bundler/gem_tasks'
require 'rspec/core/rake_task'
require 'rubocop/rake_task'
require 'appraisal'

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

Expand All @@ -26,10 +25,4 @@ else
end
end

if !ENV['APPRAISAL_INITIALIZED']
task :default do
sh 'appraisal install && rake appraisal && rake rubocop'
end
else
task default: %i[spec rubocop]
end
task default: %i[spec rubocop]
1 change: 0 additions & 1 deletion lib/splitclient-rb.rb
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,6 @@
require 'splitclient-rb/split_factory_registry'

require 'splitclient-rb/engine/api/faraday_middleware/gzip'
require 'splitclient-rb/engine/api/faraday_adapter/patched_net_http_persistent'
require 'splitclient-rb/engine/api/client'
require 'splitclient-rb/engine/api/impressions'
require 'splitclient-rb/engine/api/segments'
Expand Down
23 changes: 0 additions & 23 deletions lib/splitclient-rb/engine/api/client.rb
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
# frozen_string_literal: true

require 'net/http/persistent'

module SplitIoClient
module Api
class Client
Expand Down Expand Up @@ -54,33 +52,12 @@ def post_api(url, api_key, data, headers = {}, params = {})
private

def api_client
if needs_patched_net_http_persistent_adapter?
require 'splitclient-rb/engine/api/faraday_adapter/patched_net_http_persistent'

Faraday::Adapter.register_middleware(
net_http_persistent: SplitIoClient::FaradayAdapter::PatchedNetHttpPersistent
)
end

@api_client ||= Faraday.new do |builder|
builder.use SplitIoClient::FaradayMiddleware::Gzip
builder.adapter :net_http_persistent
end
end

def needs_patched_net_http_persistent_adapter?
new_net_http_persistent? && incompatible_faraday_version?
end

def incompatible_faraday_version?
version = Faraday::VERSION.split('.')[0..1]
version[0].to_i == 0 && version[1].to_i < 13
end

def new_net_http_persistent?
Net::HTTP::Persistent::VERSION.split('.').first.to_i >= 3
end

def common_headers(api_key)
{
'Authorization' => "Bearer #{api_key}",
Expand Down

This file was deleted.

25 changes: 14 additions & 11 deletions lib/splitclient-rb/engine/push_manager.rb
Original file line number Diff line number Diff line change
Expand Up @@ -41,17 +41,20 @@ def stop_sse
private

def schedule_next_token_refresh(time)
@config.threads[:schedule_next_token_refresh] = Thread.new do
begin
@config.logger.debug("schedule_next_token_refresh refresh in #{time} seconds.") if @config.debug_enabled
sleep(time)
@config.logger.debug('schedule_next_token_refresh starting ...') if @config.debug_enabled
@sse_handler.stop
start_sse
rescue StandardError => e
@config.logger.debug("schedule_next_token_refresh error: #{e.inspect}") if @config.debug_enabled
end
end
@config.threads[:schedule_next_token_refresh] = Thread.new { refresh_token_task(time) }
end

def refresh_token_task(time)
@config.logger.debug("schedule_next_token_refresh refresh in #{time} seconds.") if @config.debug_enabled

sleep(time)

@config.logger.debug('schedule_next_token_refresh starting ...') if @config.debug_enabled
@sse_handler.stop

start_sse
rescue StandardError => e
@config.logger.debug("schedule_next_token_refresh error: #{e.inspect}") if @config.debug_enabled
end

def record_telemetry(time)
Expand Down
22 changes: 11 additions & 11 deletions lib/splitclient-rb/telemetry/sync_task.rb
Original file line number Diff line number Diff line change
Expand Up @@ -15,21 +15,21 @@ def call
private

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

loop do
sleep(@config.telemetry_refresh_rate)
def telemetry_sync_task
@config.logger.info('Starting Telemetry Sync Task')

@telemetry_synchronizer.synchronize_stats
end
rescue SplitIoClient::SDKShutdownException
@telemetry_synchronizer.synchronize_stats
loop do
sleep(@config.telemetry_refresh_rate)

@config.logger.info('Posting Telemetry due to shutdown')
end
@telemetry_synchronizer.synchronize_stats
end
rescue SplitIoClient::SDKShutdownException
@telemetry_synchronizer.synchronize_stats

@config.logger.info('Posting Telemetry due to shutdown')
end
end
end
Expand Down
2 changes: 1 addition & 1 deletion lib/splitclient-rb/version.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
module SplitIoClient
VERSION = '7.3.5.pre.rc5'
VERSION = '8.0.0.pre.rc1'
end
15 changes: 0 additions & 15 deletions spec/engine/api/client_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -23,20 +23,5 @@

expect { described_class.new(@default_config).post_api(url, api_key, data) }.not_to raise_error
end

if described_class.new(@default_config).send(:needs_patched_net_http_persistent_adapter?)
it 'uses PatchedNetHttpPersistent middleware' do
url = 'https://example.org?hello=world'
api_key = 'abc-def-ghi'
params = { hello: :world }

stub_request(:get, url).to_return(status: 200)

expect_any_instance_of(SplitIoClient::FaradayAdapter::PatchedNetHttpPersistent)
.to receive(:net_http_connection).and_call_original

described_class.new(@default_config).get_api(url, api_key, params)
end
end
end
end
8 changes: 3 additions & 5 deletions splitclient-rb.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,15 @@ Gem::Specification.new do |spec|
spec.name = 'splitclient-rb'
spec.version = SplitIoClient::VERSION
spec.authors = ['Split Software']
spec.email = ['pato@split.io']

spec.email = ['mauro.sanz@split.io']
spec.summary = 'Ruby client for split SDK.'
spec.description = 'Ruby client for using split SDK.'
spec.homepage = 'https://github.com/splitio/ruby-client'
spec.license = 'Apache-2.0'

spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(spec|features|ext)/}) }

spec.require_paths = ['lib']
spec.required_ruby_version = '>= 2.5.0'

if defined?(JRUBY_VERSION)
spec.platform = 'java'
Expand All @@ -37,7 +36,6 @@ Gem::Specification.new do |spec|
end

spec.add_development_dependency 'allocation_stats', '~> 0.1'
spec.add_development_dependency 'appraisal', '~> 2.4'
spec.add_development_dependency 'bundler', '~> 2.2'
spec.add_development_dependency 'pry', '~> 0.14'
spec.add_development_dependency 'pry-nav', '~> 1.0'
Expand All @@ -53,7 +51,7 @@ Gem::Specification.new do |spec|

spec.add_runtime_dependency 'bitarray', '~> 1.3'
spec.add_runtime_dependency 'concurrent-ruby', '~> 1.0'
spec.add_runtime_dependency 'faraday', '>= 0.8', '< 2.0'
spec.add_runtime_dependency 'faraday', '>= 1.1', '< 2.0'
spec.add_runtime_dependency 'json', '>= 1.8', '< 3.0'
spec.add_runtime_dependency 'jwt', '>= 1.0.0', '< 3.0'
spec.add_runtime_dependency 'lru_redux', '~> 1.1'
Expand Down