- 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")
-
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.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
- In your controllers, access the client using
Rails.application.config.ld_client.variation('your.flag.key', launchdarkly_settings, false)
Note that this gem will automatically switch to using the Rails logger it is detected.
- 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.variation("your.flag.key", {key: "[email protected]"}, false)
# application code to show the feature
else
# the code to run if the feature is off
end
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.
We run integration tests for all our SDKs using a centralized test harness. This approach gives us the ability to test for consistency across SDKs, as well as test networking behavior in a long-running application. These tests cover each method in the SDK, and verify that event sending, flag evaluation, stream reconnection, and other aspects of the SDK all behave correctly.
See Contributing
- 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
- Java
- [JavaScript] (http://docs.launchdarkly.com/docs/js-sdk-reference "LaunchDarkly JavaScript SDK")
- [PHP] (http://docs.launchdarkly.com/docs/php-sdk-reference "LaunchDarkly PHP SDK")
- [Python] (http://docs.launchdarkly.com/docs/python-sdk-reference "LaunchDarkly Python SDK")
- [Python Twisted] (http://docs.launchdarkly.com/docs/python-twisted-sdk-reference "LaunchDarkly Python Twisted SDK")
- [Go] (http://docs.launchdarkly.com/docs/go-sdk-reference "LaunchDarkly Go SDK")
- [Node.JS] (http://docs.launchdarkly.com/docs/node-sdk-reference "LaunchDarkly Node SDK")
- [.NET] (http://docs.launchdarkly.com/docs/dotnet-sdk-reference "LaunchDarkly .Net SDK")
- [Ruby] (http://docs.launchdarkly.com/docs/ruby-sdk-reference "LaunchDarkly Ruby SDK")
- [iOS] (http://docs.launchdarkly.com/docs/ios-sdk-reference "LaunchDarkly iOS SDK")
- [Android] (http://docs.launchdarkly.com/docs/android-sdk-reference "LaunchDarkly Android SDK")
- Explore LaunchDarkly
- [launchdarkly.com] (http://www.launchdarkly.com/ "LaunchDarkly Main Website") for more information
- [docs.launchdarkly.com] (http://docs.launchdarkly.com/ "LaunchDarkly Documentation") for our documentation and SDKs
- [apidocs.launchdarkly.com] (http://apidocs.launchdarkly.com/ "LaunchDarkly API Documentation") for our API documentation
- [blog.launchdarkly.com] (http://blog.launchdarkly.com/ "LaunchDarkly Blog Documentation") for the latest product updates
- [Feature Flagging Guide] (https://github.com/launchdarkly/featureflags/ "Feature Flagging Guide") for best practices and strategies