Permalink
Fetching contributors…
Cannot retrieve contributors at this time
78 lines (55 sloc) 2.09 KB

Flipper Rollout

A Rollout adapter for importing Rollout data into Flipper.

requires:

  • Rollout ~> 2.0
  • Flipper >= 11.0

Installation

Add this line to your application's Gemfile:

gem 'flipper-rollout'

And then execute:

$ bundle

Or install it yourself with:

$ gem install flipper-redis

Usage

require 'redis'
require 'rollout'
require 'flipper'
require 'flipper/adapters/redis'
require 'flipper/adapters/rollout'

# setup redis, rollout and rollout flipper
redis = Redis.new
rollout = Rollout.new(redis)
rollout_adapter = Flipper::Adapters::Rollout.new(rollout)
rollout_flipper = Flipper.new(rollout_adapter)

# setup flipper default instance
Flipper.configure do |config|
  config.default { Flipper.new(Flipper::Adapters::Redis.new(redis)) }
end

# import rollout into redis flipper
Flipper.import(rollout_flipper)

That was easy.

Groups

If you're using Rollout groups you'll need to register them as Flipper groups:

Rollout

$rollout.define_group(:caretakers) do |user|
  user.caretaker?
end

Flipper

Flipper.register(:caretakers) do |user|
  user.caretaker?
end

flipper_id

Rollout expects users to respond to id (or method specified in Rollout#initialize opts) and stores this value in Redis when a feature is activated for a user. You'll want to make sure that your Flipper actor's flipper_id matches this logic.

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Added some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request