Class: ApplicationExperiment
- Inherits:
-
Gitlab::Experiment
- Object
- Gitlab::Experiment
- ApplicationExperiment
- Defined in:
- app/experiments/application_experiment.rb
Direct Known Subclasses
BuildIosAppGuideEmailExperiment, InProductGuidanceEnvironmentsWebideExperiment, IosSpecificTemplatesExperiment
Instance Method Summary collapse
- #control_behavior ⇒ Object
- #key_for(source, seed = name) ⇒ Object deprecated Deprecated.
- #nest_experiment(other) ⇒ Object
Instance Method Details
#control_behavior ⇒ Object
6 7 8 |
# File 'app/experiments/application_experiment.rb', line 6 def control_behavior # define a default nil control behavior so we can omit it when not needed end |
#key_for(source, seed = name) ⇒ Object
Deprecated.
This is deprecated logic as of v0.6.0 and should eventually be removed, but needs to stay intact for actively running experiments. The new strategy utilizes Digest::SHA2, a secret seed, and generates a 64-byte string.
17 18 19 20 21 22 23 24 25 26 |
# File 'app/experiments/application_experiment.rb', line 17 def key_for(source, seed = name) # If FIPS is enabled, we simply call the method available in the gem, which # uses SHA2. return super if Gitlab::FIPS.enabled? # If FIPS isn't enabled, we use the legacy MD5 logic to keep existing # experiment events working. source = source.keys + source.values if source.is_a?(Hash) Digest::MD5.hexdigest(Array(source).map { |v| identify(v) }.unshift(seed).join('|')) end |
#nest_experiment(other) ⇒ Object
28 29 30 |
# File 'app/experiments/application_experiment.rb', line 28 def nest_experiment(other) instance_exec(:nested, { label: other.name }, &Configuration.tracking_behavior) end |