can_use

It is a minimalist feature toggle/flag for crystal based on yaml feature-flags feature-toggle yaml canuse toggle-switches
0.0.1 released

can_use

🤔 Can I use this feature? Yes, sure!

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"
    
  2. 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
    
  3. Configure the environment and the path to the yaml.

    CanUse.configure do |config|
      config.file = "path/to/features.yaml"
      config.environment = "your_environment"
    end
    
  4. Verify if a feature is toggled on/off

    if CanUse.feature?("new_payment_flow")
      # do_something
    end
    

Development

  1. Install the dependencies.

    $ shards install
    
  2. Implement and test your changes.

    $ crystal spec
    
  3. Run fomart tool to verify code style.

    $ crystal tool format
    

TODO

  • [ ] Add ability to toggle on/off a feature programatically, ex: CanUse.enable("feature").
  • [ ] 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

Credits

This shard was initially inspired by [can_do]1 (Ruby).

Contributors

can_use:
  github: rodrigopinto/can_use
  version: ~> 0.0.1
License MIT
Crystal 0.27.2

Authors

Dependencies 0

Development Dependencies 0

Dependents 0

Last synced .
search fire star recently