Skip to content

Instantly share code, notes, and snippets.

@bendrucker
bendrucker / a.js
Created February 20, 2014 21:24
Initializing databases with Bookshelf
var i = 0;
module.exports = ++i;
@bendrucker
bendrucker / sqlite-transaction-test-passing.js
Last active August 29, 2015 13:56
Demonstration for SQLite3 lock case
it('should be able to run normal queries inside transaction blocks', function() {
return knex('accounts')
.returning('id')
.insert({
first_name: 'Transacting',
last_name: 'User',
email:'transaction-test3@example.com',
logins: 1,
about: 'Lorem ipsum Dolore labore incididunt enim.',
@bendrucker
bendrucker / collection.js
Last active August 29, 2015 13:56
Default columns with a bookshelf collection
var ModelBase = Bookshelf.Model.extend();
var CollectionBase = Bookshelf.Collection.extend({
toJSON: function () {
var json = Bookshelf.Collection.toJSON.apply(this, arguments);
json.object = this.model.prototype.object;
return json;
});
});
@bendrucker
bendrucker / model.js
Created March 7, 2014 01:12
halting events in bookshelf
module.exports = Bookshelf.Model.extend({
initialize: function () {
this.on('saving', this.validate);
},
validate: function () {}
});
create = {
handler: function(request, reply) {
return new Address().save({
name: request.payload.name,
address_line1: request.payload.address_line1
})
.call('fetch')
.then(reply)
.catch(reply);
}
@bendrucker
bendrucker / model.js
Last active August 29, 2015 13:57
The current base model that i'm using
'use strict';
var DB = require('./db');
var Joi = require('joi');
var Promise = require('bluebird');
var _ = require('lodash');
var Model = DB.Model.extend({
constructor: function () {
DB.Model.apply(this, arguments);
@bendrucker
bendrucker / model.coffee
Created March 17, 2014 22:31
Flattening related model attrs
toJSON: ->
json = super
json.status = json.status.name
json
@bendrucker
bendrucker / test.js
Last active August 29, 2015 13:58 — forked from martinaglv/test.js
var sinon = require('sinon');
var Promise = require('bookshelf/dialects/base/promise').Promise;
var Bookshelf = require('bookshelf');
var unhandled = sinon.spy();
var caught = sinon.spy();
Promise.onPossiblyUnhandledRejection(unhandled);
'use strict';
angular.module('quizApp')
.factory('Question', function () {
var Question = function (question, answers, correct_answer) {
this.question = question;
this.answers = [];
this.correct_answer = correct_answer;
};
<div ng-repeat="answer in question.answers">
<input type="text" ng-model="answer.text" />
<input type="checkbox" ng-model="answer.correct" />
</div>
<!-- -->
<answer ng-repeat="answer in answers" answer-model="answer"></answer>