CanUse is a minimalist feature toggle/flag for crystal, based on yaml file.
- Add the dependency to your
dependencies: can_use: github: rodrigopinto/can_use
Require the library on your code base.
Create a file with the features toggle definitions. We suggest to name it as
featutes.yaml, but it is up to you.
defaultsblock is mandatory, as it will be used as fallback when values are not defined on the environment set on
defaults: new_payment_flow: false rating_service: false development: new_payment_flow: true rating_service: false your_environment: new_payment_flow: true
Configure the environment and the path to the yaml.
CanUse.configure do |config| config.file = "path/to/features.yaml" config.environment = "your_environment" end
Verify if a feature is toggled on/off
if CanUse.feature?("new_payment_flow") # do_something end
Install the dependencies.
$ shards install
Implement and test your changes.
$ crystal spec
Run fomart tool to verify code style.
$ crystal tool format
- Add ability to toggle on/off a feature programatically, ex:
- Allows ENVIRONMENT variables to set/override a value for a key.
- Fork it (https://github.com/rodrigopinto/can_use/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
This shard was initially inspired by can_do (Ruby).
- Rodrigo Pinto - creator and maintainer