filter.ex (956B)
1 defmodule Credo.CLI.Filter do 2 @moduledoc false 3 4 # TODO: is this the right place for this module? 5 6 alias Credo.Check.ConfigComment 7 alias Credo.Execution 8 alias Credo.Issue 9 alias Credo.SourceFile 10 11 def important(list, exec) when is_list(list) do 12 Enum.filter(list, &important?(&1, exec)) 13 end 14 15 def important?(%Issue{} = issue, exec) do 16 issue.priority >= exec.min_priority 17 end 18 19 def important?(%SourceFile{filename: filename}, exec) do 20 exec 21 |> Execution.get_issues(filename) 22 |> Enum.any?(&important?(&1, exec)) 23 end 24 25 def valid_issues(list, exec) when is_list(list) do 26 Enum.reject(list, fn issue -> 27 ignored_by_config_comment?(issue, exec) 28 end) 29 end 30 31 def ignored_by_config_comment?(%Issue{} = issue, exec) do 32 case exec.config_comment_map[issue.filename] do 33 list when is_list(list) -> 34 Enum.any?(list, &ConfigComment.ignores_issue?(&1, issue)) 35 36 _ -> 37 false 38 end 39 end 40 end