A simple ruby feature flipper
Go to file
Guillaume Dott 41b4abe0db Accept proc and array for redis namespace 2014-08-18 11:06:58 +02:00
lib Accept proc and array for redis namespace 2014-08-18 11:06:58 +02:00
test Add tests 2014-08-18 10:49:35 +02:00
.gitignore First commit 2014-08-14 17:12:22 +02:00
Gemfile First commit 2014-08-14 17:12:22 +02:00
LICENSE.txt First commit 2014-08-14 17:12:22 +02:00
README.md Add Redis repository 2014-08-14 18:00:15 +02:00
Rakefile Add tests 2014-08-18 10:49:35 +02:00
flop.gemspec Add tests 2014-08-18 10:49:35 +02:00

README.md

Flop

A simple ruby feature flipper.

Installation

Add this line to your application's Gemfile:

gem 'flop'

And then execute:

$ bundle

Or install it yourself as:

$ gem install flop

Usage

Repositories

First, you need to configure where to store everything by setting a repository.

Available repositories are :

  • Flop::Repository::Memory
  • Flop::Repository::Redis

To set the repository, create a new object and affect it to Flop.repo.

Flop.repo = Flop::Repository::Memory.new

require 'redis'

Flop.repo = Flop::Repository::Redis.new(Redis.new)

Features

To access a feature, you can call the Flop[] method or create a new Flop::Feature object.

Flop[:example_feature] # is the same as
Flop::Feature.new(:example_feature)

Available methods on Flop::Feature are :

  • feature.active? returns true if the feature is active
  • feature.inactive? returns true if the feature is inactive
  • feature.set(boolean) sets the state of the feature to the passed value
  • feature.activate activates the feature
  • feature.deactivate deactivates the feature
  • feature.toggle toggles the state of the feature
  • feature.with { } executes the block if the feature is active
  • feature.without { } executes the block if the feature is inactive

Examples

Flop.repo = Flop::Repository::Memory.new

Flop[:feature].active? # => false
Flop[:feature].toggle # => true

Flop[:feature].with do
  # code
end

Contributing

  1. Fork it ( https://github.com/gdott9/flop/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request