{"repo":"fetlife/rollout","free":true,"listed":false,"github":"https://github.com/fetlife/rollout","clone":"git clone https://github.com/fetlife/rollout.git","description":"Feature flippers.","language":"Ruby","stars":2905,"topics":["rollout","feature-flags","ruby","redis","percentage"],"license":"MIT","category":"databases-storage","readme_excerpt":"rollout Fast feature flags based on Redis. Install it How it works Initialize a rollout object. I assign it to a global var. or even simpler Update data specific to a feature: Check whether a feature is active for a particular user: Check whether a feature is active globally: You can activate features using a number of different mechanisms. Groups Rollout ships with one group by default: \"all\", which does exactly what it sounds like. You can activate the all group for the chat feature like this: You might also want to define your own groups. We have one for our caretakers: You can activate multiple groups per feature. Deactivate groups like this: Groups need to be defined every time your app starts. The logic is not persisted anywhere. Specific Users You might want to let a specific user into a beta test or something. If that user isn't part of an existing group, you can let them in specifically: Deactivate them like this: User Percentages If you're rolling out a new feature, you might want to test the waters by slowly enabling it for a percentage of your users. The algorithm for determining which users get let in is this: So, for 20%, users 0, 1, 10, 11, 20, 21, etc would be allowed in. Those users would remain in as the percentage increases. Deactivate all percentages like this: Note that activating a feature for 100% of users will also make it active \"globally\". That is when calling Rollout#active? without a user object. In some cases you might want to have a feature activ","default_branch":null,"files":null,"tree":[],"storefront":"/r/fetlife","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/fetlife/rollout/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}