     end
   end
 
+  @spec ampere_assigns(Phoenix.Socket.t()) :: map
   defp ampere_assigns(socket) do
     socket
     |> Drab.pid()

    end
  end

  defp partial_path(view, partial_name) do
    templates_path(view) <> partial_name <> Drab.Config.drab_extension()
  end

  defp templates_path(view) do
    {path, _, _} = view.__templates__()
    path <> "/"
  end

  defp raise_assign_not_found(assign, current_keys) do
    raise ArgumentError,
      message: """

      iex> assigns(socket, MyApp.UserView, "user.html")
      [:name, :age, :email]
  """
  @spec assigns(Phoenix.Socket.t(), atom | nil, String.t() | nil) :: list
  def assigns(socket, view, partial) do
    view = view || Drab.get_view(socket)
    partial_hash = if partial, do: partial_hash(view, partial), else: index(socket)
