From adc0ce28e5bb7d808be22d257b56acac5d16f52e Mon Sep 17 00:00:00 2001 From: Berkeley Martinez Date: Fri, 4 Dec 2015 21:06:36 -0800 Subject: [PATCH] Add superBlock to challenge seed --- common/models/challenge.json | 4 ++++ seed/getChallenges.js | 21 +++++++++++++-------- seed/index.js | 2 ++ 3 files changed, 19 insertions(+), 8 deletions(-) diff --git a/common/models/challenge.json b/common/models/challenge.json index 10ce49a058..7d9e3822d6 100644 --- a/common/models/challenge.json +++ b/common/models/challenge.json @@ -32,6 +32,10 @@ "dashedName": { "type": "string" }, + "superBlock": { + "type": "string", + "description": "Used for ordering challenge blocks in map" + }, "block": { "type": "string" }, diff --git a/seed/getChallenges.js b/seed/getChallenges.js index a617cca91a..982ddb3d6e 100644 --- a/seed/getChallenges.js +++ b/seed/getChallenges.js @@ -5,12 +5,17 @@ var path = require('path'); function getFilesFor(dir) { return fs.readdirSync(path.join(__dirname, '/' + dir)) .map(function(file) { + let superBlock; if (fs.statSync(path.join(__dirname, dir + '/' + file)).isFile()) { - return file; + return { file: file }; } - return getFilesFor(dir + '/' + file) - .map(function(_file) { - return file + '/' + _file; + superBlock = file; + return getFilesFor(dir + '/' + superBlock) + .map(function(data) { + return { + file: superBlock + '/' + data.file, + superBlock: superBlock + }; }); }) .reduce(function(files, file) { @@ -25,10 +30,10 @@ function getFilesFor(dir) { module.exports = function getChallenges() { try { return getFilesFor('challenges') - .map(function(file) { - console.log('fo', file); - var challengeSpec = require('./challenges/' + file); - challengeSpec.fileName = file; + .map(function(data) { + var challengeSpec = require('./challenges/' + data.file); + challengeSpec.fileName = data.file; + challengeSpec.superBlock = data.superBlock; return challengeSpec; }); diff --git a/seed/index.js b/seed/index.js index 6b252a2486..fa232842f1 100644 --- a/seed/index.js +++ b/seed/index.js @@ -17,6 +17,7 @@ destroy() .flatMap(function(challengeSpec) { var order = challengeSpec.order; var block = challengeSpec.name; + var superBlock = challengeSpec.superBlock; var isBeta = !!challengeSpec.isBeta; var fileName = challengeSpec.fileName; console.log('parsed %s successfully', block); @@ -43,6 +44,7 @@ destroy() challenge.order = order; challenge.suborder = index + 1; challenge.block = block; + challenge.superBlock = superBlock; challenge.isBeta = challenge.isBeta || isBeta; challenge.time = challengeSpec.time;