Sha256: 400de5dc9432dbbba7cd26985c48bc42e553efd2896d2930ef06e8e118710aaf

Contents?: true

Size: 795 Bytes

Versions: 9

Compression:

Stored size: 795 Bytes

Contents

module Overcommit
  module Hook
    module PreCommit
      # Runs `rails_best_practices` against Ruby files
      #
      # @see https://github.com/railsbp/rails_best_practices
      class RailsBestPractices < Base
        ERROR_REGEXP = /^(?<file>(?:\w:)?[^:]+):(?<line>\d+)\s-\s(?<type>.+)/

        def run
          result = execute(command, args: applicable_files)

          return :pass if result.success?
          return [:fail, result.stderr] unless result.stderr.empty?

          extract_messages(
            filter_output(result.stdout),
            ERROR_REGEXP
          )
        end

        private

        def filter_output(stdout)
          stdout.split("\n").select do |message|
            message.match ERROR_REGEXP
          end
        end
      end
    end
  end
end

Version data entries

9 entries across 7 versions & 2 rubygems

Version Path
config_gems_initialization_aim-0.1.4 vendor/bundle/ruby/2.5.0/gems/overcommit-0.46.0/lib/overcommit/hook/pre_commit/rails_best_practices.rb
config_gems_initialization_aim-0.1.4 vendor/bundle/ruby/2.5.0/gems/config_gems_initialization_aim-0.1.1/vendor/bundle/ruby/2.5.0/gems/overcommit-0.46.0/lib/overcommit/hook/pre_commit/rails_best_practices.rb
config_gems_initialization_aim-0.1.3 vendor/bundle/ruby/2.5.0/gems/config_gems_initialization_aim-0.1.1/vendor/bundle/ruby/2.5.0/gems/overcommit-0.46.0/lib/overcommit/hook/pre_commit/rails_best_practices.rb
config_gems_initialization_aim-0.1.3 vendor/bundle/ruby/2.5.0/gems/overcommit-0.46.0/lib/overcommit/hook/pre_commit/rails_best_practices.rb
overcommit-0.46.0 lib/overcommit/hook/pre_commit/rails_best_practices.rb
overcommit-0.45.0 lib/overcommit/hook/pre_commit/rails_best_practices.rb
overcommit-0.44.0 lib/overcommit/hook/pre_commit/rails_best_practices.rb
overcommit-0.43.0 lib/overcommit/hook/pre_commit/rails_best_practices.rb
overcommit-0.42.0 lib/overcommit/hook/pre_commit/rails_best_practices.rb