From fa99cd2afc22c12ac298ea79aa0108388b79751e Mon Sep 17 00:00:00 2001 From: Brian Woodward Date: Sun, 10 Nov 2013 19:56:34 -0500 Subject: [PATCH] Moving plugin stage. Moving `'render:post:page'` to be called after the page is rendered to a string but before it's written to a file. Also updating a broken test. --- tasks/assemble.js | 21 +++++++++++++-------- test/engine_test.js | 11 +++++++---- 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/tasks/assemble.js b/tasks/assemble.js index 46e3181b5..2bbe81e5b 100644 --- a/tasks/assemble.js +++ b/tasks/assemble.js @@ -421,19 +421,24 @@ module.exports = function(grunt) { function postprocess(src, fn) {return fn(src);} var processFn = function(src) {return src;}; - // Write the file. - file.write(page.dest, postprocess(result, assemble.options.postprocess || processFn)); - - grunt.verbose.writeln('Assembled ' + (page.dest).cyan +' OK'.green); - grunt.log.notverbose.ok(); - // Run any plugins for the 'render:post:page' stage - assemble.plugins.runner('render:post:page', { + var params = { grunt: grunt, // the `grunt` object assemble: assemble, // the `assemble` object page: page, // the raw page content: result // the rendered page - })(done); + }; + + assemble.plugins.runner('render:post:page', params)(function() { + // Write the file. + file.write(page.dest, postprocess(params.content, assemble.options.postprocess || processFn)); + + grunt.verbose.writeln('Assembled ' + (page.dest).cyan +' OK'.green); + grunt.log.notverbose.ok(); + + done(); + }); + }); // build diff --git a/test/engine_test.js b/test/engine_test.js index f752a7c1a..6ea994a74 100644 --- a/test/engine_test.js +++ b/test/engine_test.js @@ -7,9 +7,12 @@ */ var assembleEngine = require('../lib/engine'); -var assembleHelpers = require('../lib/helpers'); var expect = require('chai').expect; +var pluginParams = { + grunt: require('grunt') +}; + describe('Loading default handlebars engine', function() { @@ -76,7 +79,7 @@ describe('Loading default handlebars engine', function() { engine.init({ cwd: __dirname, helpers: './helpers/helpers.js' - }); + }, pluginParams); runTest(engine, done); }); @@ -85,13 +88,13 @@ describe('Loading default handlebars engine', function() { engine.init({ cwd: __dirname, helpers: './helpers/helpers/*.js' - }); + }, pluginParams); runTest(engine, done); }); it('loads a custom helper without needing to set the cwd', function(done) { var engine = assembleEngine.load('handlebars'); - engine.init({helpers: './test/helpers/*.js'}); + engine.init({helpers: './test/helpers/*.js'}, pluginParams); var expected = ''; engine.compile("{{{foo 'bar'}}}", null, function(err, tmpl) { if(err) {