Add the possibility to change offenders' layout

This commit is contained in:
Gaël Métais
2015-01-16 15:52:56 +01:00
parent 49a6e4633a
commit bce7a1ad9a
12 changed files with 248 additions and 20 deletions
+23 -6
View File
@@ -24,10 +24,12 @@ var RulesChecker = function() {
policy: policy
};
var offenders = [];
// Take DOMqueriesAvoidable's offenders from DOMqueriesDuplicated, for example.
if (policy.takeOffendersFrom) {
var fromList = policy.takeOffendersFrom;
var offenders = [];
// takeOffendersFrom option can be a string or an array of strings.
if (typeof fromList === 'string') {
@@ -35,16 +37,31 @@ var RulesChecker = function() {
}
fromList.forEach(function(from) {
offenders = offenders.concat(data.toolsResults[policy.tool].offenders[from]);
if (data.toolsResults[policy.tool] &&
data.toolsResults[policy.tool].offenders &&
data.toolsResults[policy.tool].offenders[from]) {
offenders = offenders.concat(data.toolsResults[policy.tool].offenders[from]);
}
});
data.toolsResults[policy.tool].offenders[metricName] = offenders;
} else if (data.toolsResults[policy.tool] &&
data.toolsResults[policy.tool].offenders &&
data.toolsResults[policy.tool].offenders[metricName]) {
offenders = data.toolsResults[policy.tool].offenders[metricName];
}
// It is possible to declare a transformation function for the offenders.
// The function should take an array of strings as single parameter and return a string.
if (policy.offendersTransformFn) {
rule.offendersCount = offenders.length;
offenders = policy.offendersTransformFn(offenders);
delete policy.offendersTransformFn;
}
if (data.toolsResults[policy.tool].offenders &&
data.toolsResults[policy.tool].offenders[metricName] &&
data.toolsResults[policy.tool].offenders[metricName].length > 0) {
rule.offenders = data.toolsResults[policy.tool].offenders[metricName];
if (offenders && offenders.length > 0) {
rule.offenders = offenders;
}
rule.bad = rule.value > policy.isOkThreshold;