beelzebub
Version:
One Hell of a Task Master!
362 lines (236 loc) • 9.85 kB
HTML
<html lang="en">
<head>
<meta charset="utf-8">
<title>$beforeAll - Documentation</title>
<script src="scripts/prettify/prettify.js"></script>
<script src="scripts/prettify/lang-css.js"></script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/prettify.css">
<link type="text/css" rel="stylesheet" href="styles/jsdoc.css">
</head>
<body>
<input type="checkbox" id="nav-trigger" class="nav-trigger" />
<label for="nav-trigger" class="navicon-button x">
<div class="navicon"></div>
</label>
<label for="nav-trigger" class="overlay"></label>
<nav>
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="BzTasks.html">BzTasks</a><ul class='methods'><li data-type='method'><a href="BzTasks.html#$addSubTasks">$addSubTasks</a></li><li data-type='method'><a href="BzTasks.html#$defineTaskVars">$defineTaskVars</a></li><li data-type='method'><a href="BzTasks.html#$getGlobalVars">$getGlobalVars</a></li><li data-type='method'><a href="BzTasks.html#$getName">$getName</a></li><li data-type='method'><a href="BzTasks.html#$getRunning">$getRunning</a></li><li data-type='method'><a href="BzTasks.html#$getStatsSummary">$getStatsSummary</a></li><li data-type='method'><a href="BzTasks.html#$getSubTask">$getSubTask</a></li><li data-type='method'><a href="BzTasks.html#$getSubTasks">$getSubTasks</a></li><li data-type='method'><a href="BzTasks.html#$getTask">$getTask</a></li><li data-type='method'><a href="BzTasks.html#$getTaskFlatList">$getTaskFlatList</a></li><li data-type='method'><a href="BzTasks.html#$getTaskTree">$getTaskTree</a></li><li data-type='method'><a href="BzTasks.html#$getVarDefsForTaskName">$getVarDefsForTaskName</a></li><li data-type='method'><a href="BzTasks.html#$hasRunBefore">$hasRunBefore</a></li><li data-type='method'><a href="BzTasks.html#$hasSubTask">$hasSubTask</a></li><li data-type='method'><a href="BzTasks.html#$hasTask">$hasTask</a></li><li data-type='method'><a href="BzTasks.html#$isRoot">$isRoot</a></li><li data-type='method'><a href="BzTasks.html#$parallel">$parallel</a></li><li data-type='method'><a href="BzTasks.html#$printHelp">$printHelp</a></li><li data-type='method'><a href="BzTasks.html#$register">$register</a></li><li data-type='method'><a href="BzTasks.html#$run">$run</a></li><li data-type='method'><a href="BzTasks.html#$sequence">$sequence</a></li><li data-type='method'><a href="BzTasks.html#$setDefault">$setDefault</a></li><li data-type='method'><a href="BzTasks.html#$setGlobalVars">$setGlobalVars</a></li><li data-type='method'><a href="BzTasks.html#$setName">$setName</a></li><li data-type='method'><a href="BzTasks.html#$setSubTask">$setSubTask</a></li><li data-type='method'><a href="BzTasks.html#$setSubTasks">$setSubTasks</a></li><li data-type='method'><a href="BzTasks.html#$setTaskHelpDocs">$setTaskHelpDocs</a></li><li data-type='method'><a href="BzTasks.html#$useAsRoot">$useAsRoot</a></li></ul></li></ul><h3>Interfaces</h3><ul><li><a href="BzTasks_$afterAll.html">$afterAll</a></li><li><a href="BzTasks_$afterEach.html">$afterEach</a></li><li><a href="BzTasks_$beforeAll.html">$beforeAll</a></li><li><a href="BzTasks_$beforeEach.html">$beforeEach</a></li><li><a href="BzTasks_$init.html">$init</a></li></ul>
</nav>
<div id="main">
<h1 class="page-title">$beforeAll</h1>
<section>
<header>
<h2>
<span class="ancestors"><a href="BzTasks.html">BzTasks</a>#</span>
$beforeAll
</h2>
</header>
<article>
<div class="container-overview">
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="bzTasks.js.html">bzTasks.js</a>, <a href="bzTasks.js.html#line349">line 349</a>
</li></ul></dd>
</dl>
<div class="description"><p>This needs to be Extented</p></div>
<h3>Example</h3>
<pre class="prettyprint"><code> let Beelzebub = require('../../');
let bz = Beelzebub(options || { verbose: true });
class MySubBaseTasks1 extends Beelzebub.Tasks {
_delay (message, delay = 100) {
return new Promise((resolve, reject) => {
setTimeout(() => {
this.logger.log(message);
resolve();
}, delay);
});
}
$init () {
this.logger.log('MySubBaseTasks1 init');
}
// generator function
* $beforeAll () {
yield this._delay('MySubBaseTasks1 beforeAll');
}
// generator function
* $afterAll () {
return this._delay('MySubBaseTasks1 afterAll');
}
// generator function
* $beforeEach (taskInfo) {
return this._delay(`MySubBaseTasks1 beforeEach - ${taskInfo.task}`);
}
// generator function
* $afterEach (taskInfo) {
yield this._delay(`MySubBaseTasks1 afterEach - ${taskInfo.task}`);
}
taskA1 () {
return this._delay('MySubBaseTasks1 taskA1');
}
}
class MySubBaseTasks2 extends Beelzebub.Tasks {
_delay (message, delay = 100) {
return new Promise((resolve, reject) => {
setTimeout(() => {
this.logger.log(message);
resolve();
}, delay);
});
}
$init () {
this.logger.log('MySubBaseTasks2 init');
}
// generator function
* $beforeAll () {
yield this._delay('MySubBaseTasks2 beforeAll');
}
// generator function
* $afterAll () {
return this._delay('MySubBaseTasks2 afterAll');
}
// generator function
* $beforeEach (taskInfo) {
return this._delay(`MySubBaseTasks2 beforeEach - ${taskInfo.task}`);
}
// generator function
* $afterEach (taskInfo) {
yield this._delay(`MySubBaseTasks2 afterEach - ${taskInfo.task}`);
}
taskA2 () {
return this._delay('MySubBaseTasks2 taskA2');
}
}
class MyBaseTasks extends Beelzebub.Tasks {
_delay (message, delay = 100) {
return new Promise((resolve, reject) => {
setTimeout(() => {
this.logger.log(message);
resolve();
}, delay);
});
}
$init () {
this.logger.log('MyBaseTasks init');
// see subtasksSimple or Advanced for details on adding sub tasks
this.$addSubTasks(MySubBaseTasks1);
}
// returns promise
$beforeAll () {
return this._delay('MyBaseTasks beforeAll').then(() => {
return this.$addSubTasks(MySubBaseTasks2);
});
}
// returns promise
$afterAll () {
return this._delay('MyBaseTasks afterAll');
}
// returns promise
$beforeEach (taskInfo) {
return this._delay(`MyBaseTasks beforeEach - ${taskInfo.task} ${JSON.stringify(taskInfo.vars)}`);
}
// returns promise
$afterEach (taskInfo) {
return this._delay(`MyBaseTasks afterEach - ${taskInfo.task} ${JSON.stringify(taskInfo.vars)}`);
}
taskA (vars) {
return this._delay(`MyBaseTasks taskA - ${vars.hello}`);
}
taskB (vars) {
return this._delay('MyBaseTasks taskB');
}
}
class MyTasks extends Beelzebub.Tasks {
_delay (message, delay = 100) {
return new Promise((resolve, reject) => {
setTimeout(() => {
this.logger.log(message);
resolve();
}, delay);
});
}
$init () {
this.logger.log('MyTasks init');
// see subtasksSimple or Advanced for details on adding sub tasks
this.$addSubTasks(MyBaseTasks);
}
// generator function
* $beforeEach (taskInfo) {
yield this._delay(`MyTasks beforeEach - ${taskInfo.task}`);
}
// generator function
* $afterEach (taskInfo) {
yield this._delay(`MyTasks afterEach - ${taskInfo.task}`);
}
// generator function
* $beforeAll () {
yield this._delay('MyTasks beforeAll');
}
// generator function
* $afterAll () {
yield this._delay('MyTasks afterAll');
}
task1 () {
this.logger.log('MyTasks task1');
return this.$sequence({
task: '.MyBaseTasks.taskA',
vars: { hello: 'world' }
},
'.MyBaseTasks.taskB',
'.MyBaseTasks.MySubBaseTasks2.taskA2');
}
task2 () {
this.logger.log('MyTasks task2');
}
_internalFunction () {
this.logger.error('this should be ignored');
}
}
bz.add(MyTasks);
let p = bz.run('MyTasks.MyBaseTasks.MySubBaseTasks1.taskA1', 'MyTasks.task1', 'MyTasks.task2');
/* Output:
MyTasks init
MyBaseTasks init
MySubBaseTasks1 init
MyTasks beforeAll
MyBaseTasks beforeAll
MySubBaseTasks2 init
MySubBaseTasks1 beforeAll
MySubBaseTasks1 beforeEach - taskA1
MySubBaseTasks1 taskA1
MySubBaseTasks1 afterEach - taskA1
MyTasks beforeEach - task1
MyTasks task1
MyBaseTasks beforeEach - taskA {"hello":"world"}
MyBaseTasks taskA - world
MyBaseTasks afterEach - taskA {"hello":"world"}
MyBaseTasks beforeEach - taskB {}
MyBaseTasks taskB
MyBaseTasks afterEach - taskB {}
MySubBaseTasks2 beforeAll
MySubBaseTasks2 beforeEach - taskA2
MySubBaseTasks2 taskA2
MySubBaseTasks2 afterEach - taskA2
MyTasks afterEach - task1
MyTasks beforeEach - task2
MyTasks task2
MyTasks afterEach - task2
MySubBaseTasks1 afterAll
MySubBaseTasks2 afterAll
MyBaseTasks afterAll
MyTasks afterAll
*/
</code></pre>
</div>
</article>
</section>
</div>
<br class="clear">
<script>prettyPrint();</script>
<script src="scripts/linenumber.js"></script>
</body>
</html>