splitclient-rb 7.0.1.pre.rc3 → 7.0.1.pre.rc4

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: d22f596ae2c858d642bbd57bf6fdfbfbf11be01ef39a54e2e9e9c69142d2f745
4
- data.tar.gz: 221e861adf092444cc790537c7469185f8bfc2c306e5f5d681d2876f23816d9e
3
+ metadata.gz: e594bbd6140417bdce0b99925f46e3db09af26b945280c5e34917eac89edac19
4
+ data.tar.gz: 8ce2b999204052796d33ee1416a2ffb7637616eaaf6becf14b46520f5e542e8d
5
5
  SHA512:
6
- metadata.gz: fc2b364e35389b85447a12adc3bfb0f947cf61057531777093fe69bf5400104ed5eb56e92a74666626f7f410151c4e6faded6cc574fa5d7dd8bc249607577bbd
7
- data.tar.gz: 14348f14b7df6b3f07ef6c7392d1774a2cf67294dbc0c76dc13c76927cb9f4c4ef8ddb3a23cfe9584ef26379df7e91fb5db7fa9dfca00ff8c21df384ecefb7d2
6
+ metadata.gz: 8e96d61588f39684609ca7d1252e91b389c64f0c91d532987c7123e2eeb86ab1e769dfdaa4cf104eff2d94803fa75e5e908548e544142a961290c7d856e5f548
7
+ data.tar.gz: ec1a1fa45062c25caf15236a8d703df730c030239826cbf766b4c8722b6f0e455e94012af5856564d7a33ba767a52b6749e60274939bac3ccdce9fa62d379abb
data/CHANGES.txt CHANGED
@@ -1,7 +1,10 @@
1
- 7.0.1 (Sep 13, 2019)
1
+ 7.0.1 (Oct 25, 2019)
2
2
  - Updated localhost mode so that parsing of test files results in JSON data for splits analogous to that returned by the Split backend.
3
3
  - Resulting localhost data is now used indifferently from actual backend data by the SDK code.
4
4
  - Removed specific spare code dealing with localhost operations.
5
+ - Removed the disable_impressions configuration param.
6
+ - Fixed an issue about Event properties were not sent to be.
7
+ - Added ip_addresses_enabled to enable/disable sending MachineName and MachineIP headers when data is posted to Split Servers.
5
8
 
6
9
  7.0.0 (Aug 23, 2019)
7
10
  - BREAKING CHANGE: block_until_ready is now a method in both split_client and split_manager that needs to be explicitly called. The block_until_ready parameter is now ignored if passed in the configuration, and defaults to 15s unless passed as a parameter of the block_until_ready method.
@@ -30,6 +30,9 @@ module SplitIoClient
30
30
  req.headers = common_headers(api_key)
31
31
  .merge('Content-Type' => 'application/json')
32
32
  .merge(headers)
33
+
34
+ req.headers = req.headers.merge('SplitSDKMachineIP' => @config.machine_ip) unless @config.machine_ip.empty?
35
+ req.headers = req.headers.merge('SplitSDKMachineName' => @config.machine_name) unless @config.machine_name.empty?
33
36
 
34
37
  req.body = data.to_json
35
38
 
@@ -78,19 +81,8 @@ module SplitIoClient
78
81
  {
79
82
  'Authorization' => "Bearer #{api_key}",
80
83
  'SplitSDKVersion' => "#{@config.language}-#{@config.version}",
81
- 'SplitSDKMachineName' => @config.machine_name,
82
- 'SplitSDKMachineIP' => @config.machine_ip,
83
- 'Referer' => referer
84
84
  }
85
85
  end
86
-
87
- def referer
88
- result = "#{@config.language}-#{@config.version}"
89
-
90
- result = "#{result}::#{SplitIoClient::SplitConfig.machine_hostname}" unless SplitIoClient::SplitConfig.machine_hostname == 'localhost'
91
-
92
- result
93
- end
94
86
  end
95
87
  end
96
88
  end
@@ -18,10 +18,7 @@ module SplitIoClient
18
18
  response = post_api(
19
19
  "#{@config.events_uri}/events/bulk",
20
20
  @api_key,
21
- events_slice.map { |event| formatted_event(event[:e]) },
22
- 'SplitSDKMachineIP' => events_slice[0][:m][:i],
23
- 'SplitSDKMachineName' => events_slice[0][:m][:n],
24
- 'SplitSDKVersion' => events_slice[0][:m][:s]
21
+ events_slice.map { |event| formatted_event(event[:e]) }
25
22
  )
26
23
 
27
24
  if response.success?
@@ -15,7 +15,7 @@ module SplitIoClient
15
15
  end
16
16
 
17
17
  impressions_by_ip(impressions).each do |ip, impressions_ip|
18
- response = post_api("#{@config.events_uri}/testImpressions/bulk", @api_key, impressions_ip, 'SplitSDKMachineIP' => ip)
18
+ response = post_api("#{@config.events_uri}/testImpressions/bulk", @api_key, impressions_ip)
19
19
 
20
20
  if response.success?
21
21
  @config.split_logger.log_if_debug("Impressions reported: #{total_impressions(impressions)}")
@@ -69,8 +69,10 @@ module SplitIoClient
69
69
  @transport_debug_enabled = opts[:transport_debug_enabled] || SplitConfig.default_debug
70
70
  @block_until_ready = SplitConfig.default_block_until_ready
71
71
 
72
- @machine_name = opts[:machine_name] || SplitConfig.machine_hostname
73
- @machine_ip = opts[:machine_ip] || SplitConfig.machine_ip
72
+ @ip_addresses_enabled = opts[:ip_addresses_enabled].nil? ? SplitConfig.default_ip_addresses_enabled : opts[:ip_addresses_enabled]
73
+
74
+ @machine_name = SplitConfig.machine_hostname(@ip_addresses_enabled, opts[:machine_name], opts[:cache_adapter] || SplitConfig.default_cache_adapter)
75
+ @machine_ip = SplitConfig.machine_ip(@ip_addresses_enabled, opts[:machine_ip], opts[:cache_adapter] || SplitConfig.default_cache_adapter)
74
76
 
75
77
  @cache_ttl = opts[:cache_ttl] || SplitConfig.cache_ttl
76
78
  @max_cache_size = opts[:max_cache_size] || SplitConfig.max_cache_size
@@ -251,6 +253,8 @@ module SplitIoClient
251
253
 
252
254
  attr_accessor :localhost_mode
253
255
 
256
+ attr_accessor :ip_addresses_enabled
257
+
254
258
  #
255
259
  # The default split client configuration
256
260
  #
@@ -412,6 +416,14 @@ module SplitIoClient
412
416
  15
413
417
  end
414
418
 
419
+ #
420
+ # The default ip addresses enabled value
421
+ #
422
+ # @return [boolean]
423
+ def self.default_ip_addresses_enabled
424
+ true
425
+ end
426
+
415
427
  #
416
428
  # The default transport_debug_enabled value
417
429
  #
@@ -478,23 +490,49 @@ module SplitIoClient
478
490
  # gets the hostname where the sdk gem is running
479
491
  #
480
492
  # @return [string]
481
- def self.machine_hostname
482
- Socket.gethostname
483
- rescue
484
- 'localhost'.freeze
493
+ def self.machine_hostname(ip_addresses_enabled, machine_name, adapter)
494
+ if ip_addresses_enabled
495
+ begin
496
+ return machine_name || Socket.gethostname
497
+ rescue
498
+ return 'unknown'.freeze
499
+ end
500
+ else
501
+ case adapter
502
+ when :redis
503
+ return 'NA'.freeze
504
+ end
505
+ end
506
+
507
+ return ''.freeze
485
508
  end
486
509
 
487
510
  #
488
511
  # gets the ip where the sdk gem is running
489
512
  #
490
513
  # @return [string]
491
- def self.machine_ip
492
- loopback_ip = Socket.ip_address_list.find { |ip| ip.ipv4_loopback? }
493
- private_ip = Socket.ip_address_list.find { |ip| ip.ipv4_private? }
514
+ def self.machine_ip(ip_addresses_enabled, machine_ip, adapter)
515
+ if ip_addresses_enabled
516
+ begin
517
+ return machine_ip unless machine_ip.blank?
518
+
519
+ loopback_ip = Socket.ip_address_list.find { |ip| ip.ipv4_loopback? }
520
+ private_ip = Socket.ip_address_list.find { |ip| ip.ipv4_private? }
494
521
 
495
- addr_info = private_ip || loopback_ip
522
+ addr_info = private_ip || loopback_ip
523
+
524
+ return addr_info.ip_address
525
+ rescue
526
+ return 'unknown'.freeze
527
+ end
528
+ else
529
+ case adapter
530
+ when :redis
531
+ return 'NA'.freeze
532
+ end
533
+ end
496
534
 
497
- addr_info.ip_address
535
+ return ''.freeze
498
536
  end
499
537
  end
500
538
  end
@@ -1,3 +1,3 @@
1
1
  module SplitIoClient
2
- VERSION = '7.0.1.pre.rc3'
2
+ VERSION = '7.0.1.pre.rc4'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: splitclient-rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.0.1.pre.rc3
4
+ version: 7.0.1.pre.rc4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Split Software
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-10-23 00:00:00.000000000 Z
11
+ date: 2019-10-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: allocation_stats
@@ -409,7 +409,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
409
409
  - !ruby/object:Gem::Version
410
410
  version: 1.3.1
411
411
  requirements: []
412
- rubygems_version: 3.0.3
412
+ rubygems_version: 3.0.6
413
413
  signing_key:
414
414
  specification_version: 4
415
415
  summary: Ruby client for split SDK.