Packages

Flat nested types (maps, lists, structs) library for Elixir.

Current section

Files

Jump to
flat_mapper lib helpers keys.ex
Raw

lib/helpers/keys.ex

defmodule Helpers.Keys do
@moduledoc false
def make_key(k, :keep), do: k
def make_key(k, :as_string), do: to_string(k)
def make_key(k, :as_atom) when not is_atom(k), do: String.to_atom(k)
def make_key(k, :as_atom), do: k
def make_key(prefix, delimeter, suffix, :as_string), do: prefix <> delimeter <> suffix
def make_key(prefix, delimeter, suffix, format) do
{d, f} =
if is_atom(prefix) || format == :as_atom do
{"_", :as_atom}
else
{delimeter, :as_string}
end
[prefix, suffix]
|> Enum.join(d)
|> make_key(f)
end
end