Skip to content

Instantly share code, notes, and snippets.

View heymichaelp's full-sized avatar

Michael Phillips heymichaelp

View GitHub Profile
var _ = require('underscore');
var Q = require('q');
var EligibleForSportsEnrollmentPolicy = function( student ) {
this.student = student;
};
EligibleForSportsEnrollmentPolicy.prototype = _.extend( EligibleForSportsEnrollmentPolicy.prototype, {
run: function() {
@heymichaelp
heymichaelp / viewObjects5.test.js
Last active August 29, 2015 14:03
View Objects: Example Testing
var expect = require('chai').expect
var GradeReportPresenter = require('./gradeReportPresenter')
var Grade = require('./grade')
describe('GradeReportPresenter', function(){
before(function(){
this.student = {
id: '123456',
firstName: 'Susan',
lastName: 'Smith',
@heymichaelp
heymichaelp / viewObjects4.js
Created July 1, 2014 02:22
View Objects: Example Implementation
new CurrentStudentsWithAssignmentsQuery().run()
.then(function( students ) {
return new StudentGradeReportPresenter( students ).present();
})
.then(function( students ) {
res.render('reportCard', students);
});
@heymichaelp
heymichaelp / studentGradeReportPresenter.js
Last active August 29, 2015 14:03
View Objects: Example View Object
var _ = require('underscore');
var DetermineStudentPassingStatus = require('./determineStudentPassingStatus');
var GetAverageGradeFromAssignments = require('./getAverageGradeFromAssignments');
var GradeReportPresenter = function(student) {
this.student = student
}
GradeReportPresenter.prototype = _.extend(GradeReportPresenter.prototype, {
@heymichaelp
heymichaelp / viewObjects2.hbs
Last active August 29, 2015 14:03
View Objects: Example HTML
...
<p class="average-grade">Average grade across all assignments: {{averageGrade}}</p>
<p class="passing-status">Passing: {{isPassing}}</p>
...
<p>
For any questions, please call the teacher at {{teacher.phone}}.
</p>
...
@heymichaelp
heymichaelp / viewObjects1.json
Last active August 29, 2015 14:03
View Objects: Example Model Data
{
"id": "123456",
"firstName": "Susan",
"lastName": "Smith",
"gender": "f",
"phone": "5551234567",
"assignments": [
{
"grade": 0.65
},
@heymichaelp
heymichaelp / queryObjects.test.js
Last active August 29, 2015 14:03
Query Objects: Testing
var expect = require('chai').expect;
var CreateStudentQuery = require('./createStudentQuery');
describe('CreateStudentQuery', function(){
before(function(done){
this.student = {
first_name: 'John',
last_name: 'Smith',
gender: 'M'
@heymichaelp
heymichaelp / queryObjects4.js
Last active August 29, 2015 14:03
Query Objects: Example Implementation
var CreateStudent = function(student) {
this.student = student
}
CreateStudent.prototype = _.extend(CreateStudent.prototype, {
run: function() {
...
},
@heymichaelp
heymichaelp / queryObjects3.js
Last active August 29, 2015 14:03
Query Objects: Example
var _ = require('underscore')
var async = require('async')
var MongoClient = require('mongodb').MongoClient
var CreateStudentQuery = function(student) {
this.student = student
}
CreateStudentQuery.prototype = _.extend(CreateStudentQuery, {
@heymichaelp
heymichaelp / queryObjects2.js
Last active August 29, 2015 14:03
Query Objects: Example Pre-Query Object
var MongoClient = require('mongodb').MongoClient
var createStudentQuery = function(student, callback) {
MongoClient.connect('mongodb://127.0.0.1:27017/test', function(err, db) {
if (err) throw err;
var collection = db.collection('students');
collection.insert(student, function(err, docs) {
collection.find().toArray(function(err, result) {