Packages

ConfigCat SDK for Elixir. Feature Flags created by developers for developers with ❤️. ConfigCat lets you manage feature flags across frontend, backend, mobile, and desktop apps without (re)deploying code. % rollouts, user targeting, segmentation. Feature toggle SDKs for all main languages.

Current section

Files

Jump to
configcat lib config_cat config preferences.ex
Raw

lib/config_cat/config/preferences.ex

defmodule ConfigCat.Config.Preferences do
@moduledoc false
alias ConfigCat.Config
alias ConfigCat.RedirectMode
@type opt :: {:base_url, url()} | {:redirect_mode, RedirectMode.t()}
@type t :: %{String.t() => term()}
@type url :: String.t()
@base_url "u"
@redirect_mode "r"
@salt "s"
@spec new([opt]) :: t()
def new(opts \\ []) do
%{
@base_url => opts[:base_url],
@redirect_mode => opts[:redirect_mode]
}
end
@spec base_url(t()) :: url() | nil
def base_url(preferences) do
Map.get(preferences, @base_url)
end
@spec redirect_mode(t()) :: RedirectMode.t() | nil
def redirect_mode(preferences) do
Map.get(preferences, @redirect_mode)
end
@spec salt(t()) :: Config.salt()
def salt(preferences) do
Map.get(preferences, @salt, "")
end
end