Skip to content

Commit

Permalink
Merge pull request #56 from elwerene/master
Browse files Browse the repository at this point in the history
Bug with having multiple partials
  • Loading branch information
nrstott committed Jan 28, 2013
2 parents 4e73ab4 + eae75fd commit 8c6b664
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 14 deletions.
31 changes: 19 additions & 12 deletions lib/view.js
Expand Up @@ -10,6 +10,8 @@ var
settings = {},
_ = require('underscore'),
events = require('events'),
async = require('async'),
q = require('promised-io/promise'),
util = require('util');

// TODO: Figure out how to make this work x-platform using the nodules 'engines' overlay
Expand Down Expand Up @@ -221,27 +223,32 @@ exports.viewEngine.engine = function(engineName) {
};

exports.viewEngine.addEngine('mustache', function(str, opts, cache, viewEngine) {
var partialPromises = []
, partials = {}
var partials = {}
, viewPath;

opts = _.extend({}, opts);

if (opts.partials) {
for (var k in opts.partials) {
var defer = q.defer();

async.forEach(Object.keys(opts.partials), function(k, callback) {
viewPath = path.join(viewEngine.views, opts.partials[k]);

partialPromises.push(when(viewEngine.viewCache[viewPath] || viewEngine.cacheView(viewPath), function(str) {
when(viewEngine.viewCache[viewPath] || viewEngine.cacheView(viewPath), function(str) {
partials[k] = str;
return str;
}));
}

return promise.all(partialPromises).then(function() {
delete opts.partials;
callback();
});
}, function(err) {
delete opts.partials;

return require('mustache').to_html(str, opts.locals, partials);
if (err) {
defer.reject(err);
} else {
defer.resolve(require('mustache').to_html(str, opts.locals, partials));
}
});

return defer.promise;
}

return require('mustache').to_html(str, opts.locals);
Expand Down
6 changes: 4 additions & 2 deletions package.json
Expand Up @@ -19,14 +19,16 @@
"dependencies": {
"promised-io": "v0.3.0",
"jsgi": ">=v0.2.2",
"mustache": "0.3.1-dev",
"mustache": "0.7.2",
"underscore": ">=0.0.0",
"node-uuid": ">=1.2.0",
"parted": "=0.0.8",
"oauth": "=0.9.5",
"request": "=2.2.9",
"commander": "*",
"mkdirp": "*"
"mkdirp": "*",
"async": "0.1.22",
"promised-io": "0.2.3"
},
"devDependencies": {
"haml": ">=0.4.2",
Expand Down

0 comments on commit 8c6b664

Please sign in to comment.