forked from sds/overcommit
-
Notifications
You must be signed in to change notification settings - Fork 0
/
html_tidy.rb
30 lines (27 loc) · 792 Bytes
/
html_tidy.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# frozen_string_literal: true
module Overcommit::Hook::PreCommit
# Runs `tidy` against any modified HTML files.
#
# @see http://www.html-tidy.org/
class HtmlTidy < Base
MESSAGE_REGEX = /
^(?<file>(?:\w:)?[^:]+):\s
line\s(?<line>\d+)\s
column\s(?<col>\d+)\s-\s
(?<type>Error|Warning):\s(?<message>.+)$
/x
def run
# example message:
# line 4 column 24 - Warning: <html> proprietary attribute "class"
applicable_files.collect do |file|
result = execute(command + [file])
output = result.stderr.chomp
extract_messages(
output.split("\n").collect { |msg| "#{file}: #{msg}" },
MESSAGE_REGEX,
lambda { |type| type.downcase.to_sym }
)
end.flatten
end
end
end