Fix offendersTransformFn deleted after the first run

This commit is contained in:
Gaël Métais
2015-01-19 12:15:05 +01:00
parent 23dc46d697
commit 4ef83a844f
+12 -3
View File
@@ -1,3 +1,5 @@
var extend = require('util')._extend;
var debug = require('debug')('ylt:ruleschecker');
var RulesChecker = function() {
@@ -21,7 +23,7 @@ var RulesChecker = function() {
rule = {
value: data.toolsResults[policy.tool].metrics[metricName],
policy: policy
policy: extend({}, policy) // Clone object policy instead of reference
};
var offenders = [];
@@ -56,8 +58,15 @@ var RulesChecker = function() {
// 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;
try {
offenders = policy.offendersTransformFn(offenders);
} catch(err) {
debug('Error while transforming offenders for %s', metricName);
debug(err);
}
delete rule.policy.offendersTransformFn;
}
if (offenders && offenders.length > 0) {