• Stars
    star
    3,295
  • Rank 13,620 (Top 0.3 %)
  • Language
    Ruby
  • License
    MIT License
  • Created over 12 years ago
  • Updated over 1 year ago

Reviews 5.0 (1)

over 1 year ago by Igor Kasyanchuk

Great library if you want to add feature flags to your app. I like the flexibility and ability to fully/partially/specifically enable features.

Repository Details

🐬 Beautiful, performant feature flags for Ruby.

Flipper Mark

Website | Documentation | Examples | Chat | Twitter | Ruby.social

Flipper

Beautiful, performant feature flags for Ruby and Rails.

Flipper gives you control over who has access to features in your app.

  • Enable or disable features for everyone, specific actors, groups of actors, a percentage of actors, or a percentage of time.
  • Configure your feature flags from the console or a web UI.
  • Regardless of what data store you are using, Flipper can performantly store your feature flags.
  • Use Flipper Cloud to cascade features from multiple environments, share settings with your team, control permissions, keep an audit history, and rollback.

Control your software β€” don't let it control you.

Installation

Add this line to your application's Gemfile:

gem 'flipper'

You'll also want to pick a storage adapter, for example:

gem 'flipper-active_record'

And then execute:

$ bundle

Or install it yourself with:

$ gem install flipper

Subscribe & Ship

πŸ’Œ Β Subscribe - we'll send you short and sweet emails when we release new versions (examples).

Getting Started

Use Flipper#enabled? in your app to check if a feature is enabled.

# check if search is enabled
if Flipper.enabled?(:search, current_user)
  puts 'Search away!'
else
  puts 'No search for you!'
end

All features are disabled by default, so you'll need to explicitly enable them.

# Enable a feature for everyone
Flipper.enable :search

# Enable a feature for a specific actor
Flipper.enable_actor :search, current_user

# Enable a feature for a group of actors
Flipper.enable_group :search, :admin

# Enable a feature for a percentage of actors
Flipper.enable_percentage_of_actors :search, 2

Read more about getting started with Flipper and enabling features.

Flipper Cloud

Like Flipper and want more? Check out Flipper Cloud, which comes with:

  • multiple environments β€” production, staging, per continent, whatever you need. Every environment inherits from production by default and every project comes with a project overview page that shows each feature and its status in each environment.
  • personal environments β€” everyone on your team gets a personal environment (that inherits from production) which they can modify however they want without stepping on anyone else's toes.
  • permissions β€” grant access to everyone in your organization or lockdown each project to particular people. You can even limit access to a particular environment (like production) to specific people.
  • audit history β€” every feature change and who made it.
  • rollbacks β€” enable or disable a feature accidentally? No problem. You can roll back to any point in the audit history with a single click.
  • maintenance β€” we'll keep the lights on for you. We also have handy webhooks and background polling for keeping your app in sync with Cloud, so our availability won't affect yours. All your feature flag reads are local to your app.
  • everything in one place β€” no need to bounce around from different application UIs or IRB consoles.

Flipper Cloud Screenshot

Cloud is super simple to integrate with Rails (demo app), Sinatra or any other framework.

We also have a free plan that you can use forever.

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Run the tests (bundle exec rake). Check out Docker-Compose if you need help getting all the adapters running.
  4. Commit your changes (git commit -am 'Added some feature')
  5. Push to the branch (git push origin my-new-feature)
  6. Create new Pull Request

Releasing

  1. Update the version to be whatever it should be and commit.
  2. script/release
  3. Create a new GitHub Release

Brought To You By

pic @mention area
@jnunemaker @jnunemaker most things
@bkeepers @bkeepers most things
@dpep @dpep tbd
@alexwheeler @alexwheeler api
@thetimbanks @thetimbanks ui
@lazebny @lazebny docker
@pagertree @pagertree sponsor
@kdaigle @kdaigle sponsor

More Repositories

1

httparty

πŸŽ‰ Makes http fun again!
Ruby
5,789
star
2

crack

Really simple JSON and XML parsing, ripped from Merb and Rails.
Ruby
539
star
3

nunes

πŸ“ˆ The friendly gem that instruments everything for you, like I would if I could.
Ruby
498
star
4

fancy-zoom

[DEAD] Zoomy JavaScript based loosely on Fancy Zoom by Cabel Sasser.
JavaScript
475
star
5

canable

Simple Ruby authorization system.
Ruby
312
star
6

happymapper

[unmaintained] XML to object mapping library
Ruby
300
star
7

twitter-app

example rails 3 application that uses oauth
Ruby
132
star
8

joint

[DEAD AND UNMAINTAINED] MongoMapper and GridFS joined in file upload love.
Ruby
129
star
9

resilient

πŸ”Œ circuit breaker based on netflix/hystrix but in ruby, hopefully commands/semaphores eventually too
Ruby
103
star
10

user_stamp

A Rails plugin that adds the ability to automatically stamp each record with the currently logged in user.
Ruby
84
star
11

flipper-ui

[MOVED] ... to main flipper repo. See readme.
67
star
12

google-weather

stupid simple fetching of the weather using google's api
Ruby
54
star
13

bin

DEAD AND UNMAINTAINED. ActiveSupport MongoDB Cache store.
Ruby
54
star
14

scrobbler

[DEAD] Scrobbler is a wrapper for the audioscrobbler (last.fm) web services.
Ruby
48
star
15

hunt

really simple search for mongomapper
Ruby
38
star
16

lorem

Ever get tired of opening up lipsum.com, filling out a form and waiting for it to give you your filler text? Yeah, me too. I threw this together in an hour to generate lipsum text from the command line.
Ruby
33
star
17

scam

Really basic fake model for doing types in memory
Ruby
32
star
18

dotfiles

Some of my dotfiles, nothing fancy or worthwhile
Shell
30
star
19

googlereader

[DEAD AND UNMAINTAINED] Wrapper for Google Reader's undocumented and possibly "unstable" API. By unstable, I mean if they haven't documented it, then they could change it at anytime without notice.
Ruby
28
star
20

cassanity

Brings sanity to CQL + Ruby.
Ruby
25
star
21

columbus

Autodiscovers feeds from urls
Ruby
24
star
22

gemwhois

Whois for gems, because gem names are like domains in the 90's
Ruby
23
star
23

googlebase

[DEAD] Google Base Auth Class is a base for authenticating to google and making requests to google services.
Ruby
21
star
24

brow

🀨 A generic background thread worker for shipping events to some API backend.
Ruby
20
star
25

wand

Mime-Type gem with fallback to unix file command. You most likely don't need this gem.
Ruby
20
star
26

javascripts

[DEAD] some various js files and examples for me to refer to and use
JavaScript
17
star
27

stars

collects github.com stars from people you follow
Ruby
14
star
28

adapter-mongo

Adapter for mongo
Ruby
13
star
29

adapter-redis

Redis adapter
Ruby
12
star
30

flipper-redis

[MOVED] into flipper, check out readme for more
11
star
31

mirrored

[DEAD] Mirrored is a wrapper for the mirrored del.icio.us and ma.gnolia apis.
Ruby
11
star
32

ag

Nothing serious or finished, just playing with events, feeds, activities, timelines, wooooooooooo
Ruby
10
star
33

adapter-riak

Riak adapter
Ruby
9
star
34

wufoo

simple wrapper for the wufoo submission api
Ruby
9
star
35

wordpress_live_search_plugin

[DEAD] live search plugin for wordpress that just works (with prototype)
PHP
8
star
36

twitter

The twitter gem has moved to https://github.com/sferik/twitter
7
star
37

common_helpers

[old and dead] helpers that i use often in apps, nothing special
Ruby
6
star
38

crdts

Nothing serious or finished, just playing with convergent replicated data types
Ruby
6
star
39

adapter-memcached

Memcached adapter
Ruby
6
star
40

snitch

[DEAD AND UNMAINTAINED] Drop dead easy subversion commit notifications.
Ruby
5
star
41

chinwag

[DEAD] chat app that steve and i are playing with, uses google app engine, html5, css3 and jquery
Python
5
star
42

toystore-mongo

Mongo integration for Toystore
Ruby
5
star
43

tao

Nothing serious or finished, just playing with facebook tao concepts
Ruby
5
star
44

scout-plugins

scout plugins as i make them...
Ruby
4
star
45

flipper-mongo

[MOVED] merged into flipper repo, check out readme for more
3
star
46

disk_queue

Nothing to see here. Move along.
Ruby
3
star
47

adapter-cassanity

Adapter for Cassanity
Ruby
1
star
48

clostar

star slurper
Clojure
1
star
49

jnunemaker.github.com

my new blog
CSS
1
star
50

prey

[UNFINISHED] Kestrel client gem based on thrift interface.
Ruby
1
star
51

flipper-cassanity

Cassanity adapter for Flipper.
Ruby
1
star