class PreCommit::Checks::Checkstyle

Plugin implementation for pre-commit gem

It provides a java checkstyle validation using checkstyle.jar for details see: lib/pre_commit/support/checkstyle

Public Class Methods

description() click to toggle source
# File lib/plugins/pre_commit/checks/checkstyle.rb, line 28
def self.description
  'Runs Checkstyle linter for java code.'
end

Public Instance Methods

call(staged_files) click to toggle source

Function called after pre-commit execution this method receive the staged_files from git

@param [String] Standard git ouput with staged files

# File lib/plugins/pre_commit/checks/checkstyle.rb, line 20
def call(staged_files)
  staged_files = staged_files.grep(/\.java$/)
  return if staged_files.empty?

  output = execute(args(staged_files))
  format(extract(output))
end

Private Instance Methods

alternate_config_file() click to toggle source
# File lib/plugins/pre_commit/checks/checkstyle.rb, line 56
def alternate_config_file
  Support::Path.relative_to('google_checks.xml')
end
args(staged_files) click to toggle source
# File lib/plugins/pre_commit/checks/checkstyle.rb, line 34
def args(staged_files)
  [
    'java',
    checkstyle_jar,
    configuration_file,
    staged_files,
    output_format
  ]
end
checkstyle_jar() click to toggle source
# File lib/plugins/pre_commit/checks/checkstyle.rb, line 44
def checkstyle_jar
  ['-jar', Support::Path.relative_to('checkstyle-6.11-all.jar')]
end
configuration_file() click to toggle source
# File lib/plugins/pre_commit/checks/checkstyle.rb, line 48
def configuration_file
  config_file ? ['-c', config_file] : []
end
extract(data) click to toggle source
# File lib/plugins/pre_commit/checks/checkstyle.rb, line 65
def extract(data)
  @extractor ||= PreCommit::Message::Extractor.new
  @extractor.extract data
end
format(errors) click to toggle source
# File lib/plugins/pre_commit/checks/checkstyle.rb, line 60
def format(errors)
  @formatter ||= PreCommit::Message::Formatter.new
  @formatter.format errors
end
output_format() click to toggle source
# File lib/plugins/pre_commit/checks/checkstyle.rb, line 52
def output_format
  ['-f', 'xml']
end