LaunchDarkly SDK for Ruby

Gem Version

Circle CI Code Climate Test Coverage security

Quick setup

  1. Install the Ruby SDK with gem
gem install ldclient-rb
  1. Require the LaunchDarkly client:
require 'ldclient-rb'
  1. Create a new LDClient with your SDK key:
client = LaunchDarkly::LDClient.new("your_sdk_key")

Ruby on Rails

  1. Add gem 'ldclient-rb' to your Gemfile and bundle install

  2. Initialize the launchdarkly client in config/initializers/launchdarkly.rb:

Rails.configuration.ld_client = LaunchDarkly::LDClient.new("your_sdk_key")
  1. You may want to include a function in your ApplicationController
    def launchdarkly_settings
      if current_user.present?
        {
          key: current_user.id,
          anonymous: false,
          email: current_user.email,
          custom: { groups: current_user.groups.pluck(:name) },
          # Any other fields you may have
          # e.g. lastName: current_user.last_name,
        }
      else
        if Rails::VERSION::MAJOR <= 3
          hash_key = request.session_options[:id]
        else
          hash_key = session.id
        end
        # session ids should be private to prevent session hijacking
        hash_key = Digest::SHA256.base64digest hash_key
        {
          key: hash_key,
          anonymous: true,
        }
      end
    end
  1. In your controllers, access the client using
Rails.application.config.ld_client.toggle?('your.flag.key', launchdarkly_settings, false)

Note that this gem will automatically switch to using the Rails logger it is detected.

Your first feature flag

  1. Create a new feature flag on your dashboard
  2. In your application code, use the feature's key to check whether the flag is on for each user:
if client.toggle?("your.flag.key", {key: "[email protected]"}, false)
  # application code to show the feature
else
  # the code to run if the feature is off
end

Learn more

Check out our documentation for in-depth instructions on configuring and using LaunchDarkly. You can also head straight to the complete reference guide for this SDK.

Contributing

See Contributing

About LaunchDarkly

  • LaunchDarkly is a continuous delivery platform that provides feature flags as a service and allows developers to iterate quickly and safely. We allow you to easily flag your features and manage them from the LaunchDarkly dashboard. With LaunchDarkly, you can:
    • Roll out a new feature to a subset of your users (like a group of users who opt-in to a beta tester group), gathering feedback and bug reports from real-world use cases.
    • Gradually roll out a feature to an increasing percentage of users, and track the effect that the feature has on key metrics (for instance, how likely is a user to complete a purchase if they have feature A versus feature B?).
    • Turn off a feature that you realize is causing performance problems in production, without needing to re-deploy, or even restart the application with a changed configuration file.
    • Grant access to certain features based on user attributes, like payment plan (eg: users on the ‘gold’ plan get access to more features than users in the ‘silver’ plan). Disable parts of your application to facilitate maintenance, without taking everything offline.
  • LaunchDarkly provides feature flag SDKs for
  • Explore LaunchDarkly