List with nested maps

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