layout | author | title |
---|---|---|
post |
edward |
Getting Good at Vim |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# What the heck is this spec about? | |
# | |
# It's a gut-check that runs against every controller in the application. | |
# It is NOT a replacement for writing controller specs for each controller. | |
# | |
# What this does is things like check to make sure you didn't forget to lock | |
# down the index action of a controller to authorized users, checks to see if | |
# common routes are throwing silly errors, etc. | |
# | |
# Your controller passing these tests does not guarantee that it is healthy. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html> | |
<html> | |
<head> | |
<style type="text/css"> | |
html { | |
background-image: url(http://www.barcampnola.com/images/splash.jpg); | |
background-size: cover; | |
} | |
body { | |
padding: 0; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var sys = require('child_process'); | |
function commandExists(cmd) { | |
var exists = false; | |
sys.exec(cmd, function(err) { | |
if(err === null) // of maybe: if(!err instanceof Error) | |
exists = true; | |
}); | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
error: Error running command start | |
error: Nodejitsu Error (500): Internal Server Error | |
error: There was an error while attempting to deploy the app | |
error: | |
error: tar exited with code: 2 | |
error: Error output from Haibu: | |
error: | |
error: Error: tar exited with code: 2 | |
error: at ChildProcess.Tar.init (/root/haibu-orchestra/node_modules/haibu/lib/haibu/repositories/tar.js:58:26) | |
error: at ChildProcess.EventEmitter.emit (events.js:91:17) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// mongoose doesn't like single embedded schemas | |
// it likes them as arrays of an embedded schema | |
// so this is a cheater hack to fake a single subdoc | |
// it creates a field named `_yourField` and a virtual named `yourField` | |
// and it makes sure the array keeps just one element in it | |
// USAGE EXAMPLE: | |
/* | |
var models = require('models') | |
, ChildSchema = models.ChildSchema | |
, singleSubdoc = require('mongoose-single-subdoc'); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
module.exports = function(schema, options) { | |
schema.method('addUniqueRef', function(field, item) { | |
if(this[field].indexOf(item) < 0) this[field].push(item); | |
}); | |
schema.method('removeUniqueRef', function(field, item) { | |
this[field].splice(this[field].indexOf(item)); | |
}); | |
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var mongoose = require('mongoose'); | |
module.exports = exports = function(schema, options) { | |
schema.method('massAssign', function(fields) { | |
for(var i in schema.tree) { | |
if(schema.tree[i].protect || fields[i] == null) continue; | |
this[i] = fields[i]; | |
} | |
}); | |
schema.static('massAssign', function(fields) { |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
models.util = { | |
singleSubDoc: function(schema, virtualName) { | |
var realName = '_' + virtualName; | |
schema.virtual(virtualName) | |
.get(function() { | |
if(this[realName].length) return this[realName][0]; | |
else return null; | |
}) | |
.set(function(value) { | |
this[realName] = [value]; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
helpers = | |
test: (templateName) -> | |
"THIS IS A TEST" | |
addHelpers = (handlebars) -> handlebars.registerHelper name, fn for name, fn of helpers | |
# server-side | |
if module? && module.exports? | |
module.exports = addHelpers |