Module: OptimizelyServerSide::Support
- Defined in:
- lib/optimizely_server_side/helpers/support.rb
Instance Method Summary collapse
-
#experiment(experiment_key, options = {}, &blk) ⇒ Object
(also: #feature_flip)
Enables for us to wrap experiments Usage: experiment(‘sign_up_test’) do |config|.
- #feature_test(experiment_key, options = {}) ⇒ Object
- #get_optimizely_instance ⇒ Object
- #optimizely_sdk_project_instance(experiment_key, type) ⇒ Object
- #user_attributes ⇒ Object
- #visitor_id ⇒ Object
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, = {}, &blk) # Merge any other options to user attributes OptimizelyServerSide.configuration.user_attributes.merge!(.stringify_keys) variation_key = optimizely_sdk_project_instance(experiment_key, "experiment") OptimizelyServerSide::Experiment.new(experiment_key, variation_key).start(&blk) end |
#feature_test(experiment_key, options = {}) ⇒ Object
41 42 43 44 |
# File 'lib/optimizely_server_side/helpers/support.rb', line 41 def feature_test(experiment_key, = {}) OptimizelyServerSide.configuration.user_attributes.merge!(.stringify_keys) optimizely_sdk_project_instance(experiment_key, "feature") end |
#get_optimizely_instance ⇒ Object
61 62 63 64 |
# 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) ⇒ Object
32 33 34 35 36 37 38 39 |
# 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 ⇒ Object
57 58 59 |
# 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 ⇒ Object
53 54 55 |
# File 'lib/optimizely_server_side/helpers/support.rb', line 53 def visitor_id OptimizelyServerSide.configuration.user_attributes['visitor_id'] end |