ProductPromotion
Logo

Elixir

made by https://0x3d.site

GitHub - sorentwo/flippant: :traffic_light: Feature flipping for the Elixir world
:traffic_light: Feature flipping for the Elixir world - sorentwo/flippant
Visit Site

GitHub - sorentwo/flippant: :traffic_light: Feature flipping for the Elixir world

GitHub - sorentwo/flippant: :traffic_light: Feature flipping for the Elixir world

Flippant

Build Status Coverage Status Hex version Inline docs

Flippant is a library for feature toggling in Elixir applications

Installation

  1. Add flippant to your list of dependencies in mix.exs:
def deps do
  [{:flippant, "~> 2.0"}]
end
  1. Add an adapter such as redix for Redis or postgrex for Postgres:
def deps do
  [{:redix, "~> 1.0"}]
end
  1. Set an adapter within your config.exs:
config :flippant,
       adapter: Flippant.Adapter.Redis,
       redis_opts: [url: System.get_env("REDIS_URL"), name: :flippant],
       set_key: "flippant-features"

Usage

Complete documentation is available online, but here is a brief overview:

Features are comprised of groups, and rules. Your application defines named groups, and you set rules to specify which groups are enabled for a particular feature. When it comes time to check if a feature is enabled for a particular actor (i.e. user or account), all the groups for a feature are evaluated. If the actor belongs to any of the groups then the feature is enabled.

All interaction happens directly through the Flippant module.

Define some basic groups:

Flippant.register("staff", fn %User{staff?: staff?}, _ -> staff?)
Flippant.register("testers", fn %User{id: id}, ids -> id in ids end)

Set a few rules for the "search" feature:

Flippant.enable("search", "staff")
Flippant.enable("search", "testers", [1818, 1819])

Check if the current user has access to a feature:

Flippant.enabled?("search", %User{id: 1817, staff?: false}) #=> true
Flippant.enabled?("search", %User{id: 1818, staff?: false}) #=> false
Flippant.enabled?("search", %User{id: 1820, staff?: true}) #=> true

License

MIT License, see LICENSE.txt for details.

Articles
to learn more about the elixir concepts.

Resources
which are currently available to browse on.

mail [email protected] to add your project or resources here 🔥.

FAQ's
to know more about the topic.

mail [email protected] to add your project or resources here 🔥.

Queries
or most google FAQ's about Elixir.

mail [email protected] to add more queries here 🔍.

More Sites
to check out once you're finished browsing here.

0x3d
https://www.0x3d.site/
0x3d is designed for aggregating information.
NodeJS
https://nodejs.0x3d.site/
NodeJS Online Directory
Cross Platform
https://cross-platform.0x3d.site/
Cross Platform Online Directory
Open Source
https://open-source.0x3d.site/
Open Source Online Directory
Analytics
https://analytics.0x3d.site/
Analytics Online Directory
JavaScript
https://javascript.0x3d.site/
JavaScript Online Directory
GoLang
https://golang.0x3d.site/
GoLang Online Directory
Python
https://python.0x3d.site/
Python Online Directory
Swift
https://swift.0x3d.site/
Swift Online Directory
Rust
https://rust.0x3d.site/
Rust Online Directory
Scala
https://scala.0x3d.site/
Scala Online Directory
Ruby
https://ruby.0x3d.site/
Ruby Online Directory
Clojure
https://clojure.0x3d.site/
Clojure Online Directory
Elixir
https://elixir.0x3d.site/
Elixir Online Directory
Elm
https://elm.0x3d.site/
Elm Online Directory
Lua
https://lua.0x3d.site/
Lua Online Directory
C Programming
https://c-programming.0x3d.site/
C Programming Online Directory
C++ Programming
https://cpp-programming.0x3d.site/
C++ Programming Online Directory
R Programming
https://r-programming.0x3d.site/
R Programming Online Directory
Perl
https://perl.0x3d.site/
Perl Online Directory
Java
https://java.0x3d.site/
Java Online Directory
Kotlin
https://kotlin.0x3d.site/
Kotlin Online Directory
PHP
https://php.0x3d.site/
PHP Online Directory
React JS
https://react.0x3d.site/
React JS Online Directory
Angular
https://angular.0x3d.site/
Angular JS Online Directory