Merge branch 'staging' of github.com:FreeCodeCamp/freecodecamp into staging

pull/1508/head
Quincy Larson 2015-08-01 11:29:54 -07:00
commit 61a8a54682
6 changed files with 62 additions and 12 deletions

View File

@ -126,7 +126,7 @@ gulp.task('serve', function(cb) {
script: paths.server,
ext: '.js .json',
ignore: paths.serverIgnore,
exec: path.join(__dirname, 'node_modules/.bin/babel-node'),
exec: '%cd%/node_modules/.bin/babel-node',
env: {
'NODE_ENV': 'development',
'DEBUG': process.env.DEBUG || 'freecc:*'

View File

@ -79,6 +79,7 @@
"nodemailer": "~1.3.0",
"object.assign": "^3.0.0",
"passport-facebook": "^2.0.0",
"passport-github": "^0.1.5",
"passport-google-oauth2": "^0.1.6",
"passport-linkedin-oauth2": "^1.2.1",
"passport-local": "^1.0.0",

View File

@ -1074,9 +1074,12 @@
],
"tests": [
"assert.deepEqual(unite([1, 3, 2], [5, 2, 1, 4], [2, 1]), [1, 3, 2, 5, 4], 'should return the union of the given arrays');",
"assert.deepEqual(unite([1, 3, 2], [1, [5]], [2, [4]]), [1, 3, 2, [5], [4]], 'should not flatten nested arrays');"
"assert.deepEqual(unite([1, 3, 2], [1, [5]], [2, [4]]), [1, 3, 2, [5], [4]], 'should not flatten nested arrays');",
"assert.deepEqual(unite([1, 2, 3], [5, 2, 1]), [1, 2, 3, 5], 'should correctly handle exactly two arguments');",
"assert.deepEqual(unite([1, 2, 3], [5, 2, 1, 4], [2, 1], [6, 7, 8]), [ 1, 2, 3, 5, 4, 6, 7, 8 ], 'should correctly handle higher numbers of arguments');"
],
"MDNlinks": [
"Arguments object",
"Array.reduce()"
],
"challengeType": 5,

View File

@ -1069,6 +1069,35 @@
],
"challengeType": 1
},
{
"id":"cf1111c1c13feddfaeb3bdef",
"name":"Inverting a Match",
"dashedName":"waypoint-inverting-a-match",
"difficulty":"9.987",
"description":[
"",
"Use <code>/\\S+/gi;</code> to match everything that ins't a space in the string",
"You can invert any match by using the uppercase version of the selector <code>\\s</code> versus <code>\\S</code> for example"
],
"tests":[
"assert(test === 36, 'Your RegEx should have found seven spaces in the testString');",
"assert(editorValue.match(/\\/\\\\S\\/gi/gi), 'You should be using the following expression /\\S+/gi to find the spaces in the testString');"
],
"challengeSeed":[
"var test = (function(){",
" var testString = \"How many spaces are there in this sentance.\";",
"",
"//Do Not Modify Above",
"",
" var expression = /.+/gi;",
"",
"//Do Not Modify Below",
"",
" return(testString.match(expression).length);",
"})();(function(){return(test);})();"
],
"challengeType":1
},
{
"id":"cf1111c1c12feddfaeb9bdef",
"name":"Creating a slots machine",
@ -1080,7 +1109,7 @@
"For this we will need to generate three random numbers between <code>1</code> and <code>5</code> to represent the possible values of each individual slot",
"Store the three random numbers in <code>slotOne</code>, <code>slotTwo</code> and <code>slotThree</code>",
"Generate the random numbers by using the system we used earlier in /challenges/random-whole-numbers-in-a-range",
"<code> Math.floor(Math.random() * (5 - 1 + 1)) + 1; </code>."
"<code> Math.floor(Math.random() * (5 - 1 + 1)) + 1; </code>"
],
"tests":[
"assert(typeof(runSlots($('.slot'))[0]) == 'number', 'SlotOne should be a random number');",

View File

@ -127,5 +127,19 @@ module.exports = {
state: process.env.LINKEDIN_STATE
},
failureFlash: true
},
'github-login': {
provider: 'github',
authScheme: 'oauth2',
module: 'passport-github',
authPath: '/auth/github',
callbackURL: '/auth/github/callback',
callbackPath: '/auth/github/callback',
successRedirect: successRedirect,
failureRedirect: failureRedirect,
clientID: process.env.GITHUB_ID,
clientSecret: process.env.GITHUB_SECRET,
scope: ['email'],
failureFlash: true
}
};

View File

@ -2,18 +2,21 @@ extends ../layout
block content
.jumbotron.text-center
h2 Sign in with one of these options:
a.btn.btn-lg.btn-block.btn-google-plus.btn-social(href='/auth/google')
i.fa.fa-google-plus
| Sign in with Google
a.btn.btn-lg.btn-block.btn-facebook.btn-social(href='/auth/facebook')
i.fa.fa-facebook
| Sign in with Facebook
a.btn.btn-lg.btn-block.btn-linkedin.btn-social(href='/auth/linkedin')
i.fa.fa-linkedin
| Sign in with LinkedIn
a.btn.btn-lg.btn-block.btn-twitter.btn-social(href='/auth/github')
i.fa.fa-github
| Sign in with Github
a.btn.btn-lg.btn-block.btn-twitter.btn-social(href='/auth/twitter')
i.fa.fa-twitter
| Sign in with Twitter
a.btn.btn-lg.btn-block.btn-facebook.btn-social(href='/auth/facebook')
i.fa.fa-facebook
| Sign in with Facebook
a.btn.btn-lg.btn-block.btn-google-plus.btn-social(href='/auth/google')
i.fa.fa-google-plus
| Sign in with Google
a.btn.btn-lg.btn-block.btn-linkedin.btn-social(href='/auth/linkedin')
i.fa.fa-linkedin
| Sign in with LinkedIn
br
p
a(href="/email-signup") Or sign up using your email address here.