Current section
Files
Jump to
Current section
Files
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