A Ruby SDK for Molasses. It allows you to evaluate a user's status for a feature. It also helps simplify logging events for A/B testing.
Molasses uses polling to check if you have updated features. Once initialized, it takes microseconds to evaluate if a user is active.
1gem install molasses23bundle add molasses
Start by initializing the client with an APIKey
. This begins the polling for any feature updates. The updates happen every 15 seconds.
1require 'molasses'23client = Molasses::Client.new("test_api_key")
If you decide not to track analytics events (experiment started, experiment success) you can turn them off by setting the send_events
field to false
1client = Molasses::Client.new("test_api_key", false)
You can call is_active
with the key name and optionally a user's information. The id
field is used to determine whether a user is part of a percentage of users. If you have other constraints based on user params you can pass those in the params
field.
1client.is_active("FOO_TEST", {2"id"=>"foo",3"params"=>{4"isBetaUser"=>"false",5"isScaredUser"=>"false"6}7})
You can check if a feature is active for a user who is anonymous by just calling isActive
with the key. You won't be able to do percentage roll outs or track that user's behavior.
1client.is_active("TEST_FEATURE_FOR_USER")
To track whether an experiment was successful you can call experiment_success
. experiment_success takes the feature's name, any additional parameters for the event and the user.
1client.experiment_success("GOOGLE_SSO",{2"version": "v2.3.0"3},{4"id"=>"foo",5"params"=>{6"isBetaUser"=>"false",7"isScaredUser"=>"false"8}9})
1require 'molasses'23client = Molasses::Client.new("test_api_key")45if client.is_active('NEW_CHECKOUT') {6puts "we are a go"7else8puts "we are a no go"9end10foo_test = client.is_active("FOO_TEST", {11"id"=>"foo",12"params"=>{13"isBetaUser"=>"false",14"isScaredUser"=>"false"15}16})17if foo_test18puts "we are a go"19else20puts "we are a no go"21end