We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 0aecc95 commit f62a027Copy full SHA for f62a027
1 file changed
lib/atomic_map.ex
@@ -3,17 +3,15 @@ defmodule AtomicMap do
3
def convert(map, opts) when is_map(map) do
4
safe = Keyword.get(opts, :safe, true)
5
map |> Enum.reduce(%{}, fn({k,v}, acc)->
6
- if is_binary(k), do: k = as_atom(k, safe)
7
- cond do
8
- is_complex?(v) -> Map.put(acc, k, convert(v, opts));
9
- true -> Map.put(acc, k, v)
10
- end
+ if is_binary(k), do: k = as_atom(k, safe)
+ if is_complex?(v), do: v = convert(v, opts)
+ acc |> Map.put(k, v)
11
end)
12
end
13
def convert(list, opts) when is_list(list) do
14
list |> Enum.map(fn(x)-> convert(x, opts) end)
15
16
- def convert(v, opts), do: v
+ def convert(v, _opts), do: v
17
18
defp is_complex?(v), do: is_map(v) || is_list(v)
19
defp as_atom(s, true) when is_binary(s), do: s |> String.to_existing_atom
0 commit comments