11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
# File 'lib/pmd_translate_checkstyle_format/translate.rb', line 11
def trans(xml)
require 'rexml/document'
doc = REXML::Document.new
doc << REXML::XMLDecl.new('1.0', 'UTF-8')
checkstyle = doc.add_element("checkstyle")
if xml['pmd'].blank? || xml['pmd']['file'].blank?
return doc
end
files = xml['pmd']['file']
files = [files] if files.is_a?(Hash)
files.each do |file|
violations = file['violation']
violations = [violations] unless violations.is_a?(Array)
violations.each do |violation|
puts violation.attributes
file_element = checkstyle.add_element("file", {
'name' => file['@name']
})
file_element.add_element("error", {
'line' => violation.attributes['beginline'],
'severity' => get_severity(violation.attributes['priority'].to_i),
'message' => "[#{violation.attributes['rule']}] #{violation.strip}\n#{violation.attributes['externalInfoUrl']}"
})
end
end
doc
end
|