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_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