Flipper Cloud

Rollout adapter

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.adapter { 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.

Start flipping features with Flipper Cloud to get support, audit history, finer-grained permissions, multi-environment sync, and all of your projects in one place.

Prefer our open source Cloudless option? You can also choose from several tiers to sponsor Flipper on GitHub.