issue_meta.ex (947B)
1 defmodule Credo.IssueMeta do 2 @moduledoc """ 3 IssueMeta provides helper functions for meta information which a check wants 4 to pass to the `issue_for(...)` function, i.e. the current SourceFile and check 5 params (by default). 6 """ 7 8 @type t :: {__MODULE__, Credo.SourceFile.t(), Keyword.t()} 9 10 alias Credo.SourceFile 11 12 @doc "Returns an issue meta tuple for the given `source_file` and `check_params`." 13 def for(source_file, check_params) do 14 {__MODULE__, source_file, check_params} 15 end 16 17 @doc "Returns the source file for the given `issue_meta`." 18 def source_file(issue_meta) 19 20 def source_file({__MODULE__, source_file, _params}) do 21 source_file 22 end 23 24 def source_file(%SourceFile{} = source_file) do 25 source_file 26 end 27 28 @doc "Returns the check params for the given `issue_meta`." 29 def params(issue_meta) 30 31 def params({__MODULE__, _source_file, check_params}), do: check_params 32 def params(%SourceFile{}), do: [] 33 end