Sha256: c7d68a09676815512472efaa84464315114d680254b50bcfd16749c3e0a6b5a2

Contents?: true

Size: 959 Bytes

Versions: 31

Compression:

Stored size: 959 Bytes

Contents

# frozen_string_literal: true

module Overcommit::Hook::PreCommit
  # Runs `dogma` against any modified ex files.
  #
  # @see https://github.com/lpil/dogma
  class Dogma < Base
    def run
      result = execute command
      return :pass if result.success?

      messages = []
      # example message:
      #  == web/channels/user_socket.ex ==
      #  26: LineLength: Line length should not exceed 80 chars (was 83).
      #  1: ModuleDoc: Module Sample.UserSocket is missing a @moduledoc.
      output = result.stdout.chomp.match(/(==.+)/m)

      if output
        output.captures.first.split(/\n\n/).each do |error_group|
          errors = error_group.split /\n/
          file = errors.shift.gsub /[ =]/, ''
          errors.each do |error|
            line = error.split(': ').first
            messages << Overcommit::Hook::Message.new(:error, file, line, "#{file}: #{error}")
          end
        end
      end

      messages
    end
  end
end

Version data entries

31 entries across 31 versions & 2 rubygems

Version Path
overcommit-0.67.0 lib/overcommit/hook/pre_commit/dogma.rb
overcommit-0.66.0 lib/overcommit/hook/pre_commit/dogma.rb
overcommit-0.65.0 lib/overcommit/hook/pre_commit/dogma.rb
overcommit-0.64.1 lib/overcommit/hook/pre_commit/dogma.rb
overcommit-0.64.0 lib/overcommit/hook/pre_commit/dogma.rb
overcommit-0.63.0 lib/overcommit/hook/pre_commit/dogma.rb
overcommit-0.62.0 lib/overcommit/hook/pre_commit/dogma.rb
overcommit-0.61.0 lib/overcommit/hook/pre_commit/dogma.rb
overcommit-0.60.0 lib/overcommit/hook/pre_commit/dogma.rb
overcommit-0.59.1 lib/overcommit/hook/pre_commit/dogma.rb
overcommit-0.59.0 lib/overcommit/hook/pre_commit/dogma.rb
overcommit-jeygeethanmedia-0.58.0 lib/overcommit/hook/pre_commit/dogma.rb
overcommit-0.58.0 lib/overcommit/hook/pre_commit/dogma.rb
overcommit-0.57.0 lib/overcommit/hook/pre_commit/dogma.rb
overcommit-0.56.0 lib/overcommit/hook/pre_commit/dogma.rb
overcommit-0.55.0 lib/overcommit/hook/pre_commit/dogma.rb
overcommit-0.54.1 lib/overcommit/hook/pre_commit/dogma.rb
overcommit-0.54.0 lib/overcommit/hook/pre_commit/dogma.rb
overcommit-jeygeethanmedia-0.53.1.2 lib/overcommit/hook/pre_commit/dogma.rb
overcommit-jeygeethanmedia-0.53.1.1 lib/overcommit/hook/pre_commit/dogma.rb