Add superblock ordering
This commit is contained in:
@ -1,7 +1,7 @@
|
|||||||
|
/* eslint-disable no-self-compare */
|
||||||
var fs = require('fs');
|
var fs = require('fs');
|
||||||
var path = require('path');
|
var path = require('path');
|
||||||
|
|
||||||
|
|
||||||
function getFilesFor(dir) {
|
function getFilesFor(dir) {
|
||||||
return fs.readdirSync(path.join(__dirname, '/' + dir))
|
return fs.readdirSync(path.join(__dirname, '/' + dir))
|
||||||
.map(function(file) {
|
.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() {
|
module.exports = function getChallenges() {
|
||||||
try {
|
try {
|
||||||
return getFilesFor('challenges')
|
return getFilesFor('challenges')
|
||||||
.map(function(data) {
|
.map(function(data) {
|
||||||
var challengeSpec = require('./challenges/' + data.file);
|
var challengeSpec = require('./challenges/' + data.file);
|
||||||
challengeSpec.fileName = data.file;
|
challengeSpec.fileName = data.file;
|
||||||
challengeSpec.superBlock = data.superBlock;
|
challengeSpec.superBlock = getSupName(data.superBlock);
|
||||||
|
challengeSpec.superBlockOrder = getSupOrder(data.superBlock);
|
||||||
|
|
||||||
return challengeSpec;
|
return challengeSpec;
|
||||||
});
|
});
|
||||||
|
2
index.js
2
index.js
@ -18,6 +18,7 @@ destroy()
|
|||||||
var order = challengeSpec.order;
|
var order = challengeSpec.order;
|
||||||
var block = challengeSpec.name;
|
var block = challengeSpec.name;
|
||||||
var superBlock = challengeSpec.superBlock;
|
var superBlock = challengeSpec.superBlock;
|
||||||
|
var superBlockOrder = challengeSpec.superBlockOrder;
|
||||||
var isBeta = !!challengeSpec.isBeta;
|
var isBeta = !!challengeSpec.isBeta;
|
||||||
var fileName = challengeSpec.fileName;
|
var fileName = challengeSpec.fileName;
|
||||||
console.log('parsed %s successfully', block);
|
console.log('parsed %s successfully', block);
|
||||||
@ -46,6 +47,7 @@ destroy()
|
|||||||
challenge.block = block;
|
challenge.block = block;
|
||||||
challenge.isBeta = challenge.isBeta || isBeta;
|
challenge.isBeta = challenge.isBeta || isBeta;
|
||||||
challenge.time = challengeSpec.time;
|
challenge.time = challengeSpec.time;
|
||||||
|
challenge.superBlockOrder = superBlockOrder;
|
||||||
challenge.superBlock = superBlock
|
challenge.superBlock = superBlock
|
||||||
.split('-')
|
.split('-')
|
||||||
.map(function(word) {
|
.map(function(word) {
|
||||||
|
Reference in New Issue
Block a user