como 0.0.2 → 0.1.0
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.
- data/CHANGELOG.rdoc +12 -0
- data/README.rdoc +11 -5
- data/Rakefile +6 -1
- data/doc/Como/ArgsParseState.html +912 -0
- data/doc/Como/ComoCommon.html +305 -0
- data/doc/Como/MainOpt.html +636 -0
- data/doc/Como/MasterOpt.html +636 -0
- data/doc/Como/Opt/ErrorWithData.html +304 -0
- data/doc/Como/Opt/InvalidOption.html +158 -0
- data/doc/Como/Opt/MissingArgument.html +158 -0
- data/doc/Como/Opt.html +6098 -0
- data/doc/Como/RuleCheck.html +933 -0
- data/doc/Como/RuleDisplay.html +1193 -0
- data/doc/Como/Spec.html +1750 -0
- data/doc/Como.html +625 -0
- data/doc/_index.html +242 -0
- data/doc/class_list.html +53 -0
- data/doc/css/common.css +1 -0
- data/doc/css/full_list.css +57 -0
- data/doc/css/style.css +338 -0
- data/doc/file.CHANGELOG.html +90 -0
- data/doc/file.README.html +94 -0
- data/doc/file.como.html +1962 -0
- data/doc/file_list.html +58 -0
- data/doc/frames.html +28 -0
- data/doc/index.html +94 -0
- data/doc/js/app.js +214 -0
- data/doc/js/full_list.js +178 -0
- data/doc/js/jquery.js +4 -0
- data/doc/method_list.html +838 -0
- data/doc/top-level-namespace.html +112 -0
- data/lib/como.rb +1660 -661
- data/test/como_compatible +37 -0
- data/test/como_config +44 -0
- data/test/como_options +36 -0
- data/test/como_queries +44 -0
- data/test/como_rule_1 +28 -0
- data/test/como_rule_2 +28 -0
- data/test/como_subcmd +72 -0
- data/test/como_subcmd_config +88 -0
- data/test/golden/compatible.txt +438 -0
- data/test/golden/config.txt +319 -0
- data/test/golden/options.txt +438 -0
- data/test/golden/queries.txt +78 -0
- data/test/golden/rule_1.txt +454 -0
- data/test/golden/rule_2.txt +476 -0
- data/test/golden/subcmd.txt +360 -0
- data/test/golden/subcmd_config.txt +534 -0
- data/test/test_como.rb +22 -328
- data/test/test_compatible +28 -0
- data/test/test_config +12 -0
- data/test/test_options +28 -0
- data/test/test_queries +7 -0
- data/test/test_rule_1 +27 -0
- data/test/test_rule_2 +27 -0
- data/test/test_subcmd +30 -0
- data/test/test_subcmd_config +31 -0
- metadata +62 -6
data/doc/Como/Spec.html
ADDED
@@ -0,0 +1,1750 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
4
|
+
<head>
|
5
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
6
|
+
<title>
|
7
|
+
Class: Como::Spec
|
8
|
+
|
9
|
+
— Documentation by YARD 0.8.6.1
|
10
|
+
|
11
|
+
</title>
|
12
|
+
|
13
|
+
<link rel="stylesheet" href="../css/style.css" type="text/css" charset="utf-8" />
|
14
|
+
|
15
|
+
<link rel="stylesheet" href="../css/common.css" type="text/css" charset="utf-8" />
|
16
|
+
|
17
|
+
<script type="text/javascript" charset="utf-8">
|
18
|
+
hasFrames = window.top.frames.main ? true : false;
|
19
|
+
relpath = '../';
|
20
|
+
framesUrl = "../frames.html#!" + escape(window.location.href);
|
21
|
+
</script>
|
22
|
+
|
23
|
+
|
24
|
+
<script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
|
25
|
+
|
26
|
+
<script type="text/javascript" charset="utf-8" src="../js/app.js"></script>
|
27
|
+
|
28
|
+
|
29
|
+
</head>
|
30
|
+
<body>
|
31
|
+
<div id="header">
|
32
|
+
<div id="menu">
|
33
|
+
|
34
|
+
<a href="../_index.html">Index (S)</a> »
|
35
|
+
<span class='title'><span class='object_link'><a href="../Como.html" title="Como (module)">Como</a></span></span>
|
36
|
+
»
|
37
|
+
<span class="title">Spec</span>
|
38
|
+
|
39
|
+
|
40
|
+
<div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
|
41
|
+
</div>
|
42
|
+
|
43
|
+
<div id="search">
|
44
|
+
|
45
|
+
<a class="full_list_link" id="class_list_link"
|
46
|
+
href="../class_list.html">
|
47
|
+
Class List
|
48
|
+
</a>
|
49
|
+
|
50
|
+
<a class="full_list_link" id="method_list_link"
|
51
|
+
href="../method_list.html">
|
52
|
+
Method List
|
53
|
+
</a>
|
54
|
+
|
55
|
+
<a class="full_list_link" id="file_list_link"
|
56
|
+
href="../file_list.html">
|
57
|
+
File List
|
58
|
+
</a>
|
59
|
+
|
60
|
+
</div>
|
61
|
+
<div class="clear"></div>
|
62
|
+
</div>
|
63
|
+
|
64
|
+
<iframe id="search_frame"></iframe>
|
65
|
+
|
66
|
+
<div id="content"><h1>Class: Como::Spec
|
67
|
+
|
68
|
+
|
69
|
+
|
70
|
+
</h1>
|
71
|
+
|
72
|
+
<dl class="box">
|
73
|
+
|
74
|
+
<dt class="r1">Inherits:</dt>
|
75
|
+
<dd class="r1">
|
76
|
+
<span class="inheritName"><span class='object_link'><a href="ComoCommon.html" title="Como::ComoCommon (class)">ComoCommon</a></span></span>
|
77
|
+
|
78
|
+
<ul class="fullTree">
|
79
|
+
<li>Object</li>
|
80
|
+
|
81
|
+
<li class="next"><span class='object_link'><a href="ComoCommon.html" title="Como::ComoCommon (class)">ComoCommon</a></span></li>
|
82
|
+
|
83
|
+
<li class="next">Como::Spec</li>
|
84
|
+
|
85
|
+
</ul>
|
86
|
+
<a href="#" class="inheritanceTree">show all</a>
|
87
|
+
|
88
|
+
</dd>
|
89
|
+
|
90
|
+
|
91
|
+
|
92
|
+
|
93
|
+
|
94
|
+
|
95
|
+
|
96
|
+
|
97
|
+
|
98
|
+
<dt class="r2 last">Defined in:</dt>
|
99
|
+
<dd class="r2 last">lib/como.rb</dd>
|
100
|
+
|
101
|
+
</dl>
|
102
|
+
<div class="clear"></div>
|
103
|
+
|
104
|
+
<h2>Overview</h2><div class="docstring">
|
105
|
+
<div class="discussion">
|
106
|
+
|
107
|
+
<p>User interface for Como.</p>
|
108
|
+
|
109
|
+
|
110
|
+
</div>
|
111
|
+
</div>
|
112
|
+
<div class="tags">
|
113
|
+
|
114
|
+
|
115
|
+
</div>
|
116
|
+
<h2>Constant Summary</h2>
|
117
|
+
|
118
|
+
<dl class="constants">
|
119
|
+
|
120
|
+
<dt id="argv-classvariable" class="">@@argv =
|
121
|
+
<div class="docstring">
|
122
|
+
<div class="discussion">
|
123
|
+
|
124
|
+
<p>Command line options source.</p>
|
125
|
+
|
126
|
+
|
127
|
+
</div>
|
128
|
+
</div>
|
129
|
+
<div class="tags">
|
130
|
+
|
131
|
+
|
132
|
+
</div>
|
133
|
+
</dt>
|
134
|
+
<dd><pre class="code"><span class='const'>ARGV</span></pre></dd>
|
135
|
+
|
136
|
+
</dl>
|
137
|
+
|
138
|
+
|
139
|
+
|
140
|
+
|
141
|
+
|
142
|
+
|
143
|
+
|
144
|
+
|
145
|
+
|
146
|
+
<h2>
|
147
|
+
Class Method Summary
|
148
|
+
<small>(<a href="#" class="summary_toggle">collapse</a>)</small>
|
149
|
+
</h2>
|
150
|
+
|
151
|
+
<ul class="summary">
|
152
|
+
|
153
|
+
<li class="public ">
|
154
|
+
<span class="summary_signature">
|
155
|
+
|
156
|
+
<a href="#checkAlso-class_method" title="checkAlso (class method)">+ (Object) <strong>checkAlso</strong>(opt, error, &check) </a>
|
157
|
+
|
158
|
+
|
159
|
+
|
160
|
+
</span>
|
161
|
+
|
162
|
+
|
163
|
+
|
164
|
+
|
165
|
+
|
166
|
+
|
167
|
+
|
168
|
+
|
169
|
+
|
170
|
+
<span class="summary_desc"><div class='inline'>
|
171
|
+
<p>Additional option check.</p>
|
172
|
+
</div></span>
|
173
|
+
|
174
|
+
</li>
|
175
|
+
|
176
|
+
|
177
|
+
<li class="public ">
|
178
|
+
<span class="summary_signature">
|
179
|
+
|
180
|
+
<a href="#checkRule-class_method" title="checkRule (class method)">+ (Object) <strong>checkRule</strong>(opt = nil, &rule) </a>
|
181
|
+
|
182
|
+
|
183
|
+
|
184
|
+
</span>
|
185
|
+
|
186
|
+
|
187
|
+
|
188
|
+
|
189
|
+
|
190
|
+
|
191
|
+
|
192
|
+
|
193
|
+
|
194
|
+
<span class="summary_desc"><div class='inline'>
|
195
|
+
<p>Check option combination rules.</p>
|
196
|
+
</div></span>
|
197
|
+
|
198
|
+
</li>
|
199
|
+
|
200
|
+
|
201
|
+
<li class="public ">
|
202
|
+
<span class="summary_signature">
|
203
|
+
|
204
|
+
<a href="#command-class_method" title="command (class method)">+ (Object) <strong>command</strong>(prog, author, year, defs, config = {}) </a>
|
205
|
+
|
206
|
+
|
207
|
+
|
208
|
+
</span>
|
209
|
+
|
210
|
+
|
211
|
+
|
212
|
+
|
213
|
+
|
214
|
+
|
215
|
+
|
216
|
+
|
217
|
+
|
218
|
+
<span class="summary_desc"><div class='inline'>
|
219
|
+
<p>The primary entry point to Como.</p>
|
220
|
+
</div></span>
|
221
|
+
|
222
|
+
</li>
|
223
|
+
|
224
|
+
|
225
|
+
<li class="public ">
|
226
|
+
<span class="summary_signature">
|
227
|
+
|
228
|
+
<a href="#defineCheck-class_method" title="defineCheck (class method)">+ (Object) <strong>defineCheck</strong>(prog, author, year, defs, config = {}) </a>
|
229
|
+
|
230
|
+
|
231
|
+
|
232
|
+
</span>
|
233
|
+
|
234
|
+
|
235
|
+
|
236
|
+
|
237
|
+
|
238
|
+
|
239
|
+
|
240
|
+
|
241
|
+
|
242
|
+
<span class="summary_desc"><div class='inline'>
|
243
|
+
<p>Same as "defineCheckHelp" except without automatic "help" option
|
244
|
+
processing.</p>
|
245
|
+
</div></span>
|
246
|
+
|
247
|
+
</li>
|
248
|
+
|
249
|
+
|
250
|
+
<li class="public ">
|
251
|
+
<span class="summary_signature">
|
252
|
+
|
253
|
+
<a href="#defineCheckHelp-class_method" title="defineCheckHelp (class method)">+ (Object) <strong>defineCheckHelp</strong>(prog, author, year, defs, config = {}) </a>
|
254
|
+
|
255
|
+
|
256
|
+
|
257
|
+
</span>
|
258
|
+
|
259
|
+
|
260
|
+
|
261
|
+
|
262
|
+
|
263
|
+
|
264
|
+
|
265
|
+
|
266
|
+
|
267
|
+
<span class="summary_desc"><div class='inline'>
|
268
|
+
<p>Alias to Spec.command.</p>
|
269
|
+
</div></span>
|
270
|
+
|
271
|
+
</li>
|
272
|
+
|
273
|
+
|
274
|
+
<li class="public ">
|
275
|
+
<span class="summary_signature">
|
276
|
+
|
277
|
+
<a href="#program-class_method" title="program (class method)">+ (Object) <strong>program</strong>(author, year, config = nil) { ... }</a>
|
278
|
+
|
279
|
+
|
280
|
+
|
281
|
+
</span>
|
282
|
+
|
283
|
+
|
284
|
+
|
285
|
+
|
286
|
+
|
287
|
+
|
288
|
+
|
289
|
+
|
290
|
+
|
291
|
+
<span class="summary_desc"><div class='inline'>
|
292
|
+
<p>Create specification for program with subcmds.</p>
|
293
|
+
</div></span>
|
294
|
+
|
295
|
+
</li>
|
296
|
+
|
297
|
+
|
298
|
+
<li class="public ">
|
299
|
+
<span class="summary_signature">
|
300
|
+
|
301
|
+
<a href="#setArgv-class_method" title="setArgv (class method)">+ (Object) <strong>setArgv</strong>(newArgv) </a>
|
302
|
+
|
303
|
+
|
304
|
+
|
305
|
+
</span>
|
306
|
+
|
307
|
+
|
308
|
+
|
309
|
+
|
310
|
+
|
311
|
+
|
312
|
+
|
313
|
+
|
314
|
+
|
315
|
+
<span class="summary_desc"><div class='inline'>
|
316
|
+
<p>Set command line options source, i.e.</p>
|
317
|
+
</div></span>
|
318
|
+
|
319
|
+
</li>
|
320
|
+
|
321
|
+
|
322
|
+
<li class="public ">
|
323
|
+
<span class="summary_signature">
|
324
|
+
|
325
|
+
<a href="#setUsageFooter-class_method" title="setUsageFooter (class method)">+ (Object) <strong>setUsageFooter</strong>(str) </a>
|
326
|
+
|
327
|
+
|
328
|
+
|
329
|
+
</span>
|
330
|
+
|
331
|
+
|
332
|
+
|
333
|
+
|
334
|
+
|
335
|
+
|
336
|
+
|
337
|
+
|
338
|
+
|
339
|
+
<span class="summary_desc"><div class='inline'>
|
340
|
+
<p>Set optional footer for "usage".</p>
|
341
|
+
</div></span>
|
342
|
+
|
343
|
+
</li>
|
344
|
+
|
345
|
+
|
346
|
+
<li class="public ">
|
347
|
+
<span class="summary_signature">
|
348
|
+
|
349
|
+
<a href="#setUsageHeader-class_method" title="setUsageHeader (class method)">+ (Object) <strong>setUsageHeader</strong>(str) </a>
|
350
|
+
|
351
|
+
|
352
|
+
|
353
|
+
</span>
|
354
|
+
|
355
|
+
|
356
|
+
|
357
|
+
|
358
|
+
|
359
|
+
|
360
|
+
|
361
|
+
|
362
|
+
|
363
|
+
<span class="summary_desc"><div class='inline'>
|
364
|
+
<p>Set optional header for "usage".</p>
|
365
|
+
</div></span>
|
366
|
+
|
367
|
+
</li>
|
368
|
+
|
369
|
+
|
370
|
+
<li class="public ">
|
371
|
+
<span class="summary_signature">
|
372
|
+
|
373
|
+
<a href="#specify-class_method" title="specify (class method)">+ (Object) <strong>specify</strong>(table) </a>
|
374
|
+
|
375
|
+
|
376
|
+
|
377
|
+
</span>
|
378
|
+
|
379
|
+
|
380
|
+
|
381
|
+
|
382
|
+
|
383
|
+
|
384
|
+
|
385
|
+
|
386
|
+
|
387
|
+
<span class="summary_desc"><div class='inline'>
|
388
|
+
<p>Specify and check options spec.</p>
|
389
|
+
</div></span>
|
390
|
+
|
391
|
+
</li>
|
392
|
+
|
393
|
+
|
394
|
+
<li class="public ">
|
395
|
+
<span class="summary_signature">
|
396
|
+
|
397
|
+
<a href="#usage-class_method" title="usage (class method)">+ (Object) <strong>usage</strong> </a>
|
398
|
+
|
399
|
+
|
400
|
+
|
401
|
+
</span>
|
402
|
+
|
403
|
+
|
404
|
+
|
405
|
+
|
406
|
+
|
407
|
+
|
408
|
+
|
409
|
+
|
410
|
+
|
411
|
+
<span class="summary_desc"><div class='inline'>
|
412
|
+
<p>Display program usage (and optionally exit).</p>
|
413
|
+
</div></span>
|
414
|
+
|
415
|
+
</li>
|
416
|
+
|
417
|
+
|
418
|
+
</ul>
|
419
|
+
|
420
|
+
<h2>
|
421
|
+
Instance Method Summary
|
422
|
+
<small>(<a href="#" class="summary_toggle">collapse</a>)</small>
|
423
|
+
</h2>
|
424
|
+
|
425
|
+
<ul class="summary">
|
426
|
+
|
427
|
+
<li class="public ">
|
428
|
+
<span class="summary_signature">
|
429
|
+
|
430
|
+
<a href="#checkRule-instance_method" title="#checkRule (instance method)">- (Object) <strong>checkRule</strong>(opt = nil, &rule) </a>
|
431
|
+
|
432
|
+
|
433
|
+
|
434
|
+
</span>
|
435
|
+
|
436
|
+
|
437
|
+
|
438
|
+
|
439
|
+
|
440
|
+
|
441
|
+
|
442
|
+
|
443
|
+
|
444
|
+
<span class="summary_desc"><div class='inline'>
|
445
|
+
<p>Check option combination rules.</p>
|
446
|
+
</div></span>
|
447
|
+
|
448
|
+
</li>
|
449
|
+
|
450
|
+
|
451
|
+
<li class="public ">
|
452
|
+
<span class="summary_signature">
|
453
|
+
|
454
|
+
<a href="#initialize-instance_method" title="#initialize (instance method)">- (Spec) <strong>initialize</strong>(author, year) </a>
|
455
|
+
|
456
|
+
|
457
|
+
|
458
|
+
</span>
|
459
|
+
|
460
|
+
|
461
|
+
<span class="note title constructor">constructor</span>
|
462
|
+
|
463
|
+
|
464
|
+
|
465
|
+
|
466
|
+
|
467
|
+
|
468
|
+
|
469
|
+
|
470
|
+
<span class="summary_desc"><div class='inline'>
|
471
|
+
<p>Create Spec object that can handle subcmd definitions.</p>
|
472
|
+
</div></span>
|
473
|
+
|
474
|
+
</li>
|
475
|
+
|
476
|
+
|
477
|
+
<li class="public ">
|
478
|
+
<span class="summary_signature">
|
479
|
+
|
480
|
+
<a href="#subcmd-instance_method" title="#subcmd (instance method)">- (Object) <strong>subcmd</strong>(cmd, defs, config = {}) </a>
|
481
|
+
|
482
|
+
|
483
|
+
|
484
|
+
</span>
|
485
|
+
|
486
|
+
|
487
|
+
|
488
|
+
|
489
|
+
|
490
|
+
|
491
|
+
|
492
|
+
|
493
|
+
|
494
|
+
<span class="summary_desc"><div class='inline'>
|
495
|
+
<p>Define subcommand options.</p>
|
496
|
+
</div></span>
|
497
|
+
|
498
|
+
</li>
|
499
|
+
|
500
|
+
|
501
|
+
</ul>
|
502
|
+
|
503
|
+
|
504
|
+
|
505
|
+
|
506
|
+
|
507
|
+
|
508
|
+
|
509
|
+
|
510
|
+
|
511
|
+
|
512
|
+
|
513
|
+
<h3 class="inherited">Methods inherited from <span class='object_link'><a href="ComoCommon.html" title="Como::ComoCommon (class)">ComoCommon</a></span></h3>
|
514
|
+
<p class="inherited"><span class='object_link'><a href="ComoCommon.html#getIo-class_method" title="Como::ComoCommon.getIo (method)">getIo</a></span>, <span class='object_link'><a href="ComoCommon.html#setIo-class_method" title="Como::ComoCommon.setIo (method)">setIo</a></span></p>
|
515
|
+
<div id="constructor_details" class="method_details_list">
|
516
|
+
<h2>Constructor Details</h2>
|
517
|
+
|
518
|
+
<div class="method_details first">
|
519
|
+
<h3 class="signature first" id="initialize-instance_method">
|
520
|
+
|
521
|
+
- (<tt><span class='object_link'><a href="" title="Como::Spec (class)">Spec</a></span></tt>) <strong>initialize</strong>(author, year)
|
522
|
+
|
523
|
+
|
524
|
+
|
525
|
+
|
526
|
+
|
527
|
+
</h3><div class="docstring">
|
528
|
+
<div class="discussion">
|
529
|
+
|
530
|
+
<p>Create Spec object that can handle subcmd definitions.</p>
|
531
|
+
|
532
|
+
|
533
|
+
</div>
|
534
|
+
</div>
|
535
|
+
<div class="tags">
|
536
|
+
<p class="tag_title">Parameters:</p>
|
537
|
+
<ul class="param">
|
538
|
+
|
539
|
+
<li>
|
540
|
+
|
541
|
+
<span class='name'>author</span>
|
542
|
+
|
543
|
+
|
544
|
+
<span class='type'>(<tt>String</tt>)</span>
|
545
|
+
|
546
|
+
|
547
|
+
|
548
|
+
—
|
549
|
+
<div class='inline'>
|
550
|
+
<p>Program author.</p>
|
551
|
+
</div>
|
552
|
+
|
553
|
+
</li>
|
554
|
+
|
555
|
+
<li>
|
556
|
+
|
557
|
+
<span class='name'>year</span>
|
558
|
+
|
559
|
+
|
560
|
+
<span class='type'>(<tt>String</tt>)</span>
|
561
|
+
|
562
|
+
|
563
|
+
|
564
|
+
—
|
565
|
+
<div class='inline'>
|
566
|
+
<p>Year (or dates) for program.</p>
|
567
|
+
</div>
|
568
|
+
|
569
|
+
</li>
|
570
|
+
|
571
|
+
</ul>
|
572
|
+
|
573
|
+
|
574
|
+
</div><table class="source_code">
|
575
|
+
<tr>
|
576
|
+
<td>
|
577
|
+
<pre class="lines">
|
578
|
+
|
579
|
+
|
580
|
+
491
|
581
|
+
492
|
582
|
+
493
|
583
|
+
494
|
584
|
+
495
|
585
|
+
496
|
586
|
+
497</pre>
|
587
|
+
</td>
|
588
|
+
<td>
|
589
|
+
<pre class="code"><span class="info file"># File 'lib/como.rb', line 491</span>
|
590
|
+
|
591
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span> <span class='id identifier rubyid_author'>author</span><span class='comma'>,</span> <span class='id identifier rubyid_year'>year</span> <span class='rparen'>)</span>
|
592
|
+
<span class='ivar'>@author</span> <span class='op'>=</span> <span class='id identifier rubyid_author'>author</span>
|
593
|
+
<span class='ivar'>@year</span> <span class='op'>=</span> <span class='id identifier rubyid_year'>year</span>
|
594
|
+
|
595
|
+
<span class='const'>Spec</span><span class='period'>.</span><span class='const'>ArgCheck</span><span class='lparen'>(</span> <span class='id identifier rubyid_author'>author</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span> <span class='op'>==</span> <span class='const'>String</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Author name is not a String</span><span class='tstring_end'>"</span></span> <span class='rparen'>)</span>
|
596
|
+
<span class='const'>Spec</span><span class='period'>.</span><span class='const'>ArgCheck</span><span class='lparen'>(</span> <span class='id identifier rubyid_year'>year</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span> <span class='op'>==</span> <span class='const'>String</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Year is not a String</span><span class='tstring_end'>"</span></span> <span class='rparen'>)</span>
|
597
|
+
<span class='kw'>end</span></pre>
|
598
|
+
</td>
|
599
|
+
</tr>
|
600
|
+
</table>
|
601
|
+
</div>
|
602
|
+
|
603
|
+
</div>
|
604
|
+
|
605
|
+
|
606
|
+
<div id="class_method_details" class="method_details_list">
|
607
|
+
<h2>Class Method Details</h2>
|
608
|
+
|
609
|
+
|
610
|
+
<div class="method_details first">
|
611
|
+
<h3 class="signature first" id="checkAlso-class_method">
|
612
|
+
|
613
|
+
+ (<tt>Object</tt>) <strong>checkAlso</strong>(opt, error, &check)
|
614
|
+
|
615
|
+
|
616
|
+
|
617
|
+
|
618
|
+
|
619
|
+
</h3><div class="docstring">
|
620
|
+
<div class="discussion">
|
621
|
+
|
622
|
+
<p>Additional option check.</p>
|
623
|
+
|
624
|
+
|
625
|
+
</div>
|
626
|
+
</div>
|
627
|
+
<div class="tags">
|
628
|
+
<p class="tag_title">Parameters:</p>
|
629
|
+
<ul class="param">
|
630
|
+
|
631
|
+
<li>
|
632
|
+
|
633
|
+
<span class='name'>opt</span>
|
634
|
+
|
635
|
+
|
636
|
+
<span class='type'>(<tt>String</tt>)</span>
|
637
|
+
|
638
|
+
|
639
|
+
|
640
|
+
—
|
641
|
+
<div class='inline'>
|
642
|
+
<p>Option name.</p>
|
643
|
+
</div>
|
644
|
+
|
645
|
+
</li>
|
646
|
+
|
647
|
+
<li>
|
648
|
+
|
649
|
+
<span class='name'>error</span>
|
650
|
+
|
651
|
+
|
652
|
+
<span class='type'>(<tt>String</tt>)</span>
|
653
|
+
|
654
|
+
|
655
|
+
|
656
|
+
—
|
657
|
+
<div class='inline'>
|
658
|
+
<p>Error string for false return values (from check).</p>
|
659
|
+
</div>
|
660
|
+
|
661
|
+
</li>
|
662
|
+
|
663
|
+
<li>
|
664
|
+
|
665
|
+
<span class='name'>check</span>
|
666
|
+
|
667
|
+
|
668
|
+
<span class='type'>(<tt>Proc</tt>)</span>
|
669
|
+
|
670
|
+
|
671
|
+
|
672
|
+
—
|
673
|
+
<div class='inline'>
|
674
|
+
<p>Checker proc run for the option. Either</p>
|
675
|
+
</div>
|
676
|
+
|
677
|
+
</li>
|
678
|
+
|
679
|
+
</ul>
|
680
|
+
|
681
|
+
<p class="tag_title">Returns:</p>
|
682
|
+
<ul class="return">
|
683
|
+
|
684
|
+
<li>
|
685
|
+
|
686
|
+
|
687
|
+
<span class='type'></span>
|
688
|
+
|
689
|
+
|
690
|
+
|
691
|
+
|
692
|
+
<div class='inline'>
|
693
|
+
<p>false or generate an exception when errors found.</p>
|
694
|
+
</div>
|
695
|
+
|
696
|
+
</li>
|
697
|
+
|
698
|
+
</ul>
|
699
|
+
|
700
|
+
</div><table class="source_code">
|
701
|
+
<tr>
|
702
|
+
<td>
|
703
|
+
<pre class="lines">
|
704
|
+
|
705
|
+
|
706
|
+
671
|
707
|
+
672
|
708
|
+
673</pre>
|
709
|
+
</td>
|
710
|
+
<td>
|
711
|
+
<pre class="code"><span class="info file"># File 'lib/como.rb', line 671</span>
|
712
|
+
|
713
|
+
<span class='kw'>def</span> <span class='const'>Spec</span><span class='period'>.</span><span class='id identifier rubyid_checkAlso'>checkAlso</span><span class='lparen'>(</span> <span class='id identifier rubyid_opt'>opt</span><span class='comma'>,</span> <span class='id identifier rubyid_error'>error</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_check'>check</span> <span class='rparen'>)</span>
|
714
|
+
<span class='const'>Opt</span><span class='period'>.</span><span class='id identifier rubyid_main'>main</span><span class='period'>.</span><span class='id identifier rubyid_checkAlso'>checkAlso</span><span class='lparen'>(</span> <span class='id identifier rubyid_opt'>opt</span><span class='comma'>,</span> <span class='id identifier rubyid_error'>error</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_check'>check</span> <span class='rparen'>)</span>
|
715
|
+
<span class='kw'>end</span></pre>
|
716
|
+
</td>
|
717
|
+
</tr>
|
718
|
+
</table>
|
719
|
+
</div>
|
720
|
+
|
721
|
+
<div class="method_details ">
|
722
|
+
<h3 class="signature " id="checkRule-class_method">
|
723
|
+
|
724
|
+
+ (<tt>Object</tt>) <strong>checkRule</strong>(opt = nil, &rule)
|
725
|
+
|
726
|
+
|
727
|
+
|
728
|
+
|
729
|
+
|
730
|
+
</h3><div class="docstring">
|
731
|
+
<div class="discussion">
|
732
|
+
|
733
|
+
<p>Check option combination rules.</p>
|
734
|
+
|
735
|
+
|
736
|
+
</div>
|
737
|
+
</div>
|
738
|
+
<div class="tags">
|
739
|
+
<p class="tag_title">Parameters:</p>
|
740
|
+
<ul class="param">
|
741
|
+
|
742
|
+
<li>
|
743
|
+
|
744
|
+
<span class='name'>opt</span>
|
745
|
+
|
746
|
+
|
747
|
+
<span class='type'>(<tt>String</tt>)</span>
|
748
|
+
|
749
|
+
|
750
|
+
<em class="default">(defaults to: <tt>nil</tt>)</em>
|
751
|
+
|
752
|
+
|
753
|
+
—
|
754
|
+
<div class='inline'>
|
755
|
+
<p>Opt name to which rules are set. If not given, Opt.current is used.</p>
|
756
|
+
</div>
|
757
|
+
|
758
|
+
</li>
|
759
|
+
|
760
|
+
<li>
|
761
|
+
|
762
|
+
<span class='name'>rule</span>
|
763
|
+
|
764
|
+
|
765
|
+
<span class='type'>(<tt>Proc</tt>)</span>
|
766
|
+
|
767
|
+
|
768
|
+
|
769
|
+
—
|
770
|
+
<div class='inline'>
|
771
|
+
<p>Rules to check.</p>
|
772
|
+
</div>
|
773
|
+
|
774
|
+
</li>
|
775
|
+
|
776
|
+
</ul>
|
777
|
+
|
778
|
+
|
779
|
+
</div><table class="source_code">
|
780
|
+
<tr>
|
781
|
+
<td>
|
782
|
+
<pre class="lines">
|
783
|
+
|
784
|
+
|
785
|
+
641
|
786
|
+
642
|
787
|
+
643
|
788
|
+
644
|
789
|
+
645
|
790
|
+
646
|
791
|
+
647
|
792
|
+
648
|
793
|
+
649</pre>
|
794
|
+
</td>
|
795
|
+
<td>
|
796
|
+
<pre class="code"><span class="info file"># File 'lib/como.rb', line 641</span>
|
797
|
+
|
798
|
+
<span class='kw'>def</span> <span class='const'>Spec</span><span class='period'>.</span><span class='id identifier rubyid_checkRule'>checkRule</span><span class='lparen'>(</span> <span class='id identifier rubyid_opt'>opt</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_rule'>rule</span> <span class='rparen'>)</span>
|
799
|
+
<span class='kw'>if</span> <span class='id identifier rubyid_opt'>opt</span>
|
800
|
+
<span class='id identifier rubyid_opt'>opt</span> <span class='op'>=</span> <span class='const'>Opt</span><span class='lbracket'>[</span> <span class='id identifier rubyid_opt'>opt</span> <span class='rbracket'>]</span>
|
801
|
+
<span class='kw'>else</span>
|
802
|
+
<span class='id identifier rubyid_opt'>opt</span> <span class='op'>=</span> <span class='const'>Opt</span><span class='period'>.</span><span class='id identifier rubyid_current'>current</span>
|
803
|
+
<span class='kw'>end</span>
|
804
|
+
<span class='id identifier rubyid_opt'>opt</span><span class='period'>.</span><span class='id identifier rubyid_setRuleCheck'>setRuleCheck</span><span class='lparen'>(</span> <span class='op'>&</span><span class='id identifier rubyid_rule'>rule</span> <span class='rparen'>)</span>
|
805
|
+
<span class='id identifier rubyid_opt'>opt</span><span class='period'>.</span><span class='id identifier rubyid_checkRule'>checkRule</span>
|
806
|
+
<span class='kw'>end</span></pre>
|
807
|
+
</td>
|
808
|
+
</tr>
|
809
|
+
</table>
|
810
|
+
</div>
|
811
|
+
|
812
|
+
<div class="method_details ">
|
813
|
+
<h3 class="signature " id="command-class_method">
|
814
|
+
|
815
|
+
+ (<tt>Object</tt>) <strong>command</strong>(prog, author, year, defs, config = {})
|
816
|
+
|
817
|
+
|
818
|
+
|
819
|
+
|
820
|
+
|
821
|
+
</h3><div class="docstring">
|
822
|
+
<div class="discussion">
|
823
|
+
|
824
|
+
<p>The primary entry point to Como. Defines the command switches and parses
|
825
|
+
the command line. Performs "usage" display if "help" was selected.</p>
|
826
|
+
|
827
|
+
|
828
|
+
</div>
|
829
|
+
</div>
|
830
|
+
<div class="tags">
|
831
|
+
<p class="tag_title">Parameters:</p>
|
832
|
+
<ul class="param">
|
833
|
+
|
834
|
+
<li>
|
835
|
+
|
836
|
+
<span class='name'>prog</span>
|
837
|
+
|
838
|
+
|
839
|
+
<span class='type'>(<tt>String</tt>)</span>
|
840
|
+
|
841
|
+
|
842
|
+
|
843
|
+
—
|
844
|
+
<div class='inline'>
|
845
|
+
<p>Program (i.e. command) name.</p>
|
846
|
+
</div>
|
847
|
+
|
848
|
+
</li>
|
849
|
+
|
850
|
+
<li>
|
851
|
+
|
852
|
+
<span class='name'>author</span>
|
853
|
+
|
854
|
+
|
855
|
+
<span class='type'>(<tt>String</tt>)</span>
|
856
|
+
|
857
|
+
|
858
|
+
|
859
|
+
—
|
860
|
+
<div class='inline'>
|
861
|
+
<p>Author of the program.</p>
|
862
|
+
</div>
|
863
|
+
|
864
|
+
</li>
|
865
|
+
|
866
|
+
<li>
|
867
|
+
|
868
|
+
<span class='name'>year</span>
|
869
|
+
|
870
|
+
|
871
|
+
<span class='type'>(<tt>String</tt>)</span>
|
872
|
+
|
873
|
+
|
874
|
+
|
875
|
+
—
|
876
|
+
<div class='inline'>
|
877
|
+
<p>Year (or dates) for program.</p>
|
878
|
+
</div>
|
879
|
+
|
880
|
+
</li>
|
881
|
+
|
882
|
+
<li>
|
883
|
+
|
884
|
+
<span class='name'>defs</span>
|
885
|
+
|
886
|
+
|
887
|
+
<span class='type'>(<tt>Array<Array></tt>)</span>
|
888
|
+
|
889
|
+
|
890
|
+
|
891
|
+
—
|
892
|
+
<div class='inline'>
|
893
|
+
<p>Option definitions.</p>
|
894
|
+
</div>
|
895
|
+
|
896
|
+
</li>
|
897
|
+
|
898
|
+
<li>
|
899
|
+
|
900
|
+
<span class='name'>config</span>
|
901
|
+
|
902
|
+
|
903
|
+
<span class='type'>(<tt>Hash</tt>)</span>
|
904
|
+
|
905
|
+
|
906
|
+
<em class="default">(defaults to: <tt>{}</tt>)</em>
|
907
|
+
|
908
|
+
|
909
|
+
—
|
910
|
+
<div class='inline'>
|
911
|
+
<p>Option definition’s behavioral config (changes @@config defaults).</p>
|
912
|
+
</div>
|
913
|
+
|
914
|
+
</li>
|
915
|
+
|
916
|
+
</ul>
|
917
|
+
|
918
|
+
|
919
|
+
</div><table class="source_code">
|
920
|
+
<tr>
|
921
|
+
<td>
|
922
|
+
<pre class="lines">
|
923
|
+
|
924
|
+
|
925
|
+
468
|
926
|
+
469
|
927
|
+
470
|
928
|
+
471</pre>
|
929
|
+
</td>
|
930
|
+
<td>
|
931
|
+
<pre class="code"><span class="info file"># File 'lib/como.rb', line 468</span>
|
932
|
+
|
933
|
+
<span class='kw'>def</span> <span class='const'>Spec</span><span class='period'>.</span><span class='id identifier rubyid_command'>command</span><span class='lparen'>(</span> <span class='id identifier rubyid_prog'>prog</span><span class='comma'>,</span> <span class='id identifier rubyid_author'>author</span><span class='comma'>,</span> <span class='id identifier rubyid_year'>year</span><span class='comma'>,</span> <span class='id identifier rubyid_defs'>defs</span><span class='comma'>,</span> <span class='id identifier rubyid_config'>config</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span> <span class='rparen'>)</span>
|
934
|
+
<span class='const'>Spec</span><span class='period'>.</span><span class='id identifier rubyid_defineCheck'>defineCheck</span><span class='lparen'>(</span> <span class='id identifier rubyid_prog'>prog</span><span class='comma'>,</span> <span class='id identifier rubyid_author'>author</span><span class='comma'>,</span> <span class='id identifier rubyid_year'>year</span><span class='comma'>,</span> <span class='id identifier rubyid_defs'>defs</span><span class='comma'>,</span> <span class='id identifier rubyid_config'>config</span> <span class='rparen'>)</span>
|
935
|
+
<span class='const'>Spec</span><span class='period'>.</span><span class='id identifier rubyid_usage'>usage</span> <span class='kw'>if</span> <span class='const'>Opt</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>help</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_given'>given</span>
|
936
|
+
<span class='kw'>end</span></pre>
|
937
|
+
</td>
|
938
|
+
</tr>
|
939
|
+
</table>
|
940
|
+
</div>
|
941
|
+
|
942
|
+
<div class="method_details ">
|
943
|
+
<h3 class="signature " id="defineCheck-class_method">
|
944
|
+
|
945
|
+
+ (<tt>Object</tt>) <strong>defineCheck</strong>(prog, author, year, defs, config = {})
|
946
|
+
|
947
|
+
|
948
|
+
|
949
|
+
|
950
|
+
|
951
|
+
</h3><div class="docstring">
|
952
|
+
<div class="discussion">
|
953
|
+
|
954
|
+
<p>Same as "defineCheckHelp" except without automatic "help" option
|
955
|
+
processing.</p>
|
956
|
+
|
957
|
+
|
958
|
+
</div>
|
959
|
+
</div>
|
960
|
+
<div class="tags">
|
961
|
+
|
962
|
+
|
963
|
+
</div><table class="source_code">
|
964
|
+
<tr>
|
965
|
+
<td>
|
966
|
+
<pre class="lines">
|
967
|
+
|
968
|
+
|
969
|
+
480
|
970
|
+
481
|
971
|
+
482
|
972
|
+
483
|
973
|
+
484</pre>
|
974
|
+
</td>
|
975
|
+
<td>
|
976
|
+
<pre class="code"><span class="info file"># File 'lib/como.rb', line 480</span>
|
977
|
+
|
978
|
+
<span class='kw'>def</span> <span class='const'>Spec</span><span class='period'>.</span><span class='id identifier rubyid_defineCheck'>defineCheck</span><span class='lparen'>(</span> <span class='id identifier rubyid_prog'>prog</span><span class='comma'>,</span> <span class='id identifier rubyid_author'>author</span><span class='comma'>,</span> <span class='id identifier rubyid_year'>year</span><span class='comma'>,</span> <span class='id identifier rubyid_defs'>defs</span><span class='comma'>,</span> <span class='id identifier rubyid_config'>config</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span> <span class='rparen'>)</span>
|
979
|
+
<span class='id identifier rubyid_spec'>spec</span> <span class='op'>=</span> <span class='const'>Spec</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span> <span class='id identifier rubyid_author'>author</span><span class='comma'>,</span> <span class='id identifier rubyid_year'>year</span> <span class='rparen'>)</span>
|
980
|
+
<span class='id identifier rubyid_spec'>spec</span><span class='period'>.</span><span class='id identifier rubyid_subcmd'>subcmd</span><span class='lparen'>(</span> <span class='id identifier rubyid_prog'>prog</span><span class='comma'>,</span> <span class='id identifier rubyid_defs'>defs</span><span class='comma'>,</span> <span class='id identifier rubyid_config'>config</span> <span class='rparen'>)</span>
|
981
|
+
<span class='const'>Opt</span><span class='period'>.</span><span class='id identifier rubyid_main'>main</span><span class='period'>.</span><span class='id identifier rubyid_check'>check</span><span class='lparen'>(</span> <span class='const'>ArgsParseState</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span> <span class='cvar'>@@argv</span> <span class='rparen'>)</span> <span class='rparen'>)</span>
|
982
|
+
<span class='kw'>end</span></pre>
|
983
|
+
</td>
|
984
|
+
</tr>
|
985
|
+
</table>
|
986
|
+
</div>
|
987
|
+
|
988
|
+
<div class="method_details ">
|
989
|
+
<h3 class="signature " id="defineCheckHelp-class_method">
|
990
|
+
|
991
|
+
+ (<tt>Object</tt>) <strong>defineCheckHelp</strong>(prog, author, year, defs, config = {})
|
992
|
+
|
993
|
+
|
994
|
+
|
995
|
+
|
996
|
+
|
997
|
+
</h3><div class="docstring">
|
998
|
+
<div class="discussion">
|
999
|
+
|
1000
|
+
<p>Alias to Spec.command.</p>
|
1001
|
+
|
1002
|
+
|
1003
|
+
</div>
|
1004
|
+
</div>
|
1005
|
+
<div class="tags">
|
1006
|
+
|
1007
|
+
|
1008
|
+
</div><table class="source_code">
|
1009
|
+
<tr>
|
1010
|
+
<td>
|
1011
|
+
<pre class="lines">
|
1012
|
+
|
1013
|
+
|
1014
|
+
474
|
1015
|
+
475
|
1016
|
+
476</pre>
|
1017
|
+
</td>
|
1018
|
+
<td>
|
1019
|
+
<pre class="code"><span class="info file"># File 'lib/como.rb', line 474</span>
|
1020
|
+
|
1021
|
+
<span class='kw'>def</span> <span class='const'>Spec</span><span class='period'>.</span><span class='id identifier rubyid_defineCheckHelp'>defineCheckHelp</span><span class='lparen'>(</span> <span class='id identifier rubyid_prog'>prog</span><span class='comma'>,</span> <span class='id identifier rubyid_author'>author</span><span class='comma'>,</span> <span class='id identifier rubyid_year'>year</span><span class='comma'>,</span> <span class='id identifier rubyid_defs'>defs</span><span class='comma'>,</span> <span class='id identifier rubyid_config'>config</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span> <span class='rparen'>)</span>
|
1022
|
+
<span class='const'>Spec</span><span class='period'>.</span><span class='id identifier rubyid_command'>command</span><span class='lparen'>(</span> <span class='id identifier rubyid_prog'>prog</span><span class='comma'>,</span> <span class='id identifier rubyid_author'>author</span><span class='comma'>,</span> <span class='id identifier rubyid_year'>year</span><span class='comma'>,</span> <span class='id identifier rubyid_defs'>defs</span><span class='comma'>,</span> <span class='id identifier rubyid_config'>config</span> <span class='rparen'>)</span>
|
1023
|
+
<span class='kw'>end</span></pre>
|
1024
|
+
</td>
|
1025
|
+
</tr>
|
1026
|
+
</table>
|
1027
|
+
</div>
|
1028
|
+
|
1029
|
+
<div class="method_details ">
|
1030
|
+
<h3 class="signature " id="program-class_method">
|
1031
|
+
|
1032
|
+
+ (<tt>Object</tt>) <strong>program</strong>(author, year, config = nil) { ... }
|
1033
|
+
|
1034
|
+
|
1035
|
+
|
1036
|
+
|
1037
|
+
|
1038
|
+
</h3><div class="docstring">
|
1039
|
+
<div class="discussion">
|
1040
|
+
|
1041
|
+
<p>Create specification for program with subcmds.</p>
|
1042
|
+
|
1043
|
+
|
1044
|
+
</div>
|
1045
|
+
</div>
|
1046
|
+
<div class="tags">
|
1047
|
+
<p class="tag_title">Parameters:</p>
|
1048
|
+
<ul class="param">
|
1049
|
+
|
1050
|
+
<li>
|
1051
|
+
|
1052
|
+
<span class='name'>author</span>
|
1053
|
+
|
1054
|
+
|
1055
|
+
<span class='type'>(<tt>String</tt>)</span>
|
1056
|
+
|
1057
|
+
|
1058
|
+
|
1059
|
+
—
|
1060
|
+
<div class='inline'>
|
1061
|
+
<p>Program author.</p>
|
1062
|
+
</div>
|
1063
|
+
|
1064
|
+
</li>
|
1065
|
+
|
1066
|
+
<li>
|
1067
|
+
|
1068
|
+
<span class='name'>year</span>
|
1069
|
+
|
1070
|
+
|
1071
|
+
<span class='type'>(<tt>String</tt>)</span>
|
1072
|
+
|
1073
|
+
|
1074
|
+
|
1075
|
+
—
|
1076
|
+
<div class='inline'>
|
1077
|
+
<p>Year (or dates) for program.</p>
|
1078
|
+
</div>
|
1079
|
+
|
1080
|
+
</li>
|
1081
|
+
|
1082
|
+
</ul>
|
1083
|
+
|
1084
|
+
<p class="tag_title">Yields:</p>
|
1085
|
+
<ul class="yield">
|
1086
|
+
|
1087
|
+
<li>
|
1088
|
+
|
1089
|
+
|
1090
|
+
<span class='type'></span>
|
1091
|
+
|
1092
|
+
|
1093
|
+
|
1094
|
+
|
1095
|
+
<div class='inline'><dl class="rdoc-list"><dt></dt>
|
1096
|
+
<dd>
|
1097
|
+
<p>Subcmd definitions.</p>
|
1098
|
+
</dd></dl>
|
1099
|
+
</div>
|
1100
|
+
|
1101
|
+
</li>
|
1102
|
+
|
1103
|
+
</ul>
|
1104
|
+
|
1105
|
+
</div><table class="source_code">
|
1106
|
+
<tr>
|
1107
|
+
<td>
|
1108
|
+
<pre class="lines">
|
1109
|
+
|
1110
|
+
|
1111
|
+
448
|
1112
|
+
449
|
1113
|
+
450
|
1114
|
+
451
|
1115
|
+
452
|
1116
|
+
453
|
1117
|
+
454
|
1118
|
+
455</pre>
|
1119
|
+
</td>
|
1120
|
+
<td>
|
1121
|
+
<pre class="code"><span class="info file"># File 'lib/como.rb', line 448</span>
|
1122
|
+
|
1123
|
+
<span class='kw'>def</span> <span class='const'>Spec</span><span class='period'>.</span><span class='id identifier rubyid_program'>program</span><span class='lparen'>(</span> <span class='id identifier rubyid_author'>author</span><span class='comma'>,</span> <span class='id identifier rubyid_year'>year</span><span class='comma'>,</span> <span class='id identifier rubyid_config'>config</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_defs'>defs</span> <span class='rparen'>)</span>
|
1124
|
+
<span class='kw'>if</span> <span class='id identifier rubyid_config'>config</span>
|
1125
|
+
<span class='const'>Opt</span><span class='period'>.</span><span class='id identifier rubyid_configOverlay'>configOverlay</span><span class='lparen'>(</span> <span class='id identifier rubyid_config'>config</span> <span class='rparen'>)</span>
|
1126
|
+
<span class='kw'>end</span>
|
1127
|
+
<span class='id identifier rubyid_spec'>spec</span> <span class='op'>=</span> <span class='const'>Spec</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span> <span class='id identifier rubyid_author'>author</span><span class='comma'>,</span> <span class='id identifier rubyid_year'>year</span> <span class='rparen'>)</span>
|
1128
|
+
<span class='id identifier rubyid_spec'>spec</span><span class='period'>.</span><span class='id identifier rubyid_instance_eval'>instance_eval</span><span class='lparen'>(</span> <span class='op'>&</span><span class='id identifier rubyid_defs'>defs</span> <span class='rparen'>)</span>
|
1129
|
+
<span class='const'>Opt</span><span class='period'>.</span><span class='id identifier rubyid_main'>main</span><span class='period'>.</span><span class='id identifier rubyid_check'>check</span><span class='lparen'>(</span> <span class='const'>ArgsParseState</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span> <span class='cvar'>@@argv</span> <span class='rparen'>)</span> <span class='rparen'>)</span>
|
1130
|
+
<span class='kw'>end</span></pre>
|
1131
|
+
</td>
|
1132
|
+
</tr>
|
1133
|
+
</table>
|
1134
|
+
</div>
|
1135
|
+
|
1136
|
+
<div class="method_details ">
|
1137
|
+
<h3 class="signature " id="setArgv-class_method">
|
1138
|
+
|
1139
|
+
+ (<tt>Object</tt>) <strong>setArgv</strong>(newArgv)
|
1140
|
+
|
1141
|
+
|
1142
|
+
|
1143
|
+
|
1144
|
+
|
1145
|
+
</h3><div class="docstring">
|
1146
|
+
<div class="discussion">
|
1147
|
+
|
1148
|
+
<p>Set command line options source, i.e. @@argv (default: ARGV).</p>
|
1149
|
+
|
1150
|
+
|
1151
|
+
</div>
|
1152
|
+
</div>
|
1153
|
+
<div class="tags">
|
1154
|
+
|
1155
|
+
|
1156
|
+
</div><table class="source_code">
|
1157
|
+
<tr>
|
1158
|
+
<td>
|
1159
|
+
<pre class="lines">
|
1160
|
+
|
1161
|
+
|
1162
|
+
615
|
1163
|
+
616
|
1164
|
+
617</pre>
|
1165
|
+
</td>
|
1166
|
+
<td>
|
1167
|
+
<pre class="code"><span class="info file"># File 'lib/como.rb', line 615</span>
|
1168
|
+
|
1169
|
+
<span class='kw'>def</span> <span class='const'>Spec</span><span class='period'>.</span><span class='id identifier rubyid_setArgv'>setArgv</span><span class='lparen'>(</span> <span class='id identifier rubyid_newArgv'>newArgv</span> <span class='rparen'>)</span>
|
1170
|
+
<span class='cvar'>@@argv</span> <span class='op'>=</span> <span class='id identifier rubyid_newArgv'>newArgv</span>
|
1171
|
+
<span class='kw'>end</span></pre>
|
1172
|
+
</td>
|
1173
|
+
</tr>
|
1174
|
+
</table>
|
1175
|
+
</div>
|
1176
|
+
|
1177
|
+
<div class="method_details ">
|
1178
|
+
<h3 class="signature " id="setUsageFooter-class_method">
|
1179
|
+
|
1180
|
+
+ (<tt>Object</tt>) <strong>setUsageFooter</strong>(str)
|
1181
|
+
|
1182
|
+
|
1183
|
+
|
1184
|
+
|
1185
|
+
|
1186
|
+
</h3><div class="docstring">
|
1187
|
+
<div class="discussion">
|
1188
|
+
|
1189
|
+
<p>Set optional footer for "usage".</p>
|
1190
|
+
|
1191
|
+
|
1192
|
+
</div>
|
1193
|
+
</div>
|
1194
|
+
<div class="tags">
|
1195
|
+
|
1196
|
+
|
1197
|
+
</div><table class="source_code">
|
1198
|
+
<tr>
|
1199
|
+
<td>
|
1200
|
+
<pre class="lines">
|
1201
|
+
|
1202
|
+
|
1203
|
+
631
|
1204
|
+
632
|
1205
|
+
633</pre>
|
1206
|
+
</td>
|
1207
|
+
<td>
|
1208
|
+
<pre class="code"><span class="info file"># File 'lib/como.rb', line 631</span>
|
1209
|
+
|
1210
|
+
<span class='kw'>def</span> <span class='const'>Spec</span><span class='period'>.</span><span class='id identifier rubyid_setUsageFooter'>setUsageFooter</span><span class='lparen'>(</span> <span class='id identifier rubyid_str'>str</span> <span class='rparen'>)</span>
|
1211
|
+
<span class='const'>Opt</span><span class='period'>.</span><span class='id identifier rubyid_main'>main</span><span class='period'>.</span><span class='id identifier rubyid_setUsageFooter'>setUsageFooter</span><span class='lparen'>(</span> <span class='id identifier rubyid_str'>str</span> <span class='rparen'>)</span>
|
1212
|
+
<span class='kw'>end</span></pre>
|
1213
|
+
</td>
|
1214
|
+
</tr>
|
1215
|
+
</table>
|
1216
|
+
</div>
|
1217
|
+
|
1218
|
+
<div class="method_details ">
|
1219
|
+
<h3 class="signature " id="setUsageHeader-class_method">
|
1220
|
+
|
1221
|
+
+ (<tt>Object</tt>) <strong>setUsageHeader</strong>(str)
|
1222
|
+
|
1223
|
+
|
1224
|
+
|
1225
|
+
|
1226
|
+
|
1227
|
+
</h3><div class="docstring">
|
1228
|
+
<div class="discussion">
|
1229
|
+
|
1230
|
+
<p>Set optional header for "usage".</p>
|
1231
|
+
|
1232
|
+
|
1233
|
+
</div>
|
1234
|
+
</div>
|
1235
|
+
<div class="tags">
|
1236
|
+
|
1237
|
+
|
1238
|
+
</div><table class="source_code">
|
1239
|
+
<tr>
|
1240
|
+
<td>
|
1241
|
+
<pre class="lines">
|
1242
|
+
|
1243
|
+
|
1244
|
+
625
|
1245
|
+
626
|
1246
|
+
627</pre>
|
1247
|
+
</td>
|
1248
|
+
<td>
|
1249
|
+
<pre class="code"><span class="info file"># File 'lib/como.rb', line 625</span>
|
1250
|
+
|
1251
|
+
<span class='kw'>def</span> <span class='const'>Spec</span><span class='period'>.</span><span class='id identifier rubyid_setUsageHeader'>setUsageHeader</span><span class='lparen'>(</span> <span class='id identifier rubyid_str'>str</span> <span class='rparen'>)</span>
|
1252
|
+
<span class='const'>Opt</span><span class='period'>.</span><span class='id identifier rubyid_main'>main</span><span class='period'>.</span><span class='id identifier rubyid_setUsageHeader'>setUsageHeader</span><span class='lparen'>(</span> <span class='id identifier rubyid_str'>str</span> <span class='rparen'>)</span>
|
1253
|
+
<span class='kw'>end</span></pre>
|
1254
|
+
</td>
|
1255
|
+
</tr>
|
1256
|
+
</table>
|
1257
|
+
</div>
|
1258
|
+
|
1259
|
+
<div class="method_details ">
|
1260
|
+
<h3 class="signature " id="specify-class_method">
|
1261
|
+
|
1262
|
+
+ (<tt>Object</tt>) <strong>specify</strong>(table)
|
1263
|
+
|
1264
|
+
|
1265
|
+
|
1266
|
+
|
1267
|
+
|
1268
|
+
</h3><div class="docstring">
|
1269
|
+
<div class="discussion">
|
1270
|
+
|
1271
|
+
<p>Specify and check options spec.</p>
|
1272
|
+
|
1273
|
+
|
1274
|
+
</div>
|
1275
|
+
</div>
|
1276
|
+
<div class="tags">
|
1277
|
+
<p class="tag_title">Parameters:</p>
|
1278
|
+
<ul class="param">
|
1279
|
+
|
1280
|
+
<li>
|
1281
|
+
|
1282
|
+
<span class='name'>table</span>
|
1283
|
+
|
1284
|
+
|
1285
|
+
<span class='type'>(<tt>Array<Array></tt>)</span>
|
1286
|
+
|
1287
|
+
|
1288
|
+
|
1289
|
+
—
|
1290
|
+
<div class='inline'>
|
1291
|
+
<p>Option definition table.</p>
|
1292
|
+
</div>
|
1293
|
+
|
1294
|
+
</li>
|
1295
|
+
|
1296
|
+
</ul>
|
1297
|
+
|
1298
|
+
|
1299
|
+
</div><table class="source_code">
|
1300
|
+
<tr>
|
1301
|
+
<td>
|
1302
|
+
<pre class="lines">
|
1303
|
+
|
1304
|
+
|
1305
|
+
541
|
1306
|
+
542
|
1307
|
+
543
|
1308
|
+
544
|
1309
|
+
545
|
1310
|
+
546
|
1311
|
+
547
|
1312
|
+
548
|
1313
|
+
549
|
1314
|
+
550
|
1315
|
+
551
|
1316
|
+
552
|
1317
|
+
553
|
1318
|
+
554
|
1319
|
+
555
|
1320
|
+
556
|
1321
|
+
557
|
1322
|
+
558
|
1323
|
+
559
|
1324
|
+
560
|
1325
|
+
561
|
1326
|
+
562
|
1327
|
+
563
|
1328
|
+
564
|
1329
|
+
565
|
1330
|
+
566
|
1331
|
+
567
|
1332
|
+
568
|
1333
|
+
569
|
1334
|
+
570
|
1335
|
+
571
|
1336
|
+
572
|
1337
|
+
573
|
1338
|
+
574
|
1339
|
+
575
|
1340
|
+
576
|
1341
|
+
577
|
1342
|
+
578
|
1343
|
+
579
|
1344
|
+
580
|
1345
|
+
581
|
1346
|
+
582
|
1347
|
+
583
|
1348
|
+
584
|
1349
|
+
585
|
1350
|
+
586
|
1351
|
+
587
|
1352
|
+
588
|
1353
|
+
589
|
1354
|
+
590
|
1355
|
+
591
|
1356
|
+
592
|
1357
|
+
593
|
1358
|
+
594
|
1359
|
+
595
|
1360
|
+
596
|
1361
|
+
597
|
1362
|
+
598
|
1363
|
+
599
|
1364
|
+
600
|
1365
|
+
601
|
1366
|
+
602
|
1367
|
+
603
|
1368
|
+
604
|
1369
|
+
605
|
1370
|
+
606
|
1371
|
+
607
|
1372
|
+
608</pre>
|
1373
|
+
</td>
|
1374
|
+
<td>
|
1375
|
+
<pre class="code"><span class="info file"># File 'lib/como.rb', line 541</span>
|
1376
|
+
|
1377
|
+
<span class='kw'>def</span> <span class='const'>Spec</span><span class='period'>.</span><span class='id identifier rubyid_specify'>specify</span><span class='lparen'>(</span> <span class='id identifier rubyid_table'>table</span> <span class='rparen'>)</span>
|
1378
|
+
|
1379
|
+
<span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
|
1380
|
+
<span class='id identifier rubyid_subcmds'>subcmds</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
|
1381
|
+
|
1382
|
+
<span class='comment'># Type checks for valid user input.
|
1383
|
+
</span> <span class='const'>Spec</span><span class='period'>.</span><span class='const'>ArgCheck</span><span class='lparen'>(</span> <span class='id identifier rubyid_table'>table</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span> <span class='op'>==</span> <span class='const'>Array</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Option table is not an Array</span><span class='tstring_end'>"</span></span> <span class='rparen'>)</span>
|
1384
|
+
|
1385
|
+
<span class='id identifier rubyid_table'>table</span><span class='period'>.</span><span class='id identifier rubyid_each_index'>each_index</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_idx'>idx</span><span class='op'>|</span>
|
1386
|
+
|
1387
|
+
<span class='id identifier rubyid_i'>i</span> <span class='op'>=</span> <span class='id identifier rubyid_table'>table</span><span class='lbracket'>[</span> <span class='id identifier rubyid_idx'>idx</span> <span class='rbracket'>]</span>
|
1388
|
+
|
1389
|
+
<span class='const'>Spec</span><span class='period'>.</span><span class='const'>ArgCheck</span><span class='lparen'>(</span> <span class='id identifier rubyid_i'>i</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span> <span class='op'>==</span> <span class='const'>Array</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Option table entry is not an Array</span><span class='tstring_end'>"</span></span> <span class='rparen'>)</span>
|
1390
|
+
|
1391
|
+
<span class='kw'>if</span> <span class='id identifier rubyid_i'>i</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span> <span class='op'>==</span> <span class='symbol'>:default</span> <span class='op'>&&</span> <span class='id identifier rubyid_i'>i</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span> <span class='op'>==</span> <span class='int'>2</span>
|
1392
|
+
|
1393
|
+
<span class='comment'># Add 2 dummy entries for :default type if needed.
|
1394
|
+
</span> <span class='id identifier rubyid_table'>table</span><span class='lbracket'>[</span> <span class='id identifier rubyid_idx'>idx</span> <span class='rbracket'>]</span> <span class='op'>=</span> <span class='lbracket'>[</span> <span class='id identifier rubyid_i'>i</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_i'>i</span><span class='lbracket'>[</span><span class='int'>1</span><span class='rbracket'>]</span> <span class='rbracket'>]</span>
|
1395
|
+
|
1396
|
+
<span class='kw'>elsif</span> <span class='id identifier rubyid_i'>i</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span> <span class='op'>==</span> <span class='symbol'>:subcmd</span> <span class='op'>&&</span> <span class='id identifier rubyid_i'>i</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span> <span class='op'>==</span> <span class='int'>3</span>
|
1397
|
+
|
1398
|
+
<span class='comment'># Add 1 dummy entry for :subcmd type if needed.
|
1399
|
+
</span> <span class='id identifier rubyid_table'>table</span><span class='lbracket'>[</span> <span class='id identifier rubyid_idx'>idx</span> <span class='rbracket'>]</span> <span class='op'>=</span> <span class='lbracket'>[</span> <span class='id identifier rubyid_i'>i</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='id identifier rubyid_i'>i</span><span class='lbracket'>[</span><span class='int'>1</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_i'>i</span><span class='lbracket'>[</span><span class='int'>2</span><span class='rbracket'>]</span> <span class='rbracket'>]</span>
|
1400
|
+
<span class='kw'>end</span>
|
1401
|
+
|
1402
|
+
<span class='const'>Spec</span><span class='period'>.</span><span class='const'>ArgCheck</span><span class='lparen'>(</span> <span class='id identifier rubyid_table'>table</span><span class='lbracket'>[</span> <span class='id identifier rubyid_idx'>idx</span> <span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span> <span class='op'>==</span> <span class='int'>4</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Option table entry length not 4</span><span class='tstring_end'>"</span></span> <span class='rparen'>)</span>
|
1403
|
+
<span class='kw'>end</span>
|
1404
|
+
|
1405
|
+
|
1406
|
+
<span class='id identifier rubyid_table'>table</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_e'>e</span><span class='op'>|</span>
|
1407
|
+
|
1408
|
+
<span class='kw'>if</span> <span class='id identifier rubyid_e'>e</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span> <span class='op'>==</span> <span class='symbol'>:subcmd</span>
|
1409
|
+
|
1410
|
+
<span class='id identifier rubyid_subcmds'>subcmds</span><span class='lbracket'>[</span> <span class='id identifier rubyid_e'>e</span><span class='lbracket'>[</span><span class='int'>1</span><span class='rbracket'>]</span> <span class='rbracket'>]</span> <span class='op'>=</span> <span class='const'>Opt</span><span class='period'>.</span><span class='id identifier rubyid_subcmd'>subcmd</span><span class='lparen'>(</span> <span class='id identifier rubyid_e'>e</span><span class='lbracket'>[</span><span class='int'>1</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='id identifier rubyid_e'>e</span><span class='lbracket'>[</span><span class='int'>3</span><span class='rbracket'>]</span> <span class='rparen'>)</span>
|
1411
|
+
|
1412
|
+
<span class='kw'>else</span>
|
1413
|
+
|
1414
|
+
<span class='id identifier rubyid_option'>option</span> <span class='op'>=</span> <span class='kw'>nil</span>
|
1415
|
+
|
1416
|
+
<span class='kw'>case</span> <span class='id identifier rubyid_e'>e</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span>
|
1417
|
+
|
1418
|
+
<span class='kw'>when</span> <span class='symbol'>:switch</span>
|
1419
|
+
<span class='id identifier rubyid_option'>option</span> <span class='op'>=</span> <span class='const'>Opt</span><span class='period'>.</span><span class='id identifier rubyid_switch'>switch</span><span class='lparen'>(</span> <span class='id identifier rubyid_e'>e</span><span class='lbracket'>[</span><span class='int'>1</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='id identifier rubyid_e'>e</span><span class='lbracket'>[</span><span class='int'>2</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='id identifier rubyid_e'>e</span><span class='lbracket'>[</span><span class='int'>3</span><span class='rbracket'>]</span> <span class='rparen'>)</span>
|
1420
|
+
|
1421
|
+
<span class='kw'>when</span> <span class='symbol'>:exclusive</span>
|
1422
|
+
<span class='id identifier rubyid_option'>option</span> <span class='op'>=</span> <span class='const'>Opt</span><span class='period'>.</span><span class='id identifier rubyid_exclusive'>exclusive</span><span class='lparen'>(</span> <span class='id identifier rubyid_e'>e</span><span class='lbracket'>[</span><span class='int'>1</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='id identifier rubyid_e'>e</span><span class='lbracket'>[</span><span class='int'>2</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='id identifier rubyid_e'>e</span><span class='lbracket'>[</span><span class='int'>3</span><span class='rbracket'>]</span> <span class='rparen'>)</span>
|
1423
|
+
|
1424
|
+
<span class='kw'>when</span> <span class='symbol'>:silent</span>
|
1425
|
+
<span class='id identifier rubyid_option'>option</span> <span class='op'>=</span> <span class='const'>Opt</span><span class='period'>.</span><span class='id identifier rubyid_exclusive'>exclusive</span><span class='lparen'>(</span> <span class='id identifier rubyid_e'>e</span><span class='lbracket'>[</span><span class='int'>1</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='id identifier rubyid_e'>e</span><span class='lbracket'>[</span><span class='int'>2</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='id identifier rubyid_e'>e</span><span class='lbracket'>[</span><span class='int'>3</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='kw'>true</span> <span class='rparen'>)</span>
|
1426
|
+
|
1427
|
+
<span class='kw'>when</span> <span class='symbol'>:single</span><span class='comma'>,</span> <span class='symbol'>:multi</span><span class='comma'>,</span> <span class='symbol'>:opt_single</span><span class='comma'>,</span> <span class='symbol'>:opt_multi</span><span class='comma'>,</span> <span class='symbol'>:opt_any</span>
|
1428
|
+
<span class='id identifier rubyid_option'>option</span> <span class='op'>=</span> <span class='const'>Opt</span><span class='period'>.</span><span class='id identifier rubyid_full'>full</span><span class='lparen'>(</span> <span class='id identifier rubyid_e'>e</span><span class='lbracket'>[</span><span class='int'>1</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='id identifier rubyid_e'>e</span><span class='lbracket'>[</span><span class='int'>2</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='id identifier rubyid_e'>e</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='id identifier rubyid_e'>e</span><span class='lbracket'>[</span><span class='int'>3</span><span class='rbracket'>]</span> <span class='rparen'>)</span>
|
1429
|
+
|
1430
|
+
<span class='kw'>when</span> <span class='symbol'>:default</span>
|
1431
|
+
<span class='id identifier rubyid_option'>option</span> <span class='op'>=</span> <span class='const'>Opt</span><span class='period'>.</span><span class='id identifier rubyid_defaultOpt'>defaultOpt</span><span class='lparen'>(</span> <span class='id identifier rubyid_e'>e</span><span class='lbracket'>[</span><span class='int'>3</span><span class='rbracket'>]</span> <span class='rparen'>)</span>
|
1432
|
+
|
1433
|
+
<span class='kw'>else</span>
|
1434
|
+
<span class='id identifier rubyid_raise'>raise</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Unknown option type: \"</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_e'>e</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='rbrace'>}</span><span class='tstring_content'>\"...</span><span class='tstring_end'>"</span></span>
|
1435
|
+
<span class='kw'>end</span>
|
1436
|
+
|
1437
|
+
<span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span> <span class='id identifier rubyid_option'>option</span><span class='period'>.</span><span class='id identifier rubyid_name'>name</span> <span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_option'>option</span>
|
1438
|
+
|
1439
|
+
<span class='kw'>end</span>
|
1440
|
+
|
1441
|
+
<span class='kw'>end</span>
|
1442
|
+
|
1443
|
+
<span class='lbracket'>[</span> <span class='id identifier rubyid_options'>options</span><span class='period'>.</span><span class='id identifier rubyid_values'>values</span><span class='comma'>,</span> <span class='id identifier rubyid_subcmds'>subcmds</span><span class='period'>.</span><span class='id identifier rubyid_values'>values</span> <span class='rbracket'>]</span>
|
1444
|
+
<span class='kw'>end</span></pre>
|
1445
|
+
</td>
|
1446
|
+
</tr>
|
1447
|
+
</table>
|
1448
|
+
</div>
|
1449
|
+
|
1450
|
+
<div class="method_details ">
|
1451
|
+
<h3 class="signature " id="usage-class_method">
|
1452
|
+
|
1453
|
+
+ (<tt>Object</tt>) <strong>usage</strong>
|
1454
|
+
|
1455
|
+
|
1456
|
+
|
1457
|
+
|
1458
|
+
|
1459
|
+
</h3><div class="docstring">
|
1460
|
+
<div class="discussion">
|
1461
|
+
|
1462
|
+
<p>Display program usage (and optionally exit).</p>
|
1463
|
+
|
1464
|
+
|
1465
|
+
</div>
|
1466
|
+
</div>
|
1467
|
+
<div class="tags">
|
1468
|
+
|
1469
|
+
|
1470
|
+
</div><table class="source_code">
|
1471
|
+
<tr>
|
1472
|
+
<td>
|
1473
|
+
<pre class="lines">
|
1474
|
+
|
1475
|
+
|
1476
|
+
620
|
1477
|
+
621
|
1478
|
+
622</pre>
|
1479
|
+
</td>
|
1480
|
+
<td>
|
1481
|
+
<pre class="code"><span class="info file"># File 'lib/como.rb', line 620</span>
|
1482
|
+
|
1483
|
+
<span class='kw'>def</span> <span class='const'>Spec</span><span class='period'>.</span><span class='id identifier rubyid_usage'>usage</span>
|
1484
|
+
<span class='const'>Opt</span><span class='period'>.</span><span class='id identifier rubyid_main'>main</span><span class='period'>.</span><span class='id identifier rubyid_usage'>usage</span>
|
1485
|
+
<span class='kw'>end</span></pre>
|
1486
|
+
</td>
|
1487
|
+
</tr>
|
1488
|
+
</table>
|
1489
|
+
</div>
|
1490
|
+
|
1491
|
+
</div>
|
1492
|
+
|
1493
|
+
<div id="instance_method_details" class="method_details_list">
|
1494
|
+
<h2>Instance Method Details</h2>
|
1495
|
+
|
1496
|
+
|
1497
|
+
<div class="method_details first">
|
1498
|
+
<h3 class="signature first" id="checkRule-instance_method">
|
1499
|
+
|
1500
|
+
- (<tt>Object</tt>) <strong>checkRule</strong>(opt = nil, &rule)
|
1501
|
+
|
1502
|
+
|
1503
|
+
|
1504
|
+
|
1505
|
+
|
1506
|
+
</h3><div class="docstring">
|
1507
|
+
<div class="discussion">
|
1508
|
+
|
1509
|
+
<p>Check option combination rules.</p>
|
1510
|
+
|
1511
|
+
|
1512
|
+
</div>
|
1513
|
+
</div>
|
1514
|
+
<div class="tags">
|
1515
|
+
<p class="tag_title">Parameters:</p>
|
1516
|
+
<ul class="param">
|
1517
|
+
|
1518
|
+
<li>
|
1519
|
+
|
1520
|
+
<span class='name'>opt</span>
|
1521
|
+
|
1522
|
+
|
1523
|
+
<span class='type'>(<tt>String</tt>)</span>
|
1524
|
+
|
1525
|
+
|
1526
|
+
<em class="default">(defaults to: <tt>nil</tt>)</em>
|
1527
|
+
|
1528
|
+
|
1529
|
+
—
|
1530
|
+
<div class='inline'>
|
1531
|
+
<p>Opt name to which rules are set. If not given, Opt.current is used.</p>
|
1532
|
+
</div>
|
1533
|
+
|
1534
|
+
</li>
|
1535
|
+
|
1536
|
+
<li>
|
1537
|
+
|
1538
|
+
<span class='name'>rule</span>
|
1539
|
+
|
1540
|
+
|
1541
|
+
<span class='type'>(<tt>Proc</tt>)</span>
|
1542
|
+
|
1543
|
+
|
1544
|
+
|
1545
|
+
—
|
1546
|
+
<div class='inline'>
|
1547
|
+
<p>Rules to check.</p>
|
1548
|
+
</div>
|
1549
|
+
|
1550
|
+
</li>
|
1551
|
+
|
1552
|
+
</ul>
|
1553
|
+
|
1554
|
+
|
1555
|
+
</div><table class="source_code">
|
1556
|
+
<tr>
|
1557
|
+
<td>
|
1558
|
+
<pre class="lines">
|
1559
|
+
|
1560
|
+
|
1561
|
+
657
|
1562
|
+
658
|
1563
|
+
659
|
1564
|
+
660
|
1565
|
+
661
|
1566
|
+
662
|
1567
|
+
663
|
1568
|
+
664</pre>
|
1569
|
+
</td>
|
1570
|
+
<td>
|
1571
|
+
<pre class="code"><span class="info file"># File 'lib/como.rb', line 657</span>
|
1572
|
+
|
1573
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_checkRule'>checkRule</span><span class='lparen'>(</span> <span class='id identifier rubyid_opt'>opt</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_rule'>rule</span> <span class='rparen'>)</span>
|
1574
|
+
<span class='kw'>if</span> <span class='id identifier rubyid_opt'>opt</span>
|
1575
|
+
<span class='id identifier rubyid_opt'>opt</span> <span class='op'>=</span> <span class='const'>Opt</span><span class='lbracket'>[</span> <span class='id identifier rubyid_opt'>opt</span> <span class='rbracket'>]</span>
|
1576
|
+
<span class='kw'>else</span>
|
1577
|
+
<span class='id identifier rubyid_opt'>opt</span> <span class='op'>=</span> <span class='const'>Opt</span><span class='period'>.</span><span class='id identifier rubyid_current'>current</span>
|
1578
|
+
<span class='kw'>end</span>
|
1579
|
+
<span class='id identifier rubyid_opt'>opt</span><span class='period'>.</span><span class='id identifier rubyid_setRuleCheck'>setRuleCheck</span><span class='lparen'>(</span> <span class='op'>&</span><span class='id identifier rubyid_rule'>rule</span> <span class='rparen'>)</span>
|
1580
|
+
<span class='kw'>end</span></pre>
|
1581
|
+
</td>
|
1582
|
+
</tr>
|
1583
|
+
</table>
|
1584
|
+
</div>
|
1585
|
+
|
1586
|
+
<div class="method_details ">
|
1587
|
+
<h3 class="signature " id="subcmd-instance_method">
|
1588
|
+
|
1589
|
+
- (<tt>Object</tt>) <strong>subcmd</strong>(cmd, defs, config = {})
|
1590
|
+
|
1591
|
+
|
1592
|
+
|
1593
|
+
|
1594
|
+
|
1595
|
+
</h3><div class="docstring">
|
1596
|
+
<div class="discussion">
|
1597
|
+
|
1598
|
+
<p>Define subcommand options.</p>
|
1599
|
+
|
1600
|
+
|
1601
|
+
</div>
|
1602
|
+
</div>
|
1603
|
+
<div class="tags">
|
1604
|
+
<p class="tag_title">Parameters:</p>
|
1605
|
+
<ul class="param">
|
1606
|
+
|
1607
|
+
<li>
|
1608
|
+
|
1609
|
+
<span class='name'>cmd</span>
|
1610
|
+
|
1611
|
+
|
1612
|
+
<span class='type'>(<tt>String</tt>)</span>
|
1613
|
+
|
1614
|
+
|
1615
|
+
|
1616
|
+
—
|
1617
|
+
<div class='inline'>
|
1618
|
+
<p>Subcmd name.</p>
|
1619
|
+
</div>
|
1620
|
+
|
1621
|
+
</li>
|
1622
|
+
|
1623
|
+
<li>
|
1624
|
+
|
1625
|
+
<span class='name'>defs</span>
|
1626
|
+
|
1627
|
+
|
1628
|
+
<span class='type'>(<tt>Array<Array></tt>)</span>
|
1629
|
+
|
1630
|
+
|
1631
|
+
|
1632
|
+
—
|
1633
|
+
<div class='inline'>
|
1634
|
+
<p>Option definition table.</p>
|
1635
|
+
</div>
|
1636
|
+
|
1637
|
+
</li>
|
1638
|
+
|
1639
|
+
<li>
|
1640
|
+
|
1641
|
+
<span class='name'>config</span>
|
1642
|
+
|
1643
|
+
|
1644
|
+
<span class='type'></span>
|
1645
|
+
|
1646
|
+
|
1647
|
+
<em class="default">(defaults to: <tt>{}</tt>)</em>
|
1648
|
+
|
1649
|
+
|
1650
|
+
—
|
1651
|
+
<div class='inline'><dl class="rdoc-list"><dt></dt>
|
1652
|
+
<dd>
|
1653
|
+
<p>Configuration options.</p>
|
1654
|
+
</dd></dl>
|
1655
|
+
</div>
|
1656
|
+
|
1657
|
+
</li>
|
1658
|
+
|
1659
|
+
</ul>
|
1660
|
+
|
1661
|
+
|
1662
|
+
</div><table class="source_code">
|
1663
|
+
<tr>
|
1664
|
+
<td>
|
1665
|
+
<pre class="lines">
|
1666
|
+
|
1667
|
+
|
1668
|
+
505
|
1669
|
+
506
|
1670
|
+
507
|
1671
|
+
508
|
1672
|
+
509
|
1673
|
+
510
|
1674
|
+
511
|
1675
|
+
512
|
1676
|
+
513
|
1677
|
+
514
|
1678
|
+
515
|
1679
|
+
516
|
1680
|
+
517
|
1681
|
+
518
|
1682
|
+
519
|
1683
|
+
520
|
1684
|
+
521
|
1685
|
+
522
|
1686
|
+
523
|
1687
|
+
524
|
1688
|
+
525
|
1689
|
+
526
|
1690
|
+
527
|
1691
|
+
528
|
1692
|
+
529
|
1693
|
+
530
|
1694
|
+
531
|
1695
|
+
532
|
1696
|
+
533
|
1697
|
+
534
|
1698
|
+
535</pre>
|
1699
|
+
</td>
|
1700
|
+
<td>
|
1701
|
+
<pre class="code"><span class="info file"># File 'lib/como.rb', line 505</span>
|
1702
|
+
|
1703
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_subcmd'>subcmd</span><span class='lparen'>(</span> <span class='id identifier rubyid_cmd'>cmd</span><span class='comma'>,</span> <span class='id identifier rubyid_defs'>defs</span><span class='comma'>,</span> <span class='id identifier rubyid_config'>config</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span> <span class='rparen'>)</span>
|
1704
|
+
|
1705
|
+
<span class='kw'>unless</span> <span class='const'>Opt</span><span class='period'>.</span><span class='id identifier rubyid_main'>main</span>
|
1706
|
+
|
1707
|
+
<span class='id identifier rubyid_main'>main</span> <span class='op'>=</span> <span class='const'>MainOpt</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span> <span class='ivar'>@author</span><span class='comma'>,</span> <span class='ivar'>@year</span><span class='comma'>,</span>
|
1708
|
+
<span class='id identifier rubyid_cmd'>cmd</span><span class='comma'>,</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='symbol'>:subcmd</span><span class='comma'>,</span> <span class='kw'>nil</span> <span class='rparen'>)</span>
|
1709
|
+
<span class='const'>Opt</span><span class='period'>.</span><span class='id identifier rubyid_setMain'>setMain</span><span class='lparen'>(</span> <span class='id identifier rubyid_main'>main</span> <span class='rparen'>)</span>
|
1710
|
+
<span class='id identifier rubyid_subcmd'>subcmd</span> <span class='op'>=</span> <span class='id identifier rubyid_main'>main</span>
|
1711
|
+
|
1712
|
+
<span class='kw'>else</span>
|
1713
|
+
|
1714
|
+
<span class='id identifier rubyid_subcmd'>subcmd</span> <span class='op'>=</span> <span class='const'>Opt</span><span class='period'>.</span><span class='id identifier rubyid_findOpt'>findOpt</span><span class='lparen'>(</span> <span class='id identifier rubyid_cmd'>cmd</span> <span class='rparen'>)</span>
|
1715
|
+
|
1716
|
+
<span class='const'>Opt</span><span class='period'>.</span><span class='id identifier rubyid_setSubcmd'>setSubcmd</span><span class='lparen'>(</span> <span class='id identifier rubyid_subcmd'>subcmd</span> <span class='rparen'>)</span>
|
1717
|
+
|
1718
|
+
<span class='const'>Spec</span><span class='period'>.</span><span class='const'>ArgCheck</span><span class='lparen'>(</span> <span class='kw'>false</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Subcommand \"</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_cmd'>cmd</span><span class='rbrace'>}</span><span class='tstring_content'>\" not defined.</span><span class='tstring_end'>"</span></span> <span class='rparen'>)</span> <span class='kw'>unless</span> <span class='id identifier rubyid_subcmd'>subcmd</span>
|
1719
|
+
|
1720
|
+
<span class='kw'>end</span>
|
1721
|
+
|
1722
|
+
<span class='comment'># Overlay user config on top of default.
|
1723
|
+
</span> <span class='id identifier rubyid_subcmd'>subcmd</span><span class='period'>.</span><span class='id identifier rubyid_applyConfig'>applyConfig</span><span class='lparen'>(</span> <span class='id identifier rubyid_config'>config</span> <span class='rparen'>)</span>
|
1724
|
+
|
1725
|
+
<span class='kw'>if</span> <span class='id identifier rubyid_subcmd'>subcmd</span><span class='period'>.</span><span class='id identifier rubyid_config'>config</span><span class='lbracket'>[</span> <span class='symbol'>:autohelp</span> <span class='rbracket'>]</span>
|
1726
|
+
<span class='comment'># Automatically add the help option.
|
1727
|
+
</span> <span class='id identifier rubyid_defs'>defs</span><span class='period'>.</span><span class='id identifier rubyid_insert'>insert</span><span class='lparen'>(</span> <span class='int'>0</span><span class='comma'>,</span> <span class='lbracket'>[</span> <span class='symbol'>:silent</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>help</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>-h</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Display usage info.</span><span class='tstring_end'>"</span></span> <span class='rbracket'>]</span> <span class='rparen'>)</span>
|
1728
|
+
<span class='kw'>end</span>
|
1729
|
+
|
1730
|
+
<span class='id identifier rubyid_subcmd'>subcmd</span><span class='period'>.</span><span class='id identifier rubyid_setSubopt'>setSubopt</span><span class='lparen'>(</span> <span class='op'>*</span><span class='const'>Spec</span><span class='period'>.</span><span class='id identifier rubyid_specify'>specify</span><span class='lparen'>(</span> <span class='id identifier rubyid_defs'>defs</span> <span class='rparen'>)</span> <span class='rparen'>)</span>
|
1731
|
+
<span class='id identifier rubyid_subcmd'>subcmd</span>
|
1732
|
+
|
1733
|
+
<span class='kw'>end</span></pre>
|
1734
|
+
</td>
|
1735
|
+
</tr>
|
1736
|
+
</table>
|
1737
|
+
</div>
|
1738
|
+
|
1739
|
+
</div>
|
1740
|
+
|
1741
|
+
</div>
|
1742
|
+
|
1743
|
+
<div id="footer">
|
1744
|
+
Generated on Mon Dec 30 13:50:52 2013 by
|
1745
|
+
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
1746
|
+
0.8.6.1 (ruby-1.9.3).
|
1747
|
+
</div>
|
1748
|
+
|
1749
|
+
</body>
|
1750
|
+
</html>
|