zf

zenflows testing
git clone https://s.sonu.ch/~srfsh/zf.git
Log | Files | Refs | Submodules | README | LICENSE

message_suggestions.ex (1031B)


      1 defmodule Absinthe.Phase.Document.Validation.Utils.MessageSuggestions do
      2   @moduledoc false
      3   @suggest 5
      4 
      5   @doc """
      6   Generate an suggestions message for a incorrect field
      7   """
      8   def suggest_message(suggestions) do
      9     " Did you mean " <> to_quoted_or_list(suggestions |> Enum.take(@suggest)) <> "?"
     10   end
     11 
     12   def suggest_fragment_message(suggestions) do
     13     " Did you mean to use an inline fragment on " <>
     14       to_quoted_or_list(suggestions |> Enum.take(@suggest)) <> "?"
     15   end
     16 
     17   defp to_quoted_or_list([a]), do: ~s("#{a}")
     18   defp to_quoted_or_list([a, b]), do: ~s("#{a}" or "#{b}")
     19   defp to_quoted_or_list(other), do: to_longer_quoted_or_list(other)
     20 
     21   defp to_longer_quoted_or_list(list, acc \\ "")
     22   defp to_longer_quoted_or_list([word], acc), do: acc <> ~s(, or "#{word}")
     23 
     24   defp to_longer_quoted_or_list([word | rest], "") do
     25     rest
     26     |> to_longer_quoted_or_list(~s("#{word}"))
     27   end
     28 
     29   defp to_longer_quoted_or_list([word | rest], acc) do
     30     rest
     31     |> to_longer_quoted_or_list(acc <> ~s(, "#{word}"))
     32   end
     33 end