Bastet - The group based feature rollout beast

Gemfile

gem "bastet"

Configuration

redis = Redis.new
bastet = Bastet.setup(redis) #=> Bastet::Base.instance ...

Usage

group = Bastet::Group.new('admin_users') { |user| user.admin? }
bastet.activate("admin_only_feature", group)

user = User.new(admin: true)
bastet.active?("admin_only_feature", user) #=> true

bastet.deactivate("admin_only_feature", group)
bastet.inactive?("admin_only_feature", user) #=> true

To do

  1. Support activating/deactivating for multiple users/groups at once
  2. Percentage support
  3. Logging

Contibuting

Build Status

  1. Fork Basteet
  2. Create a topic branch - git checkout -b my_branch
  3. Push to your branch - git push origin my_branch
  4. Create a pull request from your branch