bvicenzo / chirrin-chirrion

Easy way to create and manage toggles with Ruby and Redis.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Chirrin Chirrion

Chirrin Chirrion is a gem to manage feature toggle, allowing developers to easily change the software behavior by showing/hiding new features and fixes.

Inspiration

The gem name was inspired by a funny Chapolim Colorado episode called 'Chirrin Chirrion del Diablo', where there was a magic wand that created new things if its bearer used the magic word 'chirrin', and those things were destroyed with the word 'chirrion'.

Install

gem install chirrin-chirrion

How to use

Configuration

require 'chirrin-chirrion'
redis_connection = Redis.new
redis_adapter = ChirrinChirrion::DatabaseAdapters::RedisAdapter.new(redis_connection)
ChirrinChirrion.config(database_adapter: redis_adapter)

Listing toggles

ChirrinChirrion.list
# => [#<OpenStruct description="What the toggle does.", active=true, name="toggle_name">]

Adding a toggle

ChirrinChirrion.add_toggle('new_user_register_validation', {active: true, description: 'When this is active, gender, age and phone number are not required'})

Removing a toggle

ChirrinChirrion.remove_toggle('new_user_register_validation')

Making a toggle active

ChirrinChirrion.chirrin!('new_user_register_validation')

Making a toggle inactive

ChirrinChirrion.chirrion!('new_user_register_validation')

Using a toggle with if else

if ChirrinChirrion.chirrin?('new_user_register_validation')
  # new busines rules
else
  # old busines rules
end

Using with procs and default values

chirrin_behavior = lambda do
  # do a lot of things
  { result: 'of things' }
end

chirrion_behavior = { result: 'old static result' }

ChirrinChirrion.chirrin_chirrion('my_toggle', chirrin_behavior, chirrion_behavior)

About

Easy way to create and manage toggles with Ruby and Redis.

License:GNU General Public License v2.0


Languages

Language:Ruby 99.5%Language:Shell 0.5%