Current section
Files
Jump to
Current section
Files
dev/test/fixtures/expected/case_arms.ex
defmodule Example.CaseArms do
def classify(result) do
case result do
{:ok, value} -> value
{:error, reason} -> {:error, reason}
_ -> nil
end
end
def classify_tuple({a, b}) do
case {a, b} do
{nil, nil} -> :both_nil
{x, nil} when is_integer(x) -> {:left, x}
{nil, y} -> {:right, y}
{x, y} -> {x, y}
end
end
def pipe_case(list) do
list
|> Enum.filter(&is_integer/1)
|> case do
[] -> :empty
int_list -> int_list
end
end
def more_complex_case(text, components) do
components
|> Enum.reduce_while(%{}, fn component, acc ->
component_text = maybe_preprocess(text, component.__preprocess__())
case component.__fields__()
|> Enum.map(fn {name, field} -> {name, Field.extract(field, component_text)} end)
|> Enum.reject(fn {_k, v} -> is_nil(v) end)
|> Enum.into(%{})
|> maybe_postprocess(component)
do
{:error, _} = err -> {:halt, err}
fields -> {:cont, Map.merge(acc, fields)}
end
end)
end
end