coa 1.0.3 → 1.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. package/.npmignore +6 -0
  2. package/.nyc_output/1f2a0db5a6d6559149db56d397f47cfc.json +1 -0
  3. package/.nyc_output/75b82d38f2186df930141082076e11c6.json +1 -0
  4. package/.travis.yml +9 -0
  5. package/GNUmakefile +34 -0
  6. package/README.md +1 -19
  7. package/coverage/base.css +212 -0
  8. package/coverage/coa/index.html +93 -0
  9. package/coverage/coa/index.js.html +68 -0
  10. package/coverage/coa/lib/arg.js.html +239 -0
  11. package/coverage/coa/lib/cmd.js.html +1556 -0
  12. package/coverage/coa/lib/coaobject.js.html +365 -0
  13. package/coverage/coa/lib/coaparam.js.html +440 -0
  14. package/coverage/coa/lib/color.js.html +131 -0
  15. package/coverage/coa/lib/completion.js.html +593 -0
  16. package/coverage/coa/lib/index.html +197 -0
  17. package/coverage/coa/lib/index.js.html +107 -0
  18. package/coverage/coa/lib/opt.js.html +524 -0
  19. package/coverage/coa/lib/shell.js.html +107 -0
  20. package/coverage/index.html +106 -0
  21. package/coverage/prettify.css +1 -0
  22. package/coverage/prettify.js +1 -0
  23. package/coverage/sort-arrow-sprite.png +0 -0
  24. package/coverage/sorter.js +158 -0
  25. package/index.js +1 -1
  26. package/lib/arg.js +161 -44
  27. package/lib/cmd.js +547 -434
  28. package/lib/color.js +22 -19
  29. package/lib/completion.js +119 -161
  30. package/lib/index.js +10 -14
  31. package/lib/opt.js +313 -130
  32. package/lib/shell.js +13 -13
  33. package/package.json +14 -19
  34. package/qq.js +17 -0
  35. package/src/arg.coffee +130 -0
  36. package/src/cmd.coffee +456 -0
  37. package/src/color.coffee +25 -0
  38. package/src/completion.coffee +156 -0
  39. package/src/index.coffee +5 -0
  40. package/src/opt.coffee +243 -0
  41. package/src/shell.coffee +10 -0
  42. package/test/coa.js +496 -0
  43. package/test/mocha.opts +2 -0
  44. package/test/shell-test.js +60 -0
  45. package/tests/api-h.js +9 -0
  46. package/tests/h.js +6 -0
  47. package/LICENSE +0 -21
  48. package/lib/coaobject.js +0 -100
  49. package/lib/coaparam.js +0 -125
@@ -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>