Current section
Files
Jump to
Current section
Files
lib/ex_utils/map.ex
defmodule ExUtils.Map do
@default_options [recursive: true]
def atomize_keys(map, opts \\ [])
def atomize_keys(map, [recursive: false]) do
Enum.reduce map, %{}, fn {k, v}, m ->
Map.put(m, String.to_atom(k), v)
end
end
def atomize_keys(map, opts) do
opts = Keyword.merge(@default_options, opts)
Enum.reduce map, %{}, fn {k, v}, m ->
v =
if is_map(v) do
atomize_keys(v, opts)
else
v
end
Map.put(m, String.to_atom(k), v)
end
end
defdelegate symbolize_keys(map, opts \\ []), to: __MODULE__, as: :atomize_keys
end