Skip to content

Commit

Permalink
Views
Browse files Browse the repository at this point in the history
  • Loading branch information
overlookmotel committed Jul 5, 2015
1 parent dee0d0a commit 15e1335
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 3 deletions.
1 change: 1 addition & 0 deletions lib/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ Overlook.Errors = Overlook.prototype.Errors = Errors;
Overlook.Plugin = Overlook.prototype.Plugin = Plugin;
Overlook.Routes = Overlook.prototype.Routes = Routes;
Overlook.log = Overlook.prototype.log = log;
Overlook.viewEngines = Overlook.prototype.viewEngines = {};

// add Overlook to Overlook.prototype
Overlook.prototype.Overlook = Overlook;
Expand Down
24 changes: 22 additions & 2 deletions lib/overlook.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@ var pathModule = require('path'),
expressor = require('expressor'),
fs = require('fs-extra-promise'),
promisifyAny = require('promisify-any'),
requireFolderTree = require('require-folder-tree');
requireFolderTree = require('require-folder-tree'),
walkFolderTree = require('walk-folder-tree');

// imports
var Utils = require('./utils'),
Expand Down Expand Up @@ -84,7 +85,7 @@ module.exports = {
},

getPaths: function() {
return ['controllers', 'public'];
return ['controllers', 'views', 'public'];
},

start: function*() {
Expand All @@ -103,6 +104,10 @@ module.exports = {
}).bind(this));
this.log('Initialized plugins');

// init views
this.log('Loading views from ' + this.options.paths.views);
yield this.viewsInit();
this.log('Loaded views');

// init controllers
this.log('Loading controllers from ' + this.options.paths.controllers);
Expand All @@ -121,6 +126,20 @@ module.exports = {
return this;
},

viewsInit: function*() {
var views = this.views,
viewEngines = this.viewEngines,
path = this.options.paths.views;

if (!path || !(yield fs.existsAsync(path))) return;

yield walkFolderTree(path, function*(params) {
if (params.directory) return;
var ext = pathModule.extname(params.name).slice(1);
if (ext && viewEngines[ext]) views.push(params.path.slice(0, -ext.length - 1));
});
},

controllersInit: function*() {
var overlook = this,
app = this.app,
Expand Down Expand Up @@ -209,6 +228,7 @@ module.exports = {
var app = express();
app.set('strict routing', true);
if (this.options.paths.public) app.use(express.static(this.options.paths.public));
if (this.options.paths.views) app.set('views', this.options.paths.views);
return app;
},

Expand Down
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,8 @@
"is-generator": "^1.0.2",
"lodash": "^3.10.0",
"promisify-any": "^1.0.0",
"require-folder-tree": "^1.4.5"
"require-folder-tree": "^1.4.5",
"walk-folder-tree": "^0.1.2"
},
"devDependencies": {
"mocha": "^2.2.4",
Expand Down

0 comments on commit 15e1335

Please sign in to comment.