Skip to content

Instantly share code, notes, and snippets.

// models/user.js
module.exports = function(bookshelf) {
return bookshelf.define(/* blah blah blah */);
}
// app.js
var bookshelf = /* connection stuff goes here */
var User = require("models/user")(bookshelf)
@joepie91
joepie91 / gist:214be25a73df86cfd2f8
Created June 26, 2014 08:21
Generic gulpfile for Node.js (npm) packages
/* npm install --save-dev gulp gulp-util gulp-concat gulp-rename gulp-coffee gulp-cached gulp-remember gulp-plumber */
var gulp = require('gulp');
/* CoffeeScript compile deps */
var path = require('path');
var gutil = require('gulp-util');
var concat = require('gulp-concat');
var rename = require('gulp-rename');
var coffee = require('gulp-coffee');
@joepie91
joepie91 / gist:7c0dab92f64e192d2691
Last active August 29, 2015 14:03
AnonNews scoring algo
frontpageScore = (upvotes, minutes) ->
maxMinutes = (48 * 60);
maxMultiplier = Math.pow(1.001, maxMinutes);
if minutes > maxMinutes
minutes = maxMinutes
factor = 1 - (Math.pow(1.001, minutes) / maxMultiplier)
return factor * upvotes
@joepie91
joepie91 / gulpfile.js
Last active August 29, 2015 14:04
Gulpfile for Express + CoffeeScript + Theseus + Nodemon + LiveReload
var gulp = require('gulp');
var path = require('path');
var gutil = require('gulp-util');
var concat = require('gulp-concat');
var rename = require('gulp-rename');
var coffee = require('gulp-coffee');
var cache = require('gulp-cached');
var remember = require('gulp-remember');
var plumber = require('gulp-plumber');
@joepie91
joepie91 / util.coffee
Created July 27, 2014 16:08
AnonNews stuff
S = require "string"
Promise = require "bluebird"
request = require "request"
libxml = require "libxmljs"
longest = require "longest"
module.exports =
createTeaser: (input, length) ->
if input.length > length
re = new RegExp("^((.|[\r\n]){0,#{length}})(\\W|$)", "")
@joepie91
joepie91 / util.coffee
Last active August 29, 2015 14:04
Newer AnonNews stuff
S = require "string"
Promise = require "bluebird"
request = require "request"
libxml = require "libxmljs"
longest = require "longest"
cld = Promise.promisifyAll(require "cld")
urlLib = require "url"
module.exports =
createTeaser: (input, length) ->
@joepie91
joepie91 / proxy.coffee
Last active August 29, 2015 14:04
AnonNews Image Proxy
Promise = require "bluebird"
express = require "express"
router = express.Router()
gm = require "gm"
util = require "../util"
fs = require "fs"
path = require "path"
moment = require "moment"
request = require "request"
urlLib = require "url"
@joepie91
joepie91 / 10-fastcgi.conf
Created July 30, 2014 18:37
PDFy lighttpd configuration
# /usr/share/doc/lighttpd/fastcgi.txt.gz
# http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ConfigurationOptions#mod_fastcgi-fastcgi
server.modules += ( "mod_fastcgi" )
@joepie91
joepie91 / save-changes.js
Created August 29, 2014 03:47
Bookshelf plugin for only committing changed attributes
module.exports = function(bookshelf) {
return bookshelf.Model.prototype.saveChanges = function(options) {
if (options == null) {
options = {};
}
options.patch = true;
return this.save(this.changed, options);
};
};
@joepie91
joepie91 / promises.coffee
Created August 29, 2014 18:15
Promises in CoffeeScript
someAsyncMethod()
.then (result) ->
DoSomethingSynchronous()
return someOtherAsyncMethod("stuff")
.then (result) ->
return yetAnotherAsyncMethod("things", "and stuff")
.then (result) ->
console.log "Whoo, we're done!"
exit 0