trailguide 0.1.6 → 0.1.7

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: d4d240910be69a80a99df782a0fc7dbd903d2c18620497c37eb694212d4cab8b
4
- data.tar.gz: bb05693270dcc5514d308bc07be283b68179a4b988adc57f50049313b43e333c
3
+ metadata.gz: 5adb31d9a97b2a73b6ff57b91d7f3907d408c511821b72fe0f7b1f857873a794
4
+ data.tar.gz: 3e054cb7abcd176989b6a322f3f9b34e69d2b2b662824a2a84b4e2c3a6c1040a
5
5
  SHA512:
6
- metadata.gz: 6ef520115f856997441eb71df4c953c6df3af38472e0962d59d070f70523f703c4750d84d4bea48b7c9827d7fa15ef3ab813bf68281b4b38d2ed8d0ddd99fb3a
7
- data.tar.gz: 21f3f1e043e9f3896290b389b8819990e06b98a84db975eaf539e39b4a4eece08f7d7473054f10f35be302296f0256520e14a5b0fb02942134797d2a51d92290
6
+ metadata.gz: eeefcc9c9b4e08bfe433b576ca5da9614e6295ae354a4858811af3fad1660cd5c3acdecd8afeaa61ed17edbff34d7eebc2bd797ae8c421c199096c4402bc8d83
7
+ data.tar.gz: 92d4106bff4e3ba5db67e4812b02029126ce3fb43790525c1be0a024fa5dae84cd4b44f4a75e361f4f1c605228bf8fb84e9fa371485ef77058bf3310b33042e2
@@ -265,10 +265,11 @@ module TrailGuide
265
265
  @algorithm ||= self.class.algorithm.new(self)
266
266
  end
267
267
 
268
- def choose!(metadata: nil, **opts)
268
+ def choose!(override: nil, metadata: nil, **opts)
269
269
  return control if TrailGuide.configuration.disabled
270
270
 
271
- variant = choose_variant!(metadata: metadata, **opts)
271
+ variant = choose_variant!(override: override, metadata: metadata, **opts)
272
+ participant.participating!(variant) unless override.present? && !TrailGuide.configuration.store_override
272
273
  run_callbacks(:on_use, variant, metadata)
273
274
  variant
274
275
  end
@@ -277,7 +278,7 @@ module TrailGuide
277
278
  return control if TrailGuide.configuration.disabled
278
279
  if override.present?
279
280
  variant = variants.find { |var| var == override }
280
- return variant unless TrailGuide.configuration.store_override && started?
281
+ return variant unless TrailGuide.configuration.track_override && started?
281
282
  else
282
283
  return winner if winner?
283
284
  return control if excluded
@@ -289,7 +290,6 @@ module TrailGuide
289
290
  variant = algorithm.choose!(metadata: metadata)
290
291
  end
291
292
 
292
- participant.participating!(variant)
293
293
  variant.increment_participation!
294
294
  run_callbacks(:on_choose, variant, metadata)
295
295
  variant
@@ -153,7 +153,7 @@ module TrailGuide
153
153
  end
154
154
 
155
155
  def is_filtered_user_agent?
156
- return false if TrailGuide.configuration.filtered_user_agents.empty?
156
+ return false if TrailGuide.configuration.filtered_user_agents.nil? || TrailGuide.configuration.filtered_user_agents.empty?
157
157
  return false unless context.respond_to?(:request, true)
158
158
  request = context.send(:request)
159
159
  return false unless request && request.user_agent
@@ -167,15 +167,13 @@ module TrailGuide
167
167
  end
168
168
 
169
169
  def is_filtered_ip_address?
170
- filtered_ips = TrailGuide.configuration.filtered_ip_addresses
171
- filtered_ips = filtered_ips.call if filtered_ips.respond_to?(:call)
172
- return false if filtered_ips.nil? || filtered_ips.empty?
170
+ return false if TrailGuide.configuration.filtered_ip_addresses.nil? || TrailGuide.configuration.filtered_ip_addresses.empty?
173
171
 
174
172
  return false unless context.respond_to?(:request, true)
175
173
  request = context.send(:request)
176
174
  return false unless request && request.ip
177
175
 
178
- filtered_ips.each do |ip|
176
+ TrailGuide.configuration.filtered_ip_addresses.each do |ip|
179
177
  return true if ip.class == String && request.ip == ip
180
178
  return true if ip.class == Regexp && request.ip =~ ip
181
179
  return true if ip.class == Range && ip.first.class == IPAddr && ip.include?(IPAddr.new(request.ip))
@@ -2,7 +2,7 @@ module TrailGuide
2
2
  module Version
3
3
  MAJOR = 0
4
4
  MINOR = 1
5
- PATCH = 6
5
+ PATCH = 7
6
6
  VERSION = "#{MAJOR}.#{MINOR}.#{PATCH}"
7
7
 
8
8
  class << self
data/lib/trailguide.rb CHANGED
@@ -18,6 +18,7 @@ module TrailGuide
18
18
  config.start_manually = true
19
19
  config.reset_manually = true
20
20
  config.store_override = false
21
+ config.track_override = false
21
22
  config.override_parameter = :experiment
22
23
  config.allow_multiple_experiments = true # false / :control
23
24
  config.algorithm = :weighted
@@ -39,6 +40,22 @@ module TrailGuide
39
40
  is_filtered_user_agent? ||
40
41
  is_filtered_ip_address?
41
42
  end
43
+
44
+ def filtered_user_agents
45
+ @filtered_user_agents ||= begin
46
+ uas = @state[:filtered_user_agents]
47
+ uas = uas.call if uas.respond_to?(:call)
48
+ uas
49
+ end
50
+ end
51
+
52
+ def filtered_ip_addresses
53
+ @filtered_ip_addresses ||= begin
54
+ ips = @state[:filtered_ip_addresses]
55
+ ips = ips.call if ips.respond_to?(:call)
56
+ ips
57
+ end
58
+ end
42
59
  end
43
60
 
44
61
  def self.catalog
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trailguide
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mark Rebec
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-03-05 00:00:00.000000000 Z
11
+ date: 2019-03-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails