module.exports = function(options) { return function(app) { app.define('taskNamespace', function(namespace) { return function(taskName, deps, fn) { if(!fn && typeof deps === 'function') { fn = deps; } if(!Array.isArray(deps)) { deps = []; } deps = deps.map(fullName); app.task(fullName(taskName), deps, fn); if(!app.tasks.hasOwnProperty(taskName)) { app.task(taskName, []); } app.tasks[taskName].deps.push(fullName(taskName)); }; function fullName(taskName) { return taskName + ':' + namespace; } }); }; };