From 4ef83a844fc81f4b9bb3d39fe39105a90d133b13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABl=20M=C3=A9tais?= Date: Mon, 19 Jan 2015 12:15:05 +0100 Subject: [PATCH] Fix offendersTransformFn deleted after the first run --- lib/rulesChecker.js | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/lib/rulesChecker.js b/lib/rulesChecker.js index 7fb238d..8f82b68 100644 --- a/lib/rulesChecker.js +++ b/lib/rulesChecker.js @@ -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) {