Packages

Simple library that adds a piping possibility for easy returning from pipe chains Imagine: socket = socket |> assign(valid: true) {:noreply, socket} to write as: socket |> assign(valid: true) |> noreply() or: iex> "34" |> between_strings("12", "56") "123456"

Current section

Files

Jump to
return_helpers lib return_helpers.ex
Raw

lib/return_helpers.ex

defmodule ReturnHelpers do
@moduledoc """
Simple library that adds a piping possibility for easy returning
Imagine
```
socket =
socket
|> assign(valid: true)
{:noreply, socket}
```
to write like:
```
socket
|> assign(valid: true)
|> noreply()
```
Looks cleaner ?
"""
@doc """
## Examples
iex(2)> socket = %{}
%{}
iex(3)> socket |> ok()
{:ok, %{}}
iex(4)> socket |> noreply()
{:noreply, %{}}
"""
def ok(return), do: {:ok, return}
def ok(return, params), do: {:ok, return, params}
def error(reason), do: {:error, reason}
def reply(reply), do: {:reply, reply}
def reply(reply, state), do: {:reply, reply, state}
def reply(return, state, other) do
{:reply, return, state, other}
end
def noreply(state), do: {:noreply, state}
def noreply(state, params), do: {:noreply, state, params}
def noreply(state, params, other) do
{:noreply, state, params, other}
end
def stop(reason), do: {:stop, reason}
def stop(reason, state), do: {:stop, reason, state}
def stop(reason, reply, state) do
{:stop, reason, reply, state}
end
end