gitlab-experiment 1.3.0 → 1.4.0
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 +4 -4
- data/lib/gitlab/experiment/dsl.rb +20 -1
- data/lib/gitlab/experiment/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: c1bda42d269c22b469ab0a942c38e01b3d718db2c4e7c4ffa61a41e0da53e74a
|
|
4
|
+
data.tar.gz: 020d283e9875365e5db338e1dfdfe57e3cf53e10a46d6f2d069603931f94bf50
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 558f12b6f92de538d024757f271194675d0ed863e50325debdcf16ddb2e20873df92e008dc20818962a5bbe536aba97c923345119c4a55f2855fc428e0cd43fa
|
|
7
|
+
data.tar.gz: dcebe030c7d8b232c5b4c261c894f9db21b48744c80b807642d07a772b9cc0e26ee94264e1a3aa2680326f94f7ae06f860349d0521449d3f2145974c6b3a84d9
|
|
@@ -7,10 +7,19 @@ module Gitlab
|
|
|
7
7
|
klass.include(self).tap { |base| base.helper_method(:experiment) if with_helper }
|
|
8
8
|
end
|
|
9
9
|
|
|
10
|
+
# An explicit `request:` keyword argument always takes precedence; when
|
|
11
|
+
# present, no auto-detection runs.
|
|
12
|
+
#
|
|
13
|
+
# Otherwise, `request` is auto-detected through implicit_experiment_request in this order:
|
|
14
|
+
# 1. A `request` method on `self` (the controller pattern).
|
|
15
|
+
# 2. A `@request` instance variable on `self` (the service pattern).
|
|
16
|
+
#
|
|
17
|
+
# Callers with `request` as a pure local variable should pass
|
|
18
|
+
# `request: request` explicitly.
|
|
10
19
|
def experiment(name, variant_name = nil, **context, &block)
|
|
11
20
|
raise ArgumentError, 'name is required' if name.nil?
|
|
12
21
|
|
|
13
|
-
context[:request] ||=
|
|
22
|
+
context[:request] ||= implicit_experiment_request
|
|
14
23
|
|
|
15
24
|
base = Configuration.base_class.constantize
|
|
16
25
|
klass = base.constantize(name) || base
|
|
@@ -20,6 +29,16 @@ module Gitlab
|
|
|
20
29
|
|
|
21
30
|
instance.context.frozen? ? instance.run : instance.tap(&:run)
|
|
22
31
|
end
|
|
32
|
+
|
|
33
|
+
private
|
|
34
|
+
|
|
35
|
+
def implicit_experiment_request
|
|
36
|
+
if respond_to?(:request)
|
|
37
|
+
request
|
|
38
|
+
elsif instance_variable_defined?(:@request)
|
|
39
|
+
instance_variable_get(:@request)
|
|
40
|
+
end
|
|
41
|
+
end
|
|
23
42
|
end
|
|
24
43
|
end
|
|
25
44
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: gitlab-experiment
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.4.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- GitLab
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-
|
|
11
|
+
date: 2026-05-22 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: activesupport
|