Current section

Files

Jump to
credo lib credo.ex
Raw

lib/credo.ex

defmodule Credo do
@version Mix.Project.config[:version]
def run(dir, formatter) do
config = dir |> to_config
source_files = config |> Credo.Sources.find
Dogma.Formatter.start(source_files, formatter)
source_files = Credo.Rule.Runner.run(source_files, config, fn(source_file) ->
Dogma.Formatter.script(source_file, formatter)
end)
Dogma.Formatter.finish(source_files, formatter)
source_files_w_issues =
Enum.reject(source_files, &Enum.empty?(&1.errors))
|> List.flatten
if Enum.any?(source_files_w_issues) do
{:error, source_files_w_issues}
else
:ok
end
end
def version, do: @version
defp to_config(dir), do: Credo.Config.read_or_default(dir)
end