Refactor to reduce repetition

This commit is contained in:
Rowan Manning
2013-12-11 14:12:25 +00:00
parent 917057a109
commit 4296effbc1
3 changed files with 29 additions and 36 deletions

25
view/presenter/ignore.js Normal file
View File

@@ -0,0 +1,25 @@
'use strict';
var standardsArray = require('../../data/standards')();
var rules = createStandardDescriptionMap(standardsArray);
module.exports = presentIgnoreRules;
function presentIgnoreRules (ignore) {
return ignore.map(function (name) {
return {
name: name,
description: rules[name]
};
});
}
function createStandardDescriptionMap (standards) {
var map = {};
standards.forEach(function (standard) {
standard.rules.forEach(function (rule) {
map[rule.name] = rule.description;
});
});
return map;
}

View File

@@ -1,8 +1,7 @@
'use strict'; 'use strict';
var _ = require('underscore'); var _ = require('underscore');
var standardsArray = require('../../data/standards')(); var presentIgnoreRules = require('./ignore');
var rules = createStandardDescriptionMap(standardsArray);
module.exports = presentResult; module.exports = presentResult;
@@ -17,12 +16,7 @@ function presentResult (result) {
result.date = new Date(result.date); result.date = new Date(result.date);
// Enhance the ignored rules // Enhance the ignored rules
result.ignore = result.ignore.map(function (name) { result.ignore = presentIgnoreRules(result.ignore);
return {
name: name,
description: rules[name]
};
});
// Split out message types // Split out message types
if (result.results) { if (result.results) {
@@ -41,13 +35,3 @@ function presentResult (result) {
return result; return result;
} }
function createStandardDescriptionMap (standards) {
var map = {};
standards.forEach(function (standard) {
standard.rules.forEach(function (rule) {
map[rule.name] = rule.description;
});
});
return map;
}

View File

@@ -1,9 +1,8 @@
'use strict'; 'use strict';
var _ = require('underscore'); var _ = require('underscore');
var presentIgnoreRules = require('./ignore');
var presentResult = require('./result'); var presentResult = require('./result');
var standardsArray = require('../../data/standards')();
var rules = createStandardDescriptionMap(standardsArray);
module.exports = presentTask; module.exports = presentTask;
@@ -17,12 +16,7 @@ function presentTask (task) {
task.hrefEdit = '/' + task.id + '/edit'; task.hrefEdit = '/' + task.id + '/edit';
// Enhance the ignored rules // Enhance the ignored rules
task.ignore = task.ignore.map(function (name) { task.ignore = presentIgnoreRules(task.ignore);
return {
name: name,
description: rules[name]
};
});
// Present the last result if present // Present the last result if present
if (task.last_result) { if (task.last_result) {
@@ -32,13 +26,3 @@ function presentTask (task) {
return task; return task;
} }
function createStandardDescriptionMap (standards) {
var map = {};
standards.forEach(function (standard) {
standard.rules.forEach(function (rule) {
map[rule.name] = rule.description;
});
});
return map;
}