Add superblock ordering
parent
108179e72e
commit
f7f587194d
|
@ -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"
|
||||
},
|
||||
|
|
|
@ -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;
|
||||
});
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -109,6 +109,7 @@ module.exports = function(app) {
|
|||
|
||||
const challengesQuery = {
|
||||
order: [
|
||||
'superOrder ASC',
|
||||
'order ASC',
|
||||
'suborder ASC'
|
||||
]
|
||||
|
|
Loading…
Reference in New Issue