class Overcommit::Hook::PreCommit::YamlSyntax

Checks the syntax of any modified YAML files.

Public Instance Methods

run() click to toggle source
# File lib/overcommit/hook/pre_commit/yaml_syntax.rb, line 6
def run
  messages = []

  applicable_files.each do |file|
    YAML.load_file(file, aliases: true)
  rescue ArgumentError
    begin
      YAML.load_file(file)
    rescue ArgumentError, Psych::SyntaxError => e
      messages << Overcommit::Hook::Message.new(:error, file, nil, e.message)
    end
  rescue Psych::DisallowedClass => e
    messages << error_message(file, e)
  end

  messages
end

Private Instance Methods

error_message(file, error) click to toggle source
# File lib/overcommit/hook/pre_commit/yaml_syntax.rb, line 26
def error_message(file, error)
  text = "#{file}: #{error.message}"
  Overcommit::Hook::Message.new(:error, file, nil, text)
end