class GitHooks::PreCommit::TrailingWhitespace

Attributes

git_repository[R]
trailing_whitespace_validator[R]

Public Class Methods

new(git_repository, trailing_whitespace_validator) click to toggle source
# File lib/git_hooks/pre_commit/trailing_whitespace.rb, line 13
def initialize(git_repository, trailing_whitespace_validator)
  @git_repository = git_repository
  @trailing_whitespace_validator = trailing_whitespace_validator
end
validate(*) click to toggle source
# File lib/git_hooks/pre_commit/trailing_whitespace.rb, line 6
def self.validate(*)
  new(
    GitHooks.configurations.git_repository,
    TrailingWhitespaceValidator.new
  ).validate
end

Public Instance Methods

changed_files() click to toggle source
# File lib/git_hooks/pre_commit/trailing_whitespace.rb, line 24
def changed_files
  git_repository
    .added_or_modified
    .select { |file| File.extname(file) == '.rb' }
end
offenses() click to toggle source
# File lib/git_hooks/pre_commit/trailing_whitespace.rb, line 30
def offenses
  changed_files.map do |file|
    trailing_whitespace_validator.errors?([file])
  end
end
validate() click to toggle source
# File lib/git_hooks/pre_commit/trailing_whitespace.rb, line 18
def validate
  abort(
    "Prevented commit with trailing whitespace in files #{offenses}"
  ) if offenses.any?
end