Split.RPC.Fallback (split v0.2.0-rc.0)
This module is used to provide default values for all Splitd RPC calls.
When a call to Splitd fails, the fallback values are returned instead of the error received from the socket.
Summary
Functions
Provides a default value for the given RPC message.
Functions
Link to this function
fallback(message)
@spec fallback(Split.RPC.Message.t()) :: map() | Split.Impression.t() | list() | boolean() | nil
Provides a default value for the given RPC message.
Examples
iex> Fallback.fallback(%Message{o: 0x11})
%Impression{treatment: "control", label: "exception"}
iex> Fallback.fallback(%Message{o: 0x13})
%Impression{treatment: "control", label: "exception", config: nil}
iex> Fallback.fallback(%Message{
...> o: 0x12,
...> a: ["user_key", "bucketing_key", ["feature_1", "feature_2"], %{}]
...> })
%{
"feature_1" => %Impression{treatment: "control", label: "exception"},
"feature_2" => %Impression{treatment: "control", label: "exception"}
}
iex> Fallback.fallback(%Message{o: 0x14, a: ["user_key", "bucketing_key", ["feature_a"], %{}]})
%{"feature_a" => %Impression{treatment: "control", label: "exception", config: nil}}
iex> Fallback.fallback(%Message{o: 0xA1})
nil
iex> Fallback.fallback(%Message{o: 0xA2})
[]
iex> Fallback.fallback(%Message{o: 0xA0})
[]
iex> Fallback.fallback(%Message{o: 0x80})
false