View Source Unleash (Unleash v1.10.0)
If you have no plans on extending the client, then Unleash
will be the main
usage point of the library. Upon starting your app, the client is registered
with the unleash server, and two GenServer
s are started, one to fetch and
poll for feature flags from the server, and one to send metrics.
Configuring :disable_client
to true
disables both servers as well as
registration, while configuring :disable_metrics
to true
disables only
the metrics GenServer
.
Summary
Types
The context needed for a few activation strategies. Check their documentation for the required key.
Functions
Checks if the given feature is enabled. Checks as though an empty context was passed in.
Checks if the given feature is enabled.
Returns a variant for the given name.
Aliased to enabled?/2
Types
The context needed for a few activation strategies. Check their documentation for the required key.
:user_id
is the ID of the user interacting with your system, can be anyString.t()
session_id
is the ID of the current session in your system, can be anyString.t()
remote_address
is the address of the user interacting with your system, can be anyString.t()
Functions
Checks if the given feature is enabled. Checks as though an empty context was passed in.
Examples
iex> Unleash.enabled?(:my_feature, false)
false
iex> Unleash.enabled?(:my_feature, true)
true
Checks if the given feature is enabled.
If :disable_client
is true
, simply returns the given default
.
If :disable_metrics
is true
, nothing is logged about the given toggle.
Examples
iex> Unleash.enabled?(:my_feature)
false
iex> Unleash.enabled?(:my_feature, context)
false
iex> Unleash.enabled?(:my_feature, context, true)
false
Returns a variant for the given name.
If :disable_client
is true
, returns the fallback.
A variant
allows for more complicated toggling than a simple true
/false
, instead
returning one of the configured variants depending on whether or not there
are any overrides for a given context value as well as factoring in the
weights for the various weight options.
Examples
iex> Unleash.get_variant(:test)
%{enabled: true, name: "test", payload: %{...}}
iex> Unleash.get_variant(:test)
%{enabled: false, name: "disabled"}
Aliased to enabled?/2
Aliased to enabled?/3