Packages

Run json/graphql requests and parse responses in an easy way

Current section

Files

Jump to
yson lib yson util indent.ex
Raw

lib/yson/util/indent.ex

defmodule Yson.Util.Indent do
@moduledoc false
@indentation " "
def indent(data, starting_indentation \\ 0), do: inner_indent(data, starting_indentation)
defp inner_indent(data, indentation) when is_binary(data), do: spaces(indentation) <> data
defp inner_indent(data, indentation) when is_list(data) do
data
|> Enum.map(fn element ->
new_indentation = if is_list(element), do: indentation + 1, else: indentation
indent(element, new_indentation)
end)
|> Enum.join("\n")
end
defp spaces(number), do: String.duplicate(@indentation, number)
end