class Overcommit::Hook::PreCommit::Credo

Runs `credo` against any modified ex files.

@see github.com/rrrene/credo

Public Instance Methods

run() click to toggle source

example message: lib/file1.ex:1:11: R: Modules should have a @moduledoc tag. lib/file2.ex:12:81: R: Line is too long (max is 80, was 81).

# File lib/overcommit/hook/pre_commit/credo.rb, line 12
def run
  result = execute(command, args: applicable_files)
  return :pass if result.success?

  result.stdout.split("\n").map(&:strip).reject(&:empty?).
    map { |error| message(error) }
end

Private Instance Methods

message(error) click to toggle source
# File lib/overcommit/hook/pre_commit/credo.rb, line 22
def message(error)
  file, line = error.split(':')
  Overcommit::Hook::Message.new(:error, file, Integer(line), error)
end