test_track_rails_client 6.0.0 → 7.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Rakefile +4 -4
- data/app/controllers/concerns/test_track/controller.rb +2 -4
- data/app/models/test_track/ab_configuration.rb +1 -1
- data/app/models/test_track/identity_session_locator.rb +2 -4
- data/app/models/test_track/offline_session.rb +4 -8
- data/app/models/test_track/unsynced_assignments_notifier.rb +2 -2
- data/app/models/test_track/vary_dsl.rb +1 -0
- data/app/models/test_track/web_session.rb +2 -2
- data/lib/test_track.rb +1 -1
- data/lib/test_track_rails_client/engine.rb +4 -0
- data/lib/test_track_rails_client/version.rb +1 -1
- metadata +13 -14
- data/config/initializers/set_build_timestamp.rb +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b1c0d5e3f14e82a63f34d8ab019c2f433014cdcf590ba339e70cf54996178a1a
|
4
|
+
data.tar.gz: e45737b7d5dba5cffec0219292091252fbac298ac48189cbf827cde52c408d5c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
|
32
|
-
|
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@#{
|
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/#{
|
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
|
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)
|
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)
|
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
|
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
|
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
|
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
|
19
|
+
TestTrack::AssignmentEventJob.perform_later(**assignment_job_args(assignment))
|
20
20
|
end
|
21
21
|
end
|
22
22
|
|
@@ -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
|
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
|
-
"
|
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
|
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
|
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:
|
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:
|
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: '
|
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: '
|
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: '
|
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: '
|
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:
|
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:
|
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:
|
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.
|
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'
|