test_track_rails_client 4.0.0.alpha9 → 4.0.0.alpha10

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
  SHA1:
3
- metadata.gz: 629da11fcbfee5696bb015df4e2e14258cee29c3
4
- data.tar.gz: 8ae8b3bf5ea58b8cbbe858f4b6dff750474282b1
3
+ metadata.gz: ca0050364986fb6ceb12563a3442cd7730e2f718
4
+ data.tar.gz: 19b0350fb87fd5cf8f572efdf10cb47788e07cab
5
5
  SHA512:
6
- metadata.gz: 5dde230b69d332342cfde930cef086e44bc33e3d69363e93884f464d99dbdcf74f8ad292d757a48973b31ad4a35f94bbd5f1f4a07b75c216a6ecd1fdf9bd9e77
7
- data.tar.gz: acbc533c47b4ed7ab1d170a67c37f31852a161dbaf558bed87c9a1a786914a942cde94843326f3e9c2fb20a267d7bf921242053a308007ed15b030041434f672
6
+ metadata.gz: cbf9a7b291712fbf42947f95e7640cddfe70dcd053ebd42f173b4c3867fa350cd7e14c7f3863d40d7039f3e700d36ddc4440dba9de8815a87e66fa7196f84531
7
+ data.tar.gz: 02bb28ab4a8d73b8cbaef9d285fdea8082d005516a0369d200fa2ae404809420072e5b76068c346c04638be5b9e7816bb1d847436e781c3ed4ee26fcc38fb152
data/README.md CHANGED
@@ -267,6 +267,28 @@ class User
267
267
  test_track_identifier :myapp_user_id, :id # `id` is a column on User model which is what we're using as the identifier value in this example.
268
268
  end
269
269
  ```
270
+ ### Varying app behavior globally
271
+
272
+ The `TestTrack.app_ab` method uses an "app" identifier type to be able to globally access "Feature Gate" splits. This is useful when a visitor context is not handy, and when you don't care about visitor specific assignments.
273
+
274
+ In order to use this feature, you need to set `TestTrack.app_name`, preferably in an app initializer.
275
+
276
+ ```ruby
277
+ # config/initializers/test_track.rb
278
+ TestTrack.app_name = "MyApp"
279
+ ```
280
+
281
+ ```ruby
282
+ class BackgroundWorkJob
283
+ def perform
284
+ if TestTrack.app_ab(:fancy_new_api_enabled, context: 'BackgroundWorkJob')
285
+ FancyNewApi.do_thing
286
+ else
287
+ CruftyOldApi.do_thing
288
+ end
289
+ end
290
+ end
291
+ ```
270
292
 
271
293
  ## Tracking visitor logins
272
294
 
@@ -0,0 +1,32 @@
1
+ class TestTrack::ApplicationIdentity
2
+ include Singleton
3
+
4
+ delegate :test_track_ab, to: :identity
5
+
6
+ private
7
+
8
+ def app_name
9
+ raise 'must configure TestTrack.app_name on application initialization' if TestTrack.app_name.blank?
10
+ TestTrack.app_name
11
+ end
12
+
13
+ def identity
14
+ Identity.new(app_name)
15
+ end
16
+
17
+ class Identity
18
+ include TestTrack::Identity
19
+
20
+ test_track_identifier :app_id, :app_name
21
+
22
+ def initialize(app_name)
23
+ @app_name = app_name
24
+ end
25
+
26
+ private
27
+
28
+ attr_reader :app_name
29
+ end
30
+
31
+ private_constant :Identity
32
+ end
data/lib/test_track.rb CHANGED
@@ -16,7 +16,7 @@ module TestTrack
16
16
 
17
17
  SERVER_ERRORS = [Faraday::ConnectionFailed, Faraday::TimeoutError, Her::Errors::RemoteServerError].freeze
18
18
 
19
- mattr_accessor :enabled_override
19
+ mattr_accessor :enabled_override, :app_name
20
20
 
21
21
  class << self
22
22
  def analytics
@@ -36,6 +36,10 @@ module TestTrack
36
36
  def mixpanel
37
37
  TestTrack::Analytics::MixpanelClient.new
38
38
  end
39
+
40
+ def app
41
+ TestTrack::ApplicationIdentity.instance
42
+ end
39
43
  end
40
44
 
41
45
  def update_config
@@ -57,4 +61,8 @@ module TestTrack
57
61
  def enabled?
58
62
  enabled_override.nil? ? !Rails.env.test? : enabled_override
59
63
  end
64
+
65
+ def app_ab(split_name, context:)
66
+ app.test_track_ab(split_name, context: context)
67
+ end
60
68
  end
@@ -1,3 +1,3 @@
1
1
  module TestTrackRailsClient
2
- VERSION = "4.0.0.alpha9" # rubocop:disable Style/MutableConstant
2
+ VERSION = "4.0.0.alpha10" # rubocop:disable Style/MutableConstant
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: 4.0.0.alpha9
4
+ version: 4.0.0.alpha10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan O'Neill
@@ -13,7 +13,7 @@ authors:
13
13
  autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
- date: 2018-05-25 00:00:00.000000000 Z
16
+ date: 2018-08-01 00:00:00.000000000 Z
17
17
  dependencies:
18
18
  - !ruby/object:Gem::Dependency
19
19
  name: airbrake
@@ -260,6 +260,7 @@ files:
260
260
  - app/models/test_track/analytics/mixpanel_client.rb
261
261
  - app/models/test_track/analytics/safe_wrapper.rb
262
262
  - app/models/test_track/analytics_event.rb
263
+ - app/models/test_track/application_identity.rb
263
264
  - app/models/test_track/assignment.rb
264
265
  - app/models/test_track/config_updater.rb
265
266
  - app/models/test_track/fake/split_detail.rb