Module: OptimizelyServerSide::Support

Defined in:
lib/optimizely_server_side/helpers/support.rb

Instance Method Summary collapse

Instance Method Details

#experiment(experiment_key, options = {}, &blk) ⇒ Object Also known as: feature_flip

Enables for us to wrap experiments Usage: experiment(‘sign_up_test’) do |config|

config.variation_one('variation_one_key') do
  # Code related to variation one
end

config.variation_two('variation_two_key') do
  # Code related to variation two
end

config.variation_default('variation_default_key', primary: true) do
  # We still want to keep our default experience
end

end



24
25
26
27
28
29
# File 'lib/optimizely_server_side/helpers/support.rb', line 24

def experiment(experiment_key, options = {}, &blk)
  # Merge any other options to user attributes
  OptimizelyServerSide.configuration.user_attributes.merge!(options.stringify_keys)
  variation_key = optimizely_sdk_project_instance(experiment_key)
  OptimizelyServerSide::Experiment.new(experiment_key, variation_key).start(&blk)
end

#optimizely_sdk_project_instance(experiment_key) ⇒ Object



32
33
34
35
36
37
38
# File 'lib/optimizely_server_side/helpers/support.rb', line 32

def optimizely_sdk_project_instance(experiment_key)
  OptimizelyServerSide::OptimizelySdk
  .project_instance(event_dispatcher: OptimizelyServerSide.configuration.event_dispatcher)
  .activate(experiment_key,
            OptimizelyServerSide.configuration.user_attributes['visitor_id'],
            OptimizelyServerSide.configuration.user_attributes.reject { |k,v| k == 'visitor_id'})
end