Feature flipping is the act of enabling or disabling features or parts of your application, ideally without re-deploying or changing anything in your code base.
Add this to your application's shard.yml
:
dependencies:
flipper:
github: metaware/flipper
require "flipper"
You are free to use anyone of the supported adapters/stores from crystal-kiwi
Flipper.adapter = Kiwi::RedisStore.new(Redis.new)
Flipper.enable(:feature_name)
if Flipper.enabled?(:feature_name)
puts "Feature launched, Let's roll!"
else
puts "Feature not released yet."
end
Flipper.disable(:search)
if Flipper.disabled?(:search)
puts "Search is not available yet!"
end
Note: I strongly recommend to not use Kiwi::MemoryStore
for development or production environments. It's suitable only for your test environments.
- Simple Logic Gate
- Groups
- Individual Users/Actors
- Percentage of Actors
- Fork it ( https://github.com/metaware/flipper/fork )
- Create your feature branch (git checkout -b my-new-feature)
- Commit your changes (git commit -am 'Add some feature')
- Push to the branch (git push origin my-new-feature)
- Create a new Pull Request
- A huge shoutout to flipper (Ruby) and rollout (Ruby) for inspiration.
flipper
stands on work done by greyblake on crystal-kiwi
- Jasdeep Singh - creator, maintainer