LaunchDarkly SDK for Ruby
Quick setup
- Install the Ruby SDK with
gem
gem install ldclient-rb
- Require the LaunchDarkly client:
require 'ldclient-rb'
- Create a new LDClient with your SDK key:
client = LaunchDarkly::LDClient.new("your_sdk_key")
Ruby on Rails
Add
gem 'ldclient-rb'
to your Gemfile andbundle install
Initialize the launchdarkly client in
config/initializers/launchdarkly.rb
:
Rails.configuration.ld_client = LaunchDarkly::LDClient.new("your_sdk_key")
- 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.[: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
- 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
- Create a new feature flag on your dashboard
- 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
- www.launchdarkly.com for more information
- docs.launchdarkly.com for our documentation and SDKs
- apidocs.launchdarkly.com for our API documentation
- blog.launchdarkly.com for the latest product updates