Packages

A series of macros, and utilities to help hadling your elixir tonics.

Current section

Files

Jump to
rubbergloves lib mapper resolvers.ex
Raw

lib/mapper/resolvers.ex

defmodule Rubbergloves.Mapper.CamelCaseKeyResolver do
def resolve(key, _map) do
[h | t] =
key
|> Atom.to_string()
|> Macro.camelize()
|> String.split("", trim: true)
String.downcase(h) <> Enum.join(t)
end
end
defmodule Rubbergloves.Mapper.StringKeyResolver do
def resolve(key, _map), do: Atom.to_string(key)
end
defmodule Rubbergloves.Mapper.AtomKeyResolver do
def resolve(key, _map), do: key
end
defmodule Rubbergloves.Mapper.DynamicKeyResolver do
alias Rubbergloves.Mapper.StringKeyResolver
def resolve(key, map) do
cond do
Map.has_key?(map, key) -> key
true -> StringKeyResolver.resolve(key, map)
end
end
end