class PmdTester::Report

A full report, created by the report XML parser, can be diffed with another report into a ReportDiff

Attributes

configerrors_by_rule[R]
errors_by_file[R]
exec_time[R]
file[R]
timestamp[R]
violations_by_file[R]

Public Class Methods

empty() click to toggle source
# File lib/pmdtester/report_diff.rb, line 73
def self.empty
  new
end
new(report_document: nil, file: '', exec_time: 0, timestamp: '0') click to toggle source
# File lib/pmdtester/report_diff.rb, line 62
def initialize(report_document: nil,
               file: '',
               exec_time: 0,
               timestamp: '0')
  initialize_empty
  initialize_with_report_document report_document unless report_document.nil?
  @exec_time = exec_time
  @timestamp = timestamp
  @file = file
end

Public Instance Methods

rule_summaries() click to toggle source
# File lib/pmdtester/report_diff.rb, line 77
def rule_summaries
  summary = {}
  @violations_by_file.each_value do |violation|
    unless summary.key?(violation.rule_name)
      summary[violation.rule_name] = {
        'name' => violation.rule_name,
        'info_url' => violation.info_url,
        'count' => 0
      }
    end
    summary[violation.rule_name]['count'] += 1
  end

  summary.values
end

Private Instance Methods

initialize_empty() click to toggle source
# File lib/pmdtester/report_diff.rb, line 107
def initialize_empty
  @violations_by_file = CollectionByFile.new
  @errors_by_file = CollectionByFile.new
  @configerrors_by_rule = {}
end
initialize_with_report_document(report_document) click to toggle source
# File lib/pmdtester/report_diff.rb, line 95
def initialize_with_report_document(report_document)
  @violations_by_file = report_document.violations
  @errors_by_file = report_document.errors
  @configerrors_by_rule = report_document.configerrors

  PmdTester.logger.debug("Loaded #{@violations_by_file.total_size} violations " \
                         "in #{@violations_by_file.num_files} files")
  PmdTester.logger.debug("Loaded #{@errors_by_file.total_size} errors " \
                         "in #{@errors_by_file.num_files} files")
  PmdTester.logger.debug("Loaded #{@configerrors_by_rule.size} config errors")
end