diff options
author | Aaron O'Mullan <aaron.omullan@friendco.de> | 2014-04-08 16:58:04 -0700 |
---|---|---|
committer | Aaron O'Mullan <aaron.omullan@friendco.de> | 2014-04-08 16:58:04 -0700 |
commit | 9265b0185aaabd04552c61a56e0aed470a0e5dd7 (patch) | |
tree | 070fa43d59eaf06e8e9cf45fb74ab4fc4ad41ed3 /theme/javascript/utils/execute.js | |
parent | 392573a9905a36d4a6c3cc1947c533f742b653a2 (diff) | |
download | gitbook-9265b0185aaabd04552c61a56e0aed470a0e5dd7.zip gitbook-9265b0185aaabd04552c61a56e0aed470a0e5dd7.tar.gz gitbook-9265b0185aaabd04552c61a56e0aed470a0e5dd7.tar.bz2 |
Add context code support to exercises (optional)
Partial #52, fixes #49, fixes #46
Diffstat (limited to 'theme/javascript/utils/execute.js')
-rw-r--r-- | theme/javascript/utils/execute.js | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/theme/javascript/utils/execute.js b/theme/javascript/utils/execute.js index 76033f6..eb2a19b 100644 --- a/theme/javascript/utils/execute.js +++ b/theme/javascript/utils/execute.js @@ -71,13 +71,21 @@ define([ repl.loadLanguage(lang.id, eventHandler); }; - var execute = function(lang, solution, validation, callback) { + var execute = function(lang, solution, validation, context, callback) { + // Language data + var langd = LANGUAGES[lang]; + // Check language is supported - if (!LANGUAGES[lang]) return callback(new Error("Language '"+lang+"' not available for execution")); + if (!langd) return callback(new Error("Language '"+lang+"' not available for execution")); // Validate with validation code - var code = [solution, LANGUAGES[lang].assertCode, validation].join(";\n"); - evalJS(LANGUAGES[lang], code, function(err, res) { + var code = [ + context, + solution, + langd.assertCode, + validation, + ].join(langd.sep); + evalJS(langd, code, function(err, res) { if(err) return callback(err); if (res.type == "error") callback(new Error(res.value)); @@ -86,4 +94,4 @@ define([ }; return execute; -});
\ No newline at end of file +}); |