Skip to content

πŸ€” Can I use? CanUse is a minimalist feature toggle/flag for crystal, based on yaml file.

License

Notifications You must be signed in to change notification settings

rodrigopinto/can_use

Folders and files

NameName
Last commit message
Last commit date

Latest commit

59e26bc Β· Aug 30, 2019

History

8 Commits
Aug 30, 2019
Aug 30, 2019
Feb 22, 2019
Feb 22, 2019
Feb 22, 2019
Feb 22, 2019
Feb 22, 2019
Aug 30, 2019
Aug 30, 2019

Repository files navigation

can_use

πŸ€”Can I use this feature? Hmm, let me see.

CanUse is a minimalist feature toggle/flag for crystal, based on yaml file.

GitHub release Build Status

Installation

  1. Add the dependency to your shard.yml:
dependencies:
  can_use:
    github: rodrigopinto/can_use
  1. Run shards install

Usage

  1. Require the library on your code base.
require "can_use"
  1. Create a file with the features toggle definitions. We suggest to name it as featutes.yaml, but it is up to you.

    Note: The defaults block is mandatory, as it will be used as fallback when values are not defined on the environment set on configuration. Example:

defaults:
  new_payment_flow: false
  rating_service: false

development:
  new_payment_flow: true
  rating_service: false

your_environment:
  new_payment_flow: true
  1. Configure the environment and the path to the yaml.
CanUse.configure do |config|
  config.file = "path/to/features.yaml"
  config.environment = "your_environment"
end
  1. Verify if a feature is toggled on/off
if CanUse.feature?("new_payment_flow")
  # do_something
end
  1. Enabling or Disabling a feature is simple as

Enabling

CanUse.feature?("feature_a") # => false

CanUse.enable("feature_a") # => true

CanUse.feature?("feature_a") # => true

Disabling

CanUse.feature?("feature_b") # => true

CanUse.disable("feature_b") # => false

CanUse.feature?("feature_b") # => false

Development

  1. Install the dependencies.
$ shards install
  1. Implement and test your changes.
$ crystal spec
  1. Run fomart tool to verify code style.
$ crystal tool format

TODO

  • Allows ENVIRONMENT variables to set/override a value for a key.

Contributing

  1. Fork it (https://github.com/rodrigopinto/can_use/fork)
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Contributors

Credits

This shard was initially inspired by can_do.

About

πŸ€” Can I use? CanUse is a minimalist feature toggle/flag for crystal, based on yaml file.

Topics

Resources

License

Stars

Watchers

Forks