test_track_rails_client 6.0.0 → 7.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 435ccd01e25d78c6a1198b18fcc898a34b76ba6949173672f65f801408dbe789
4
- data.tar.gz: 87de3abad19abb1a7691959c09597ac2c4133b310c2d70397bbda07526b51649
3
+ metadata.gz: b1c0d5e3f14e82a63f34d8ab019c2f433014cdcf590ba339e70cf54996178a1a
4
+ data.tar.gz: e45737b7d5dba5cffec0219292091252fbac298ac48189cbf827cde52c408d5c
5
5
  SHA512:
6
- metadata.gz: 727ec20876be5bfc7447ea1bf04db3cc1ad88460bf9fac72a7656f41b2481689b3c936713e2196bd5ec807aabbd9084c313470abb94687eab94f43bbe862b6fe
7
- data.tar.gz: 1fbd5e5b9afea8b03b2ae1664098bbfcc528af98d3c785cfbc4a66c80a4535f6debe35e1a3d1f7b2815f3943fc7a63f1c574c9749fedd4fac6c03e7f37720548
6
+ metadata.gz: 2b892995788d2baccf116d1cf233fd763159b9047a068196feb4fa89dbc70c0ffc6ab1670d1d57da9bdd5359f9d8f455619a456e0a4b70f93b84df966a1122af
7
+ data.tar.gz: 15e46fb3134a62060b3bf931f0b99912151bc75c3be74493c8b12956951d42a67014101086f773f002abfcce661a058485969c24f0f613413fd2ec57e6fd6160
data/Rakefile CHANGED
@@ -28,12 +28,12 @@ RuboCop::RakeTask.new
28
28
 
29
29
  desc "Pull the latest versions of all dependencies into the gem for distribution"
30
30
  task :vendor_deps do
31
- TEST_TRACK_JS_CLIENT_VERSION = '2.0.0'.freeze
32
- TEST_TRACK_CLI_VERSION = 'v1.2.0'.freeze
31
+ test_track_js_client_version = '2.0.0'.freeze
32
+ test_track_cli_version = 'v1.2.0'.freeze
33
33
 
34
34
  # Bundle JS client
35
35
  sh 'npm init -y'
36
- sh "npm install --no-save test_track_js_client@#{TEST_TRACK_JS_CLIENT_VERSION}"
36
+ sh "npm install --no-save test_track_js_client@#{test_track_js_client_version}"
37
37
  sh 'cp', 'node_modules/test_track_js_client/dist/testTrack.bundle.js', 'app/assets/javascripts/testTrack.bundle.min.js'
38
38
  sh 'rm package.json'
39
39
 
@@ -44,7 +44,7 @@ task :vendor_deps do
44
44
  rm_r Dir.glob('*')
45
45
 
46
46
  %w(darwin linux).each do |arch|
47
- `curl -L https://github.com/Betterment/testtrack-cli/releases/download/#{TEST_TRACK_CLI_VERSION}/testtrack.#{arch} \
47
+ `curl -L https://github.com/Betterment/testtrack-cli/releases/download/#{test_track_cli_version}/testtrack.#{arch} \
48
48
  > testtrack.#{arch}`
49
49
  chmod 'u=wrx,go=rx', "testtrack.#{arch}"
50
50
  end
@@ -27,10 +27,8 @@ module TestTrack::Controller
27
27
  test_track_session.visitor_dsl
28
28
  end
29
29
 
30
- def manage_test_track_session
30
+ def manage_test_track_session(&block)
31
31
  RequestStore[:test_track_web_session] = test_track_session
32
- test_track_session.manage do
33
- yield
34
- end
32
+ test_track_session.manage(&block)
35
33
  end
36
34
  end
@@ -1,7 +1,7 @@
1
1
  class TestTrack::AbConfiguration
2
2
  include TestTrack::RequiredOptions
3
3
 
4
- def initialize(opts) # rubocop:disable Metrics/AbcSize
4
+ def initialize(opts)
5
5
  @split_name = require_option!(opts, :split_name).to_s
6
6
  true_variant = require_option!(opts, :true_variant, allow_nil: true)
7
7
  @split_registry = require_option!(opts, :split_registry)
@@ -5,7 +5,7 @@ class TestTrack::IdentitySessionLocator
5
5
  @identity = identity
6
6
  end
7
7
 
8
- def with_visitor # rubocop:disable Metrics/AbcSize
8
+ def with_visitor(&block) # rubocop:disable Metrics/AbcSize
9
9
  raise ArgumentError, "must provide block to `with_visitor`" unless block_given?
10
10
 
11
11
  if web_session.present?
@@ -13,9 +13,7 @@ class TestTrack::IdentitySessionLocator
13
13
  elsif job_session.present?
14
14
  yield job_session.visitor_dsl_for(identity)
15
15
  else
16
- TestTrack::OfflineSession.with_visitor_for(identity.test_track_identifier_type, identity.test_track_identifier_value) do |v|
17
- yield v
18
- end
16
+ TestTrack::OfflineSession.with_visitor_for(identity.test_track_identifier_type, identity.test_track_identifier_value, &block)
19
17
  end
20
18
  end
21
19
 
@@ -3,24 +3,20 @@ class TestTrack::OfflineSession
3
3
  @remote_visitor = remote_visitor
4
4
  end
5
5
 
6
- def self.with_visitor_for(identifier_type, identifier_value)
6
+ def self.with_visitor_for(identifier_type, identifier_value, &block)
7
7
  raise ArgumentError, "must provide block to `with_visitor_for`" unless block_given?
8
8
 
9
9
  remote_visitor = TestTrack::Remote::Visitor.from_identifier(identifier_type, identifier_value)
10
10
 
11
- new(remote_visitor).send :manage do |visitor_dsl|
12
- yield visitor_dsl
13
- end
11
+ new(remote_visitor).send(:manage, &block)
14
12
  end
15
13
 
16
- def self.with_visitor_id(visitor_id)
14
+ def self.with_visitor_id(visitor_id, &block)
17
15
  raise ArgumentError, "must provide block to `with_visitor_id`" unless block_given?
18
16
 
19
17
  remote_visitor = TestTrack::Remote::Visitor.find(visitor_id)
20
18
 
21
- new(remote_visitor).send :manage do |visitor_dsl|
22
- yield visitor_dsl
23
- end
19
+ new(remote_visitor).send(:manage, &block)
24
20
  end
25
21
 
26
22
  private
@@ -13,10 +13,10 @@ class TestTrack::UnsyncedAssignmentsNotifier
13
13
 
14
14
  def notify
15
15
  assignments.each do |assignment|
16
- TestTrack::AssignmentEventJob.perform_now assignment_job_args(assignment)
16
+ TestTrack::AssignmentEventJob.perform_now(**assignment_job_args(assignment))
17
17
  rescue *TestTrack::SERVER_ERRORS => e
18
18
  Rails.logger.error "TestTrack failed to notify unsynced assignments, retrying. #{e}"
19
- TestTrack::AssignmentEventJob.perform_later assignment_job_args(assignment)
19
+ TestTrack::AssignmentEventJob.perform_later(**assignment_job_args(assignment))
20
20
  end
21
21
  end
22
22
 
@@ -33,6 +33,7 @@ class TestTrack::VaryDsl
33
33
  private
34
34
 
35
35
  attr_reader :split_registry, :assignment, :context
36
+
36
37
  delegate :split_name, to: :assignment
37
38
 
38
39
  def split
@@ -51,7 +51,7 @@ class TestTrack::WebSession
51
51
  attr_reader :controller
52
52
 
53
53
  def current_identity
54
- raise <<~ERROR unless controller.class.test_track_identity&.is_a?(Symbol)
54
+ raise <<~ERROR unless controller.class.test_track_identity.is_a?(Symbol)
55
55
  Your controller (or controller base class) must set test_track_identity for
56
56
  TestTrack to work properly. e.g.:
57
57
 
@@ -106,7 +106,7 @@ class TestTrack::WebSession
106
106
  end
107
107
 
108
108
  def wildcard_domain
109
- "." + (public_suffix_domain || request.host)
109
+ ".#{public_suffix_domain || request.host}"
110
110
  end
111
111
 
112
112
  def public_suffix_domain
data/lib/test_track.rb CHANGED
@@ -17,7 +17,7 @@ module TestTrack
17
17
 
18
18
  SERVER_ERRORS = [Faraday::ConnectionFailed, Faraday::TimeoutError, Her::Errors::RemoteServerError].freeze
19
19
  BUILD_TIMESTAMP_FILE_PATH = 'testtrack/build_timestamp'.freeze
20
- BUILD_TIMESTAMP_REGEX = /\A\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d(.\d+)?([+-][0-2]\d:[0-5]\d|Z)\z/.freeze
20
+ BUILD_TIMESTAMP_REGEX = /\A\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d(.\d+)?([+-][0-2]\d:[0-5]\d|Z)\z/
21
21
 
22
22
  mattr_accessor :enabled_override, :app_name
23
23
  mattr_accessor(:job_base_class_name) { 'ActiveJob::Base' }
@@ -9,5 +9,9 @@ module TestTrackRailsClient
9
9
  config.generators do |g|
10
10
  g.test_framework :rspec
11
11
  end
12
+
13
+ initializer after: 'active_support.initialize_time_zone' do
14
+ TestTrack.set_build_timestamp! unless ENV['SKIP_TESTTRACK_SET_BUILD_TIMESTAMP'] == '1'
15
+ end
12
16
  end
13
17
  end
@@ -1,3 +1,3 @@
1
1
  module TestTrackRailsClient
2
- VERSION = "6.0.0" # rubocop:disable Style/MutableConstant
2
+ VERSION = "7.1.1".freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: test_track_rails_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.0.0
4
+ version: 7.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan O'Neill
@@ -10,10 +10,10 @@ authors:
10
10
  - John Mileham
11
11
  - Alan Norton
12
12
  - Sam Moore
13
- autorequire:
13
+ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
- date: 2023-01-12 00:00:00.000000000 Z
16
+ date: 2024-03-13 00:00:00.000000000 Z
17
17
  dependencies:
18
18
  - !ruby/object:Gem::Dependency
19
19
  name: activejob
@@ -21,28 +21,28 @@ dependencies:
21
21
  requirements:
22
22
  - - ">="
23
23
  - !ruby/object:Gem::Version
24
- version: '5.1'
24
+ version: '6.0'
25
25
  type: :runtime
26
26
  prerelease: false
27
27
  version_requirements: !ruby/object:Gem::Requirement
28
28
  requirements:
29
29
  - - ">="
30
30
  - !ruby/object:Gem::Version
31
- version: '5.1'
31
+ version: '6.0'
32
32
  - !ruby/object:Gem::Dependency
33
33
  name: activemodel
34
34
  requirement: !ruby/object:Gem::Requirement
35
35
  requirements:
36
36
  - - ">="
37
37
  - !ruby/object:Gem::Version
38
- version: '5.1'
38
+ version: '6.0'
39
39
  type: :runtime
40
40
  prerelease: false
41
41
  version_requirements: !ruby/object:Gem::Requirement
42
42
  requirements:
43
43
  - - ">="
44
44
  - !ruby/object:Gem::Version
45
- version: '5.1'
45
+ version: '6.0'
46
46
  - !ruby/object:Gem::Dependency
47
47
  name: faraday
48
48
  requirement: !ruby/object:Gem::Requirement
@@ -217,14 +217,14 @@ dependencies:
217
217
  requirements:
218
218
  - - "~>"
219
219
  - !ruby/object:Gem::Version
220
- version: 0.81.0
220
+ version: 1.48.0
221
221
  type: :development
222
222
  prerelease: false
223
223
  version_requirements: !ruby/object:Gem::Requirement
224
224
  requirements:
225
225
  - - "~>"
226
226
  - !ruby/object:Gem::Version
227
- version: 0.81.0
227
+ version: 1.48.0
228
228
  - !ruby/object:Gem::Dependency
229
229
  name: rubocop-performance
230
230
  requirement: !ruby/object:Gem::Requirement
@@ -382,7 +382,6 @@ files:
382
382
  - app/views/tt/api/v1/split_details/show.json.jbuilder
383
383
  - app/views/tt/api/v1/visitors/_show.json.jbuilder
384
384
  - app/views/tt/api/v1/visitors/show.json.jbuilder
385
- - config/initializers/set_build_timestamp.rb
386
385
  - config/initializers/test_track_api.rb
387
386
  - config/routes.rb
388
387
  - lib/generators/test_track/migration_generator.rb
@@ -439,7 +438,7 @@ homepage: https://github.com/Betterment
439
438
  licenses:
440
439
  - MIT
441
440
  metadata: {}
442
- post_install_message:
441
+ post_install_message:
443
442
  rdoc_options: []
444
443
  require_paths:
445
444
  - lib
@@ -447,15 +446,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
447
446
  requirements:
448
447
  - - ">="
449
448
  - !ruby/object:Gem::Version
450
- version: 2.5.0
449
+ version: '3.0'
451
450
  required_rubygems_version: !ruby/object:Gem::Requirement
452
451
  requirements:
453
452
  - - ">="
454
453
  - !ruby/object:Gem::Version
455
454
  version: '0'
456
455
  requirements: []
457
- rubygems_version: 3.3.7
458
- signing_key:
456
+ rubygems_version: 3.5.6
457
+ signing_key:
459
458
  specification_version: 4
460
459
  summary: Rails client for TestTrack
461
460
  test_files: []
@@ -1 +0,0 @@
1
- TestTrack.set_build_timestamp! unless ENV['SKIP_TESTTRACK_SET_BUILD_TIMESTAMP'] == '1'