Amplitude Ruby Server SDK for Experiment.
⚠️ Local evaluation process fork safety: When using aLocalEvaluationClient
and forking the process, you must call#start
after forking to update the flag configuration state on the new process. For example, in Puma, this means calling#start
in theon_worker_boot
hook.
Into Gemfile from rubygems.org:
gem 'amplitude-experiment'
Into environment gems from rubygems.org:
gem install 'amplitude-experiment'
To install beta versions:
gem install amplitude-experiment --pre
require 'amplitude-experiment'
# (1) Get your deployment's API key
apiKey = 'YOUR-API-KEY'
# (2) Initialize the experiment client
experiment = AmplitudeExperiment.initialize_remote(api_key)
# (3) Fetch variants for a user
user = AmplitudeExperiment::User.new(user_id: 'user@company.com', device_id: 'abcezas123', user_properties: {'premium' => true})
# (4) Lookup a flag's variant
#
# To fetch asynchronous
experiment.fetch_async(user) do |_, variants|
variant = variants['YOUR-FLAG-KEY']
unless variant.nil?
if variant.value == 'on'
# Flag is on
else
# Flag is off
end
end
end
# To fetch synchronous
variants = experiment.fetch(user)
variant = variants['YOUR-FLAG-KEY']
unless variant.nil?
if variant.value == 'on'
# Flag is on
else
# Flag is off
end
end
require 'amplitude-experiment'
# (1) Get your deployment's API key
apiKey = 'YOUR-API-KEY'
# (2) Initialize the experiment client
experiment = AmplitudeExperiment.initialize_local(api_key)
# (3) Start the local evaluation client
experiment.start
# (4) Evaluate a user
user = AmplitudeExperiment::User.new(user_id: 'user@company.com', device_id: 'abcezas123', user_properties: {'premium' => true})
variants = experiment.evaluate(user)
variant = variants['YOUR-FLAG-KEY']
unless variant.nil?
if variant.value == 'on'
# Flag is on
else
# Flag is off
end
end
Please visit our 💯Developer Center for more instructions on using our the SDK.
See our Experiment Ruby SDK Docs for a list and description of all available SDK methods.
See our Local Evaluation Repo for more details about local evaluation binary logic.
If you have any problems or issues over our SDK, feel free to create a github issue or submit a request on Amplitude Help.