Project

molasses

0.0
Low commit activity in last 3 years
No release in over a year
Ruby SDK for Molasses. Feature flags as a service
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Runtime

~> 1.0
~> 0.6.1
~> 1.6.1
 Project Readme

Molasses-Ruby

A Ruby SDK for Molasses. It allows you to evaluate 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.

Install

gem install molasses

bundle add molasses

Usage

Initialization

Start by initializing the client with an APIKey. This begins the polling for any feature updates. The updates happen every 15 seconds.

require 'molasses'

client = Molasses::Client.new("test_api_key")

If you decide you want to auto track experiments being viewed (experiment started events) you can turn that on by setting the :auto_send_events field to true

client = Molasses::Client.new("test_api_key", {
  :auto_send_events => true
})

Check if feature is active

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.

 client.is_active("FOO_TEST", {
   "id"=>"foo",
   "params"=>{
     "isBetaUser"=>"false",
     "isScaredUser"=>"false"
    }
 })

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.

client.is_active("TEST_FEATURE_FOR_USER")

Tracking and Experiments

To track any analytics event you can call track. experiment_success takes the event's name,the user, and any additional parameters for the event.

client.track("Button Clicked", {
   "id"=>"foo",
   "params"=>{
     "isBetaUser"=>"false",
     "isScaredUser"=>"false"
    }
 }, {
		"version": "v2.3.0"
	},)

To track whether an experiment was started you can call experiment_started. experiment_started takes the feature's name,the user, and any additional parameters for the event.

client.experiment_started("GOOGLE_SSO", {
   "id"=>"foo",
   "params"=>{
     "isBetaUser"=>"false",
     "isScaredUser"=>"false"
    }
 }, {
		"version": "v2.3.0"
	},)

To track whether an experiment was successful you can call experiment_success. experiment_success takes the feature's name,the user, and any additional parameters for the event.

client.experiment_success("GOOGLE_SSO", {
   "id"=>"foo",
   "params"=>{
     "isBetaUser"=>"false",
     "isScaredUser"=>"false"
    }
 }, {
		"version": "v2.3.0"
	},)

Example

require 'molasses'

client = Molasses::Client.new("test_api_key")

if client.is_active('NEW_CHECKOUT') {
  puts "we are a go"
else
  puts "we are a no go"
end
foo_test = client.is_active("FOO_TEST", {
  "id"=>"foo",
  "params"=>{
    "isBetaUser"=>"false",
    "isScaredUser"=>"false"
  }
})
if foo_test
  puts "we are a go"
else
  puts "we are a no go"
end