Skip to main content

Ruby SDK

You will need your API URL and your API token in order to connect the Client SDK to you Unleash instance. You can find this information in the “Admin” section Unleash management UI. Read more

require 'unleash'
@unleash =
url: '<API url>',
app_name: 'simple-test',
custom_http_headers = {'Authorization': '<API token>'},

Sample usage#

To evaluate a feature toggle, you can use:

if @unleash.is_enabled? "AwesomeFeature", @unleash_context
puts "AwesomeFeature is enabled"

If the feature is not found in the server, it will by default return false. However you can override that by setting the default return value to true:

if @unleash.is_enabled? "AwesomeFeature", @unleash_context, true
puts "AwesomeFeature is enabled by default"

Alternatively by using if_enabled you can send a code block to be executed as a parameter:

@unleash.if_enabled "AwesomeFeature", @unleash_context, true do
puts "AwesomeFeature is enabled by default"


If no variant is found in the server, use the fallback variant.

fallback_variant = 'default', enabled: true, payload: {"color" => "blue"})
variant = @unleash.get_variant "ColorVariants", @unleash_context, fallback_variant
puts "variant color is: #{variant.payload.fetch('color')}"

Client methods#

Method NameDescriptionReturn Type
is_enabled?Check if feature toggle is to be enabled or not.Boolean
enabled?Alias to the is_enabled? method. But more ruby idiomatic.Boolean
if_enabledRun a code block, if a feature is enabled.yield
get_variantGet variant for a given featureUnleash::Variant
shutdownSave metrics to disk, flush metrics to server, and then kill ToggleFetcher and MetricsReporter threads. A safe shutdown. Not really useful in long running applications, like web applications.nil
shutdown!Kill ToggleFetcher and MetricsReporter threads immediately.nil