Method: Split::Experiment#initialize

Defined in:
lib/split/experiment.rb

#initialize(name, options = {}) ⇒ Experiment

Returns a new instance of Experiment.



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/split/experiment.rb', line 16

def initialize(name, options = {})
  options = DEFAULT_OPTIONS.merge(options)

  @name = name.to_s

  alternatives = extract_alternatives_from_options(options)

  if alternatives.empty? && (exp_config = Split.configuration.experiment_for(name))
    options = {
      alternatives: load_alternatives_from_configuration,
      goals: Split::GoalsCollection.new(@name).load_from_configuration,
      metadata: ,
      resettable: exp_config[:resettable],
      algorithm: exp_config[:algorithm]
    }
  else
    options[:alternatives] = alternatives
  end

  set_alternatives_and_options(options)
end