Sha256: 95b8d424c1842dcf5e6d18a0d8ec570398c453973508116151c63943e90d95b7

Contents?: true

Size: 1.3 KB

Versions: 1

Compression:

Stored size: 1.3 KB

Contents

require 'pre-commit/base'
require 'pre-commit/utils'
require 'rubocop'

module PreCommit
  class RubocopCheck

    attr_accessor :type

    def check_name
      "Rubocop"
    end

    def initialize(type = :all)
      @type = type
    end

    def files_to_check
      case @type
      when :new
        Utils.new_files('.').split(" ")
      else
        Utils.staged_files('.').split(" ")
      end
    end

    def reject_non_rb(staged_files)
      staged_files.select { |f| f =~ /\.rb$/ }
    end

    def call
      rb_files = reject_non_rb(files_to_check)
      return true if rb_files.empty?
      config_file = `git config pre-commit.rubocop.config`.chomp
      args = rb_files
      if !config_file.empty?
        if !File.exist? config_file
          $stderr.puts "Warning: rubocop config file '" + config_file + "' does not exist"
          $stderr.puts "Set the path to the config file using:"
          $stderr.puts "\tgit config pre-commit.rubocop.config 'path/relative/to/git/dir/rubocop.yml'"
          $stderr.puts "rubocop will use its default configuration or look for a .rubocop.yml file\n\n"
        else
          args = ['-c', config_file] + args
        end
      end
      run(args)
    end

    def run(rb_files)
      rubocop = Rubocop::CLI.new
      return rubocop.run(rb_files) == 0
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
pre-commit-0.8.1 lib/pre-commit/checks/rubocop_check.rb