Created
January 6, 2012 15:23
-
-
Save Raynos/1571036 to your computer and use it in GitHub Desktop.
EDA Y U CODE BLOAT
This file contains hidden or 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 = { | |
| attach: function attach() { | |
| this.mediator.on("server.express", this.setVariables); | |
| this.mediator.on("server.express", this.addMiddleware); | |
| }, | |
| detach: function detach() { | |
| this.mediator.removeListener('server.express', this.setVariables); | |
| this.mediator.removeListener('server.express', this.addMiddleware); | |
| }, | |
| destroy: function destroy() { | |
| this.unsetVariables(); | |
| this.removeMiddleware(this.app); | |
| }, | |
| setVariables: function setVariables(app) { | |
| this.app = app; | |
| app.set('views', path.join(__dirname, "..", "views")); | |
| app.set("view engine", "jade"); | |
| }, | |
| unsetVariables: function unsetVariables(app) { | |
| var app = this.app; | |
| app.set('views', undefined); | |
| app.set('view engine', undefined); | |
| }, | |
| addMiddleware: constructMiddlewareFunction('add'), | |
| addMiddlewareToApp: function addMiddlewareToApp(middleware, env) { | |
| var app = this.app; | |
| app.configure(env, addToApp.bind(this)); | |
| function addToApp() { | |
| app.use(middleware); | |
| this.mediator.emit('configure.middleware', middleware, env) | |
| } | |
| }, | |
| removeMiddleware: constructMiddlewareFunction('remove'), | |
| removeMiddlewareFromApp: function removeMiddlewareFromApp(middleware, env) { | |
| var app = this.app; | |
| app.configure(env, removeFromApp.bind(this)); | |
| function removeFromApp() { | |
| app.stack.some(removeFromStackIfMiddleware, this); | |
| function removeFromStackIfMiddleware(tuple, index) { | |
| if (tuple.handle === middleware) { | |
| app.stack.splice(index, 1); | |
| this.mediator.emit( | |
| 'configure.middleware-removed', middleware, env); | |
| return true; | |
| } | |
| } | |
| } | |
| }, | |
| middlewares: extend([ | |
| express.favicon(), | |
| express.logger('dev'), | |
| express.static(path.join(__dirname, "..", "public")), | |
| express.bodyParser(), | |
| express.methodOverride(), | |
| express.cookieParser('your secret here'), | |
| express.session(), | |
| stylus.middleware({ | |
| src: path.join(__dirname, "..", "public") | |
| }) | |
| ], { | |
| dev: [ | |
| express.errorHandler() | |
| ] | |
| }) | |
| }; | |
| function constructMiddlewareFunction(name) { | |
| var method; | |
| if (name === 'add') { | |
| method = 'addMiddlewareToApp'; | |
| } else if (name === 'remove') { | |
| method = 'removeMiddlewareFromApp'; | |
| } | |
| return xMiddleware; | |
| function xMiddleware(app) { | |
| var middlewares = this.middlewares, | |
| dev = middlewares.dev, | |
| i, len; | |
| for (i = 0, len = middlewares.length; i < len; i++) { | |
| this[method](middlewares[i], 'all'); | |
| } | |
| this[method](app.router, 'all'); | |
| for (i = 0, len = dev.length; i < len; i++) { | |
| this[method](dev[i], 'development'); | |
| } | |
| } | |
| } |
This file contains hidden or 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
| app.configure(function(){ | |
| app.set('views', __dirname + '/views'); | |
| app.set('view engine', 'jade'); | |
| app.use(express.favicon()); | |
| app.use(express.logger('dev')); | |
| app.use(express.static(__dirname + '/public')); | |
| app.use(express.bodyParser()); | |
| app.use(express.methodOverride()); | |
| app.use(express.cookieParser('your secret here')); | |
| app.use(express.session()); | |
| app.use(require('stylus').middleware({ src: __dirname + '/public' })); | |
| app.use(app.router); | |
| }); | |
| app.configure('development', function(){ | |
| app.use(express.errorHandler()); | |
| }); |
This file contains hidden or 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 = extend(Object.create(require("framework/express/configure.js")), { | |
| middlewares: extend([ | |
| express.favicon(), | |
| express.logger('dev'), | |
| express.static(path.join(__dirname, "..", "public")), | |
| express.bodyParser(), | |
| express.methodOverride(), | |
| express.cookieParser('your secret here'), | |
| express.session(), | |
| stylus.middleware({ | |
| src: path.join(__dirname, "..", "public") | |
| }) | |
| ], { | |
| dev: [ | |
| express.errorHandler() | |
| ] | |
| }), | |
| setVariables: function setVariables(app) { | |
| this.app = app; | |
| app.set('views', path.join(__dirname, "..", "views")); | |
| app.set("view engine", "jade"); | |
| }, | |
| unsetVariables: function unsetVariables(app) { | |
| var app = this.app; | |
| app.set('views', undefined); | |
| app.set('view engine', undefined); | |
| } | |
| }); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment