Add superblock ordering

pull/5058/head
Berkeley Martinez 2015-12-06 21:44:34 -08:00
parent 108179e72e
commit f7f587194d
28 changed files with 29 additions and 2 deletions

View File

@ -36,6 +36,10 @@
"type": "string",
"description": "Used for ordering challenge blocks in map"
},
"superBlockOrder": {
"type": "number",
"description": "Used to determine superBlock order, set by prepending two digit number to super block folder name"
},
"block": {
"type": "string"
},

View File

@ -1,7 +1,7 @@
/* eslint-disable no-self-compare */
var fs = require('fs');
var path = require('path');
function getFilesFor(dir) {
return fs.readdirSync(path.join(__dirname, '/' + dir))
.map(function(file) {
@ -27,13 +27,33 @@ function getFilesFor(dir) {
}, []);
}
function getSupOrder(filePath) {
var order = parseInt((filePath || '').split('-')[0], 10);
// check for NaN
if (order !== order) {
return 0;
}
return order;
}
function getSupName(filePath) {
var order = parseInt((filePath || '').split('-')[0], 10);
// check for NaN
if (order !== order) {
return filePath;
}
return (filePath || '').split('-').splice(1).join('-');
}
module.exports = function getChallenges() {
try {
return getFilesFor('challenges')
.map(function(data) {
var challengeSpec = require('./challenges/' + data.file);
challengeSpec.fileName = data.file;
challengeSpec.superBlock = data.superBlock;
challengeSpec.superBlock = getSupName(data.superBlock);
challengeSpec.superBlockOrder = getSupOrder(data.superBlock);
return challengeSpec;
});

View File

@ -18,6 +18,7 @@ destroy()
var order = challengeSpec.order;
var block = challengeSpec.name;
var superBlock = challengeSpec.superBlock;
var superBlockOrder = challengeSpec.superBlockOrder;
var isBeta = !!challengeSpec.isBeta;
var fileName = challengeSpec.fileName;
console.log('parsed %s successfully', block);
@ -46,6 +47,7 @@ destroy()
challenge.block = block;
challenge.isBeta = challenge.isBeta || isBeta;
challenge.time = challengeSpec.time;
challenge.superBlockOrder = superBlockOrder;
challenge.superBlock = superBlock
.split('-')
.map(function(word) {

View File

@ -109,6 +109,7 @@ module.exports = function(app) {
const challengesQuery = {
order: [
'superOrder ASC',
'order ASC',
'suborder ASC'
]