28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
# File 'lib/trail_guide/engine.rb', line 28
def self.load_yaml_experiments(file)
experiments = (YAML.load_file(file) || {} rescue {})
.symbolize_keys.map { |k,v| [k, v.symbolize_keys] }.to_h
experiments.each do |name, options|
expvars = options[:variants].map do |var|
if var.is_a?(Array)
[var[0], var[1].symbolize_keys]
else
[var]
end
end
DSL.experiment(name) do |config|
expvars.each do |expvar|
variant *expvar
end
config.control = options[:control] if options[:control]
config.metric = options[:metric] if options[:metric]
config.algorithm = options[:algorithm] if options[:algorithm]
config.goals = options[:goals] if options[:goals]
config.reset_manually = options[:reset_manually] if options.key?(:reset_manually)
config.start_manually = options[:start_manually] if options.key?(:start_manually)
config.store_override = options[:store_override] if options.key?(:store_override)
config.track_override = options[:track_override] if options.key?(:track_override)
config.allow_multiple_conversions = options[:allow_multiple_conversions] if options.key?(:allow_multiple_conversions)
config.allow_multiple_goals = options[:allow_multiple_goals] if options.key?(:allow_multiple_goals)
end
end
end
|