Unleash v1.4.0 Unleash.Plug View Source
An extra fancy Plug and utility functions to help when developing Plug
or Phoenix-based applications. It automatically puts together a
Unleash.context/0 under the Plug.Conn's Plug.assigns/0.
To use, call plug Unleash.Plug in your plug pipeline. It depends on the
session, and requires being after :fetch_session to work. It accepts the
following options:
:user_id: The key under which the user's ID is found in the session.:session_id: The key under wwhich the session ID is found in the session.
After which, enabled?/3 is usable.
If you are also using PhoenixGon in your application, you can call
put_feature/3 to put a specific feature flag into the gon object for
using on the client side.
Link to this section Summary
Functions
Given a t:Plug.Conn/0, a feature, and (optionally) a boolean, return
whether or not a feature is enabled. This requires this plug to be a part
of the plug pipeline, as it will construct an t:Unleash.context()/0 out
of the session.
If you are using PhoenixGon, you can call this to put a feature in the
gon object to be used on the client side. It will be available under
window.Gon.getAssets('features'). It listens to the options that
are configured by PhoenixGon.Pipeline.
Link to this section Functions
enabled?(conn, feature, default \\ false)
View Sourceenabled?(Plug.Conn.t(), String.t() | atom(), boolean()) :: boolean()
Given a t:Plug.Conn/0, a feature, and (optionally) a boolean, return
whether or not a feature is enabled. This requires this plug to be a part
of the plug pipeline, as it will construct an t:Unleash.context()/0 out
of the session.
Examples
iex> Unleash.Plug.enabled?(conn, :test)
false
iex> Unleash.Plug.enabled?(conn, :test, true)
true
put_feature(conn, feature, default \\ false)
View Sourceput_feature(Plug.Conn.t(), String.t() | atom(), boolean()) :: Plug.Conn.t()
If you are using PhoenixGon, you can call this to put a feature in the
gon object to be used on the client side. It will be available under
window.Gon.getAssets('features'). It listens to the options that
are configured by PhoenixGon.Pipeline.
Examples
iex> Unleash.Plug.put_feature(conn, :test)
%Plug.Conn{}
iex> Unleash.Plug.enabled?(conn, :test, true)
%Plug.Conn{}