FeatureFlagger
Partial release your features.
Installation
Add this line to your application's Gemfile:
gem 'feature_flagger'
And then execute:
$ bundle
Or install it yourself as:
$ gem install feature_flagger
Configuration
Configure redis by adding
config/initializers/feature_flagger.rb:FeatureFlagger.configure do |config| config.storage.redis = $redis endCreate a
rollout.ymlin config path and declare a rollout:account: # model name email_marketing: # namespace (optional) new_email_flow: # feature key description: @dispatch team uses this rollout to introduce a new email flow for certains users. Read more at [link]Adds rollout funcionality to your model:
class Account < ActiveRecord::Base include FeatureFlagger::Model # .... end
Usage
account = Account.first
# Release feature for account
account.release!([:email_marketing, :new_email_flow])
#=> true
# Check feature for a given account
account.rollout?([:email_marketing, :new_email_flow])
#=> true
# Remove feature for given account
account.unrelease!([:email_marketing, :new_email_flow])
#=> true
# If you try to check an inexistent rollout key it will raise an error.
account.rollout?([:email_marketing, :new_email_flo])
FeatureFlagger::KeyNotFoundError: ["account", "email_marketing", "new_email_flo"]
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/ResultadosDigitais/feature_flagger.