json.ex (558B)
1 defmodule Credo.CLI.Command.Explain.Output.Json do 2 @moduledoc false 3 4 alias Credo.CLI.Output.Formatter.JSON 5 6 def print_before_info(_source_files, _exec), do: nil 7 8 def print_after_info(explanations, _exec, _, _) do 9 JSON.print_map(%{explanations: Enum.map(explanations, &cast_to_json/1)}) 10 end 11 12 defp cast_to_json(%{line_no: _line_no} = explanation) do 13 related_code = Enum.map(explanation.related_code, &Tuple.to_list/1) 14 15 explanation 16 |> Map.put(:related_code, related_code) 17 end 18 19 defp cast_to_json(explanation), do: explanation 20 end