Gem Version

Experiment Ruby SDK

Amplitude Ruby Server SDK for Experiment.

⚠️ Local evaluation process fork safety: When using a LocalEvaluationClient 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 the on_worker_boot hook.

Installation

Into Gemfile from rubygems.org:

“by gem ‘amplitude-experiment’

“nto environment gems from rubygems.org:

“by gem install ‘amplitude-experiment’

“o install beta versions:

“by gem install amplitude-experiment –pre

Remote Evaluation Quick Start

“by 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: ‘[email protected]’, device_id: ‘abcezas123’, user_properties: => 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

Local Evaluation Quick Start

“by 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: ‘[email protected]’, device_id: ‘abcezas123’, user_properties: => 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

More Information

Please visit our :100: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.

Need Help?

If you have any problems or issues over our SDK, feel free to create a github issue or submit a request on Amplitude Help.