Sha256: 8352da928d78d4123d5f9d3f7d67495e83e7f0ba545fe8821ca4ef07f4386d1f
Contents?: true
Size: 1.56 KB
Versions: 1
Compression:
Stored size: 1.56 KB
Contents
require 'shellwords' module RuboCop module Git # ref. https://github.com/thoughtbot/hound/blob/d2f3933/app/services/build_runner.rb class Runner def run(options) options = Options.new(options) unless options.is_a?(Options) @options = options @files = DiffParser.parse(git_diff(options)) display_violations($stdout) exit(1) if violations.any? end private def violations @violations ||= style_checker.violations end def style_checker StyleChecker.new(pull_request.pull_request_files, @options.rubocop, @options.config_file, pull_request.config) end def pull_request @pull_request ||= PseudoPullRequest.new(@files, @options) end def git_diff(options) args = %w(diff --diff-filter=AMCR --find-renames --find-copies) if options.cached args << '--cached' elsif options.commit_last args << options.commit_first.shellescape args << options.commit_last.shellescape end `git #{args.join(' ')}` end def display_violations(io) formatter = RuboCop::Formatter::ClangStyleFormatter.new(io) formatter.started(nil) violations.map do |violation| formatter.file_finished( violation.filename, violation.offenses.compact.sort.freeze ) end formatter.finished(@files.map(&:filename).freeze) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rubocop-git-0.0.5 | lib/rubocop/git/runner.rb |