@ -22,6 +22,11 @@ var editor = myCodeMirror;
|
|||||||
editor.setSize("100%", "auto");
|
editor.setSize("100%", "auto");
|
||||||
|
|
||||||
|
|
||||||
|
var attempts = 0;
|
||||||
|
if (attempts) {
|
||||||
|
attempts = 0;
|
||||||
|
}
|
||||||
|
|
||||||
// Default value for editor if one isn't provided in (i.e. a challenge)
|
// Default value for editor if one isn't provided in (i.e. a challenge)
|
||||||
var nonChallengeValue = '/*Welcome to Bonfire, Free Code Camp\'s future CoderByte replacement.\n' +
|
var nonChallengeValue = '/*Welcome to Bonfire, Free Code Camp\'s future CoderByte replacement.\n' +
|
||||||
'Please feel free to use Bonfire as an in-browser playground and linting tool.\n' +
|
'Please feel free to use Bonfire as an in-browser playground and linting tool.\n' +
|
||||||
@ -100,15 +105,18 @@ $('#submitButton').on('click', function () {
|
|||||||
});
|
});
|
||||||
|
|
||||||
function bonfireExecute() {
|
function bonfireExecute() {
|
||||||
|
attempts++;
|
||||||
|
ga('send', 'event', 'Bonfire', 'ran-code', bonfireName);
|
||||||
userTests= null;
|
userTests= null;
|
||||||
$('#codeOutput').empty();
|
$('#codeOutput').empty();
|
||||||
var userJavaScript = myCodeMirror.getValue();
|
var userJavaScript = myCodeMirror.getValue();
|
||||||
userJavaScript = removeComments(userJavaScript);
|
userJavaScript = removeComments(userJavaScript);
|
||||||
userJavaScript = scrapeTests(userJavaScript);
|
userJavaScript = scrapeTests(userJavaScript);
|
||||||
// simple fix in case the user forgets to invoke their function
|
// simple fix in case the user forgets to invoke their function
|
||||||
if (challengeEntryPoint) {
|
if (challengeEntryPoint && challengeSeed) {
|
||||||
userJavaScript = challengeEntryPoint + ' ' + userJavaScript;
|
userJavaScript = challengeEntryPoint + ' ' + userJavaScript;
|
||||||
}
|
}
|
||||||
|
console.log(userJavaScript);
|
||||||
submit(userJavaScript, function(cls, message) {
|
submit(userJavaScript, function(cls, message) {
|
||||||
if (cls) {
|
if (cls) {
|
||||||
codeOutput.setValue(message.error);
|
codeOutput.setValue(message.error);
|
||||||
@ -224,5 +232,7 @@ var runTests = function(err, data) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
function showCompletion() {
|
function showCompletion() {
|
||||||
|
|
||||||
|
ga('send', 'event', 'Bonfire', 'solved', bonfireName + ', Time: ' + (Math.floor(Date.now() / 1000) - started) +', Attempts: ' + attempts);
|
||||||
$('#complete-bonfire-dialog').modal('show');
|
$('#complete-bonfire-dialog').modal('show');
|
||||||
}
|
}
|
@ -1,4 +1,7 @@
|
|||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
|
if (bonfireName !== undefined) {
|
||||||
|
ga('send', 'event', 'Bonfire', 'load', bonfireName + ':' + Math.floor(Date.now() / 1000));
|
||||||
|
}
|
||||||
|
|
||||||
var CSRF_HEADER = 'X-CSRF-Token';
|
var CSRF_HEADER = 'X-CSRF-Token';
|
||||||
|
|
||||||
@ -61,7 +64,6 @@ $(document).ready(function() {
|
|||||||
var bonfireSolution = myCodeMirror.getValue();
|
var bonfireSolution = myCodeMirror.getValue();
|
||||||
var thisBonfireHash = passedBonfireHash || null;
|
var thisBonfireHash = passedBonfireHash || null;
|
||||||
var didCompleteWith = $('#completed-with').val() || null;
|
var didCompleteWith = $('#completed-with').val() || null;
|
||||||
|
|
||||||
completedBonfire(didCompleteWith, bonfireSolution, thisBonfireHash);
|
completedBonfire(didCompleteWith, bonfireSolution, thisBonfireHash);
|
||||||
|
|
||||||
});
|
});
|
||||||
@ -83,6 +85,7 @@ $(document).ready(function() {
|
|||||||
|
|
||||||
// Bonfire instructions functions
|
// Bonfire instructions functions
|
||||||
$('#more-info').on('click', function() {
|
$('#more-info').on('click', function() {
|
||||||
|
ga('send', 'event', 'Bonfire', 'more-info', bonfireName);
|
||||||
$('#brief-instructions').hide();
|
$('#brief-instructions').hide();
|
||||||
$('#long-instructions').show().removeClass('hide');
|
$('#long-instructions').show().removeClass('hide');
|
||||||
|
|
||||||
|
@ -255,6 +255,34 @@
|
|||||||
"assert.deepEqual(inventory([], [[2, 'Hair Pin'], [3, 'Half-Eaten Apple'], [67, 'Bowling Ball'], [7, 'Toothpaste']]), [[2, 'Hair Pin'], [3, 'Half-Eaten Apple'], [67, 'Bowling Ball'], [7, 'Toothpaste']]);",
|
"assert.deepEqual(inventory([], [[2, 'Hair Pin'], [3, 'Half-Eaten Apple'], [67, 'Bowling Ball'], [7, 'Toothpaste']]), [[2, 'Hair Pin'], [3, 'Half-Eaten Apple'], [67, 'Bowling Ball'], [7, 'Toothpaste']]);",
|
||||||
"assert.deepEqual(inventory([[0, 'Bowling Ball'], [0, 'Dirty Sock'], [0, 'Hair pin'], [0, 'Microphone']], [[1, 'Hair Pin'], [1, 'Half-Eaten Apple'], [1, 'Bowling Ball'], [1, 'Toothpaste']]), [[1, 'Bowling Ball'], [1, 'Dirty Sock'], [1, 'Hair pin'], [1, 'Half-Eaten Apple'], [1, 'Microphone'], [1, 'Toothpaste']]);"
|
"assert.deepEqual(inventory([[0, 'Bowling Ball'], [0, 'Dirty Sock'], [0, 'Hair pin'], [0, 'Microphone']], [[1, 'Hair Pin'], [1, 'Half-Eaten Apple'], [1, 'Bowling Ball'], [1, 'Toothpaste']]), [[1, 'Bowling Ball'], [1, 'Dirty Sock'], [1, 'Hair pin'], [1, 'Half-Eaten Apple'], [1, 'Microphone'], [1, 'Toothpaste']]);"
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_id": "a2f1d72d9b908d0bd72bb9f6",
|
||||||
|
"name": "Make a Person",
|
||||||
|
"difficulty": "3.12",
|
||||||
|
"description": [
|
||||||
|
"Fill in the object constructor with the methods specified in the tests.",
|
||||||
|
"Those methods are getFirstName(), getLastName(), getFullName(), setFirstName(), setLastName(), and setFullName().",
|
||||||
|
"These methods must be the only available means for interacting with the object.",
|
||||||
|
"There will be some linting errors on the tests, you may safely ignore them. You should see undefined in the console output."
|
||||||
|
],
|
||||||
|
"challengeEntryPoint": "var bob = new Person('Bob Ross');",
|
||||||
|
"challengeSeed": "var Person = function(firstAndLast) {\n return firstAndLast;\r\n};",
|
||||||
|
"tests": [
|
||||||
|
"expect(Object.keys(bob).length).to.eql(6);",
|
||||||
|
"expect(bob instanceof Person).to.be.true;",
|
||||||
|
"expect(bob.firstName).to.be.undefined();",
|
||||||
|
"expect(bob.lastName).to.be.undefined();",
|
||||||
|
"expect(bob.getFirstName()).to.eql('Bob');",
|
||||||
|
"expect(bob.getLastName()).to.eql('Ross');",
|
||||||
|
"expect(bob.getFullName()).to.eql('Bob Ross');",
|
||||||
|
"bob.setFirstName('Happy');",
|
||||||
|
"expect(bob.getFirstName()).to.eql('Happy');",
|
||||||
|
"bob.setLastName('Trees');",
|
||||||
|
"expect(bob.getLastName()).to.eql('Trees');",
|
||||||
|
"bob.setFullName('George Carlin');",
|
||||||
|
"expect(bob.getFullName()).to.eql('George Carlin');"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -90,6 +90,8 @@ block content
|
|||||||
var challengeSeed = !{JSON.stringify(challengeSeed)};
|
var challengeSeed = !{JSON.stringify(challengeSeed)};
|
||||||
var challengeEntryPoint = !{JSON.stringify(challengeEntryPoint)};
|
var challengeEntryPoint = !{JSON.stringify(challengeEntryPoint)};
|
||||||
var passedBonfireHash = !{JSON.stringify(bonfireHash)};
|
var passedBonfireHash = !{JSON.stringify(bonfireHash)};
|
||||||
|
var bonfireName = !{JSON.stringify(name)};
|
||||||
|
var started = Math.floor(Date.now() / 1000);
|
||||||
.col-xs-12.col-sm-12.col-md-8
|
.col-xs-12.col-sm-12.col-md-8
|
||||||
#mainEditorPanel
|
#mainEditorPanel
|
||||||
form.code
|
form.code
|
||||||
|
Reference in New Issue
Block a user