Comparing version 0.1.1 to 0.2.0
14
index.js
@@ -54,3 +54,4 @@ 'use strict'; | ||
function compileFile(err, attrs, options) { | ||
var errCode = err && err.cause && err.cause.code; | ||
var errCode = err && err.cause && err.cause.code, | ||
paths; | ||
// If there is no error or the error was 'Not a directory' | ||
@@ -60,3 +61,12 @@ if (!err || (errCode === 'ENOTDIR')) { | ||
if (!options.exclusive || isExclusive(attrs, options)) { | ||
Pecan.create(getPaths(attrs.src, attrs.dest, attrs.filename), options).compile(); | ||
paths = getPaths(attrs.src, attrs.dest, attrs.filename); | ||
// compile | ||
Pecan.create(paths, options).compile(); | ||
// listen to the `end` event | ||
Pecan.queue[paths.tmplPath].on('end', function () { | ||
// Call the optional cb if no more to compile | ||
if (typeof options.onEnd === 'function' && Object.keys(Pecan.queue).length === 0) { | ||
options.onEnd(paths); | ||
} | ||
}); | ||
} | ||
@@ -63,0 +73,0 @@ } else if (errCode !== 'ENOENT' && !isDirname(attrs.filename)) { |
{ | ||
"name": "asparagus", | ||
"version": "0.1.1", | ||
"version": "0.2.0", | ||
"description": "Flexible template compiler. Compile all or some of your templates, even those in parallel sub-folders, to a location that may or may not yet exist.", | ||
@@ -12,2 +12,3 @@ "keywords": [ | ||
"gulp", | ||
"pecan", | ||
"compile" | ||
@@ -42,3 +43,3 @@ ], | ||
"dependencies": { | ||
"pecan": "0.0.1", | ||
"pecan": "0.0.2", | ||
"bluebird": "2.3.2" | ||
@@ -45,0 +46,0 @@ }, |
'use strict'; | ||
var asparagus = require('../'), | ||
Pecan = require('pecan'); | ||
Pecan = require('pecan'), | ||
EventEmitter = require('events').EventEmitter; | ||
@@ -26,13 +27,21 @@ describe('asparagus', sandbox(function () { | ||
Pecan.queue[__dirname + '/dummy-source/t1.jade'] = { | ||
on: sandbox.stub() | ||
}; | ||
return asparagus(__dirname + '/dummy-source/t1.jade') | ||
.then(function () { | ||
Pecan.create.should.have.been.calledWith({ | ||
jsPath: __dirname + '/dummy-source/t1.js', | ||
tmplPath: __dirname + '/dummy-source/t1.jade' | ||
}, {}); | ||
Pecan.create | ||
.should.have.been.calledWith({ | ||
jsPath: __dirname + '/dummy-source/t1.js', | ||
tmplPath: __dirname + '/dummy-source/t1.jade' | ||
}, {}); | ||
Pecan.create.callCount.should.equal(1); | ||
compiler.compile.should.have.been.called; | ||
Pecan.create.callCount | ||
.should.equal(1); | ||
compiler.compile | ||
.should.have.been.called; | ||
done(); | ||
@@ -43,4 +52,34 @@ }); | ||
it('calls options.onEnd when finished compiling all files', function (done) { | ||
var onEndSpy = sandbox.spy(); | ||
Pecan.queue[__dirname + '/dummy-source/t1.jade'] = new EventEmitter(); | ||
return asparagus(__dirname + '/dummy-source/t1.jade', { onEnd: onEndSpy }) | ||
.then(function () { | ||
Pecan.create | ||
.should.have.been.calledWith({ | ||
jsPath: __dirname + '/dummy-source/t1.js', | ||
tmplPath: __dirname + '/dummy-source/t1.jade' | ||
}, { onEnd: onEndSpy }); | ||
var queueItem = Pecan.queue[__dirname + '/dummy-source/t1.jade']; | ||
delete Pecan.queue[__dirname + '/dummy-source/t1.jade']; | ||
queueItem.emit('end'); | ||
onEndSpy | ||
.should.have.been.called; | ||
done(); | ||
}); | ||
}); | ||
it('compiles a file 3 steps down', function (done) { | ||
Pecan.queue[__dirname + '/dummy-source/d2/sub/sub-file-2.jade'] = { | ||
on: sandbox.stub() | ||
}; | ||
return asparagus(__dirname + '/dummy-source/d2/sub/sub-file-2.jade') | ||
@@ -64,2 +103,33 @@ .then(function () { | ||
Pecan.queue[__dirname + '/dummy-source/t1.jade'] = { | ||
on: sandbox.stub() | ||
}; | ||
Pecan.queue[__dirname + '/dummy-source/t2.jade'] = { | ||
on: sandbox.stub() | ||
}; | ||
Pecan.queue[__dirname + '/dummy-source/d1/d1.jade'] = { | ||
on: sandbox.stub() | ||
}; | ||
Pecan.queue[__dirname + '/dummy-source/d2/d2.jade'] = { | ||
on: sandbox.stub() | ||
}; | ||
Pecan.queue[__dirname + '/dummy-source/exp/exp-sub.jade'] = { | ||
on: sandbox.stub() | ||
}; | ||
Pecan.queue[__dirname + '/dummy-source/d1/d1-sub/d1-sub-file.jade'] = { | ||
on: sandbox.stub() | ||
}; | ||
Pecan.queue[__dirname + '/dummy-source/d1/sub/sub-file-1.jade'] = { | ||
on: sandbox.stub() | ||
}; | ||
Pecan.queue[__dirname + '/dummy-source/d1/d1-sub/d1-sub-file.jade'] = { | ||
on: sandbox.stub() | ||
}; | ||
Pecan.queue[__dirname + '/dummy-source/d1/sub/sub-file-1.jade'] = { | ||
on: sandbox.stub() | ||
}; | ||
Pecan.queue[__dirname + '/dummy-source/d2/sub/sub-file-2.jade'] = { | ||
on: sandbox.stub() | ||
}; | ||
return asparagus(__dirname + '/dummy-source/') | ||
@@ -66,0 +136,0 @@ .then(function () { |
29382
473
+ Addedpecan@0.0.2(transitive)
- Removedpecan@0.0.1(transitive)
Updatedpecan@0.0.2