Sha256: 4acacb8be073038e2f5488a2ec4d94c90503f4ce26e3ee6b88ec0cab6de3cb8c

Contents?: true

Size: 742 Bytes

Versions: 19

Compression:

Stored size: 742 Bytes

Contents

# frozen_string_literal: true

module Overcommit::Hook::PreCommit
  # Runs `phpstan` against any modified PHP files.
  # For running `phpstan` with Laravel, it requires setup with `ide_helper`.
  #
  # References:
  # https://github.com/phpstan/phpstan/issues/239
  # https://gist.github.com/edmondscommerce/89695c9cd2584fefdf540fb1c528d2c2
  class PhpStan < Base
    MESSAGE_REGEX = /^(?<file>.+)\:(?<line>\d+)\:(?<message>.+)/

    def run
      messages = []

      result = execute(command, args: applicable_files)

      unless result.success?
        messages += result.stdout.lstrip.split("\n")
      end

      return :pass if messages.empty?

      extract_messages(
        messages,
        MESSAGE_REGEX
      )
    end
  end
end

Version data entries

19 entries across 19 versions & 2 rubygems

Version Path
overcommit-0.58.0 lib/overcommit/hook/pre_commit/php_stan.rb
overcommit-0.57.0 lib/overcommit/hook/pre_commit/php_stan.rb
overcommit-0.56.0 lib/overcommit/hook/pre_commit/php_stan.rb
overcommit-0.55.0 lib/overcommit/hook/pre_commit/php_stan.rb
overcommit-0.54.1 lib/overcommit/hook/pre_commit/php_stan.rb
overcommit-0.54.0 lib/overcommit/hook/pre_commit/php_stan.rb
overcommit-jeygeethanmedia-0.53.1.2 lib/overcommit/hook/pre_commit/php_stan.rb
overcommit-jeygeethanmedia-0.53.1.1 lib/overcommit/hook/pre_commit/php_stan.rb
overcommit-jeygeethanmedia-0.53.1 lib/overcommit/hook/pre_commit/php_stan.rb
overcommit-0.53.0 lib/overcommit/hook/pre_commit/php_stan.rb
overcommit-0.52.1 lib/overcommit/hook/pre_commit/php_stan.rb
overcommit-0.52.0 lib/overcommit/hook/pre_commit/php_stan.rb
overcommit-0.51.0 lib/overcommit/hook/pre_commit/php_stan.rb
overcommit-0.50.0 lib/overcommit/hook/pre_commit/php_stan.rb
overcommit-0.49.1 lib/overcommit/hook/pre_commit/php_stan.rb
overcommit-0.49.0 lib/overcommit/hook/pre_commit/php_stan.rb
overcommit-0.48.1 lib/overcommit/hook/pre_commit/php_stan.rb
overcommit-0.48.0 lib/overcommit/hook/pre_commit/php_stan.rb
overcommit-0.47.0 lib/overcommit/hook/pre_commit/php_stan.rb