module OptimizelyServerSide::Support

Public Instance Methods

experiment(experiment_key, options = {}, &blk) click to toggle source

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

# 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, "experiment")
  OptimizelyServerSide::Experiment.new(experiment_key, variation_key).start(&blk)
end
Also aliased as: feature_flip
feature_flip(experiment_key, options = {}, &blk)
Alias for: experiment
feature_test(experiment_key, options = {}) click to toggle source
# File lib/optimizely_server_side/helpers/support.rb, line 41
def feature_test(experiment_key, options = {})
  OptimizelyServerSide.configuration.user_attributes.merge!(options.stringify_keys)
  optimizely_sdk_project_instance(experiment_key, "feature")
end
get_optimizely_instance() click to toggle source
# File lib/optimizely_server_side/helpers/support.rb, line 61
def get_optimizely_instance
  OptimizelyServerSide::OptimizelySdk
  .project_instance(event_dispatcher: OptimizelyServerSide.configuration.event_dispatcher)
end
optimizely_sdk_project_instance(experiment_key, type) click to toggle source
# File lib/optimizely_server_side/helpers/support.rb, line 32
def optimizely_sdk_project_instance(experiment_key, type)
  case type
  when "experiment"
    get_optimizely_instance.activate(experiment_key, visitor_id, user_attributes)
  when "feature"
    get_optimizely_instance.is_feature_enabled(experiment_key, visitor_id, user_attributes)
  end  
end
user_attributes() click to toggle source
# File lib/optimizely_server_side/helpers/support.rb, line 57
def user_attributes
  OptimizelyServerSide.configuration.user_attributes.reject { |k,v| k == 'visitor_id'}
end
visitor_id() click to toggle source
# File lib/optimizely_server_side/helpers/support.rb, line 53
def visitor_id
  OptimizelyServerSide.configuration.user_attributes['visitor_id']
end