coa 1.0.0 → 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,365 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <title>Code coverage report for coa/lib/coaobject.js</title>
5
+ <meta charset="utf-8" />
6
+ <link rel="stylesheet" href="../../prettify.css" />
7
+ <link rel="stylesheet" href="../../base.css" />
8
+ <meta name="viewport" content="width=device-width, initial-scale=1">
9
+ <style type='text/css'>
10
+ .coverage-summary .sorter {
11
+ background-image: url(../../sort-arrow-sprite.png);
12
+ }
13
+ </style>
14
+ </head>
15
+ <body>
16
+ <div class='wrapper'>
17
+ <div class='pad1'>
18
+ <h1>
19
+ <a href="../../index.html">All files</a> / <a href="index.html">coa/lib</a> coaobject.js
20
+ </h1>
21
+ <div class='clearfix'>
22
+ <div class='fl pad1y space-right2'>
23
+ <span class="strong">75% </span>
24
+ <span class="quiet">Statements</span>
25
+ <span class='fraction'>12/16</span>
26
+ </div>
27
+ <div class='fl pad1y space-right2'>
28
+ <span class="strong">50% </span>
29
+ <span class="quiet">Branches</span>
30
+ <span class='fraction'>1/2</span>
31
+ </div>
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">71.43% </span>
34
+ <span class="quiet">Functions</span>
35
+ <span class='fraction'>5/7</span>
36
+ </div>
37
+ <div class='fl pad1y space-right2'>
38
+ <span class="strong">75% </span>
39
+ <span class="quiet">Lines</span>
40
+ <span class='fraction'>12/16</span>
41
+ </div>
42
+ </div>
43
+ </div>
44
+ <div class='status-line medium'></div>
45
+ <pre><table class="coverage">
46
+ <tr><td class="line-count quiet">1
47
+ 2
48
+ 3
49
+ 4
50
+ 5
51
+ 6
52
+ 7
53
+ 8
54
+ 9
55
+ 10
56
+ 11
57
+ 12
58
+ 13
59
+ 14
60
+ 15
61
+ 16
62
+ 17
63
+ 18
64
+ 19
65
+ 20
66
+ 21
67
+ 22
68
+ 23
69
+ 24
70
+ 25
71
+ 26
72
+ 27
73
+ 28
74
+ 29
75
+ 30
76
+ 31
77
+ 32
78
+ 33
79
+ 34
80
+ 35
81
+ 36
82
+ 37
83
+ 38
84
+ 39
85
+ 40
86
+ 41
87
+ 42
88
+ 43
89
+ 44
90
+ 45
91
+ 46
92
+ 47
93
+ 48
94
+ 49
95
+ 50
96
+ 51
97
+ 52
98
+ 53
99
+ 54
100
+ 55
101
+ 56
102
+ 57
103
+ 58
104
+ 59
105
+ 60
106
+ 61
107
+ 62
108
+ 63
109
+ 64
110
+ 65
111
+ 66
112
+ 67
113
+ 68
114
+ 69
115
+ 70
116
+ 71
117
+ 72
118
+ 73
119
+ 74
120
+ 75
121
+ 76
122
+ 77
123
+ 78
124
+ 79
125
+ 80
126
+ 81
127
+ 82
128
+ 83
129
+ 84
130
+ 85
131
+ 86
132
+ 87
133
+ 88
134
+ 89
135
+ 90
136
+ 91
137
+ 92
138
+ 93
139
+ 94
140
+ 95
141
+ 96
142
+ 97
143
+ 98
144
+ 99
145
+ 100
146
+ 101</td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
147
+ <span class="cline-any cline-neutral">&nbsp;</span>
148
+ <span class="cline-any cline-yes">1x</span>
149
+ <span class="cline-any cline-neutral">&nbsp;</span>
150
+ <span class="cline-any cline-neutral">&nbsp;</span>
151
+ <span class="cline-any cline-neutral">&nbsp;</span>
152
+ <span class="cline-any cline-neutral">&nbsp;</span>
153
+ <span class="cline-any cline-neutral">&nbsp;</span>
154
+ <span class="cline-any cline-neutral">&nbsp;</span>
155
+ <span class="cline-any cline-neutral">&nbsp;</span>
156
+ <span class="cline-any cline-neutral">&nbsp;</span>
157
+ <span class="cline-any cline-neutral">&nbsp;</span>
158
+ <span class="cline-any cline-neutral">&nbsp;</span>
159
+ <span class="cline-any cline-neutral">&nbsp;</span>
160
+ <span class="cline-any cline-neutral">&nbsp;</span>
161
+ <span class="cline-any cline-neutral">&nbsp;</span>
162
+ <span class="cline-any cline-neutral">&nbsp;</span>
163
+ <span class="cline-any cline-neutral">&nbsp;</span>
164
+ <span class="cline-any cline-neutral">&nbsp;</span>
165
+ <span class="cline-any cline-neutral">&nbsp;</span>
166
+ <span class="cline-any cline-neutral">&nbsp;</span>
167
+ <span class="cline-any cline-yes">1x</span>
168
+ <span class="cline-any cline-neutral">&nbsp;</span>
169
+ <span class="cline-any cline-yes">58x</span>
170
+ <span class="cline-any cline-yes">58x</span>
171
+ <span class="cline-any cline-yes">58x</span>
172
+ <span class="cline-any cline-yes">58x</span>
173
+ <span class="cline-any cline-neutral">&nbsp;</span>
174
+ <span class="cline-any cline-neutral">&nbsp;</span>
175
+ <span class="cline-any cline-neutral">&nbsp;</span>
176
+ <span class="cline-any cline-neutral">&nbsp;</span>
177
+ <span class="cline-any cline-neutral">&nbsp;</span>
178
+ <span class="cline-any cline-neutral">&nbsp;</span>
179
+ <span class="cline-any cline-neutral">&nbsp;</span>
180
+ <span class="cline-any cline-neutral">&nbsp;</span>
181
+ <span class="cline-any cline-neutral">&nbsp;</span>
182
+ <span class="cline-any cline-yes">44x</span>
183
+ <span class="cline-any cline-yes">44x</span>
184
+ <span class="cline-any cline-neutral">&nbsp;</span>
185
+ <span class="cline-any cline-neutral">&nbsp;</span>
186
+ <span class="cline-any cline-neutral">&nbsp;</span>
187
+ <span class="cline-any cline-neutral">&nbsp;</span>
188
+ <span class="cline-any cline-neutral">&nbsp;</span>
189
+ <span class="cline-any cline-neutral">&nbsp;</span>
190
+ <span class="cline-any cline-neutral">&nbsp;</span>
191
+ <span class="cline-any cline-neutral">&nbsp;</span>
192
+ <span class="cline-any cline-no">&nbsp;</span>
193
+ <span class="cline-any cline-no">&nbsp;</span>
194
+ <span class="cline-any cline-neutral">&nbsp;</span>
195
+ <span class="cline-any cline-neutral">&nbsp;</span>
196
+ <span class="cline-any cline-neutral">&nbsp;</span>
197
+ <span class="cline-any cline-neutral">&nbsp;</span>
198
+ <span class="cline-any cline-neutral">&nbsp;</span>
199
+ <span class="cline-any cline-neutral">&nbsp;</span>
200
+ <span class="cline-any cline-neutral">&nbsp;</span>
201
+ <span class="cline-any cline-neutral">&nbsp;</span>
202
+ <span class="cline-any cline-neutral">&nbsp;</span>
203
+ <span class="cline-any cline-neutral">&nbsp;</span>
204
+ <span class="cline-any cline-neutral">&nbsp;</span>
205
+ <span class="cline-any cline-neutral">&nbsp;</span>
206
+ <span class="cline-any cline-neutral">&nbsp;</span>
207
+ <span class="cline-any cline-no">&nbsp;</span>
208
+ <span class="cline-any cline-no">&nbsp;</span>
209
+ <span class="cline-any cline-neutral">&nbsp;</span>
210
+ <span class="cline-any cline-neutral">&nbsp;</span>
211
+ <span class="cline-any cline-neutral">&nbsp;</span>
212
+ <span class="cline-any cline-neutral">&nbsp;</span>
213
+ <span class="cline-any cline-neutral">&nbsp;</span>
214
+ <span class="cline-any cline-neutral">&nbsp;</span>
215
+ <span class="cline-any cline-neutral">&nbsp;</span>
216
+ <span class="cline-any cline-neutral">&nbsp;</span>
217
+ <span class="cline-any cline-neutral">&nbsp;</span>
218
+ <span class="cline-any cline-neutral">&nbsp;</span>
219
+ <span class="cline-any cline-yes">3x</span>
220
+ <span class="cline-any cline-neutral">&nbsp;</span>
221
+ <span class="cline-any cline-neutral">&nbsp;</span>
222
+ <span class="cline-any cline-neutral">&nbsp;</span>
223
+ <span class="cline-any cline-yes">3x</span>
224
+ <span class="cline-any cline-neutral">&nbsp;</span>
225
+ <span class="cline-any cline-neutral">&nbsp;</span>
226
+ <span class="cline-any cline-neutral">&nbsp;</span>
227
+ <span class="cline-any cline-neutral">&nbsp;</span>
228
+ <span class="cline-any cline-neutral">&nbsp;</span>
229
+ <span class="cline-any cline-neutral">&nbsp;</span>
230
+ <span class="cline-any cline-neutral">&nbsp;</span>
231
+ <span class="cline-any cline-neutral">&nbsp;</span>
232
+ <span class="cline-any cline-neutral">&nbsp;</span>
233
+ <span class="cline-any cline-neutral">&nbsp;</span>
234
+ <span class="cline-any cline-neutral">&nbsp;</span>
235
+ <span class="cline-any cline-yes">8x</span>
236
+ <span class="cline-any cline-neutral">&nbsp;</span>
237
+ <span class="cline-any cline-neutral">&nbsp;</span>
238
+ <span class="cline-any cline-neutral">&nbsp;</span>
239
+ <span class="cline-any cline-neutral">&nbsp;</span>
240
+ <span class="cline-any cline-neutral">&nbsp;</span>
241
+ <span class="cline-any cline-neutral">&nbsp;</span>
242
+ <span class="cline-any cline-neutral">&nbsp;</span>
243
+ <span class="cline-any cline-yes">38x</span>
244
+ <span class="cline-any cline-neutral">&nbsp;</span>
245
+ <span class="cline-any cline-neutral">&nbsp;</span>
246
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">'use strict';
247
+ &nbsp;
248
+ const Q = require('q');
249
+ &nbsp;
250
+ /**
251
+ * COA Object
252
+ *
253
+ * Base class for all COA-related objects
254
+ *
255
+ * --------|-----|-----|-----
256
+ * | Cmd | Opt | Arg
257
+ * --------|-----|-----|-----
258
+ * name | ✓ | ✓ | ✓
259
+ * title | ✓ | ✓ | ✓
260
+ * comp | ✓ | ✓ | ✓
261
+ * reject | ✓ | ✓ | ✓
262
+ * end | ✓ | ✓ | ✓
263
+ * apply | ✓ | ✓ | ✓
264
+ *
265
+ * @class CoaObject
266
+ */
267
+ module.exports = class CoaObject {
268
+ constructor(cmd) {
269
+ this._cmd = cmd;
270
+ this._name = null;
271
+ this._title = null;
272
+ this._comp = null;
273
+ }
274
+ &nbsp;
275
+ /**
276
+ * Set a canonical identifier to be used anywhere in the API.
277
+ *
278
+ * @param {String} name - command, option or argument name
279
+ * @returns {COA.CoaObject} - this instance (for chainability)
280
+ */
281
+ name(name) {
282
+ this._name = name;
283
+ return this;
284
+ }
285
+ &nbsp;
286
+ /**
287
+ * Set a long description to be used anywhere in text messages.
288
+ * @param {String} title - human readable entity title
289
+ * @returns {COA.CoaObject} - this instance (for chainability)
290
+ */
291
+ <span class="fstat-no" title="function not covered" > ti</span>tle(title) {
292
+ <span class="cstat-no" title="statement not covered" > this._title = title;</span>
293
+ <span class="cstat-no" title="statement not covered" > return this;</span>
294
+ }
295
+ &nbsp;
296
+ /**
297
+ * Set custom additional completion for current object.
298
+ *
299
+ * @param {Function} comp - completion generation function,
300
+ * invoked in the context of object instance.
301
+ * Accepts parameters:
302
+ * - {Object} opts - completion options
303
+ * It can return promise or any other value threated as a result.
304
+ * @returns {COA.CoaObject} - this instance (for chainability)
305
+ */
306
+ <span class="fstat-no" title="function not covered" > co</span>mp(comp) {
307
+ <span class="cstat-no" title="statement not covered" > this._comp = comp;</span>
308
+ <span class="cstat-no" title="statement not covered" > return this;</span>
309
+ }
310
+ &nbsp;
311
+ /**
312
+ * Apply function with arguments in a context of object instance.
313
+ *
314
+ * @param {Function} fn - body
315
+ * @param {Array.&lt;*&gt;} args... - arguments
316
+ * @returns {COA.CoaObject} - this instance (for chainability)
317
+ */
318
+ apply(fn) {
319
+ arguments.length &gt; 1?
320
+ <span class="branch-0 cbranch-no" title="branch not covered" > fn.apply(this, [].slice.call(arguments, 1))</span>
321
+ : fn.call(this);
322
+ &nbsp;
323
+ return this;
324
+ }
325
+ &nbsp;
326
+ /**
327
+ * Return reject of actions results promise with error code.
328
+ * Use in .act() for return with error.
329
+ * @param {Object} reason - reject reason
330
+ * You can customize toString() method and exitCode property
331
+ * of reason object.
332
+ * @returns {Q.promise} rejected promise
333
+ */
334
+ reject(reason) {
335
+ return Q.reject(reason);
336
+ }
337
+ &nbsp;
338
+ /**
339
+ * Finish chain for current subcommand and return parent command instance.
340
+ * @returns {COA.Cmd} parent command
341
+ */
342
+ end() {
343
+ return this._cmd;
344
+ }
345
+ };
346
+ &nbsp;</pre></td></tr>
347
+ </table></pre>
348
+ <div class='push'></div><!-- for sticky footer -->
349
+ </div><!-- /wrapper -->
350
+ <div class='footer quiet pad2 space-top1 center small'>
351
+ Code coverage
352
+ generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Fri Feb 17 2017 22:25:28 GMT+0300 (MSK)
353
+ </div>
354
+ </div>
355
+ <script src="../../prettify.js"></script>
356
+ <script>
357
+ window.onload = function () {
358
+ if (typeof prettyPrint === 'function') {
359
+ prettyPrint();
360
+ }
361
+ };
362
+ </script>
363
+ <script src="../../sorter.js"></script>
364
+ </body>
365
+ </html>