Ah, good call. Here’s the update:
defmodule Mapper do
@list [
{"John Smith", %{"twitter" => "jsmith"}},
{"Lisa Smith", %{"twitter" => "lsmith", "website" => "lsmith.com"}}
]
@default_keys %{"twitter" => "", "website" => ""}
def merge do
Enum.map @list, fn {name, map} ->
map
|> Map.put("name", name)
|> Map.merge(@default_keys, fn _k, v1, v2 -> v1 end)
|> atomize_keys
end
end
def atomize_keys(map) do
map
|> Enum.map(fn {k, v} -> {String.to_atom(k), v} end)
|> Enum.into(%{})
end
end


















