clasp-ruby 0.23.0.2 → 0.23.1

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.
@@ -8,738 +8,738 @@ require 'test/unit'
8
8
 
9
9
  class Test_Arguments < Test::Unit::TestCase
10
10
 
11
- def test_empty_args
11
+ def test_empty_args
12
12
 
13
- args = CLASP::Arguments.new([])
13
+ args = CLASP::Arguments.new([])
14
14
 
15
- assert_equal 0, args.flags.size
15
+ assert_equal 0, args.flags.size
16
16
 
17
- assert_equal 0, args.options.size
17
+ assert_equal 0, args.options.size
18
18
 
19
- assert_equal 0, args.values.size
19
+ assert_equal 0, args.values.size
20
20
 
21
- assert_nil args.double_slash_index
22
- end
23
-
24
- def test_one_value
25
-
26
- args = CLASP::Arguments.new([ 'value1' ])
27
-
28
- assert_equal 0, args.flags.size
29
-
30
- assert_equal 0, args.options.size
31
-
32
- assert_equal 1, args.values.size
33
- assert_equal 'value1', args.values[0]
34
-
35
- assert_nil args.double_slash_index
36
- end
37
-
38
- def test_two_values
39
-
40
- args = CLASP::Arguments.new([ 'value1', 'val2' ])
41
-
42
- assert_equal 0, args.flags.size
43
-
44
- assert_equal 0, args.options.size
45
-
46
- assert_equal 2, args.values.size
47
- assert_equal 'value1', args.values[0]
48
- assert_equal 'val2', args.values[1]
49
-
50
- assert_nil args.double_slash_index
51
- end
52
-
53
- def test_ten_values
54
-
55
- argv = (0 .. 10).map { |n| "value#{n}" }
56
-
57
- args = CLASP::Arguments.new(argv)
58
-
59
- assert_equal 0, args.flags.size
60
-
61
- assert_equal 0, args.options.size
62
-
63
- assert_equal argv.size, args.values.size
64
- (0 ... argv.size).each do |n|
65
- assert_equal argv[n], args.values[n]
66
- end
67
-
68
- assert_nil args.double_slash_index
69
- end
70
-
71
- def test_one_flag
72
-
73
- args = CLASP::Arguments.new([ '-f1' ])
74
-
75
- assert_equal 1, args.flags.size
76
- assert_equal 0, args.flags[0].given_index
77
- assert_equal '-f1', args.flags[0].to_s
78
- assert_equal '-f1', args.flags[0].name
79
- assert_equal 'f1', args.flags[0].given_label
80
- assert_equal '-f1', args.flags[0].given_name
81
- assert_equal 1, args.flags[0].given_hyphens
82
- assert_nil args.flags[0].argument_specification
83
- assert_equal Hash.new, args.flags[0].extras
84
-
85
- assert_equal 0, args.options.size
86
-
87
- assert_equal 0, args.values.size
88
-
89
- assert_nil args.double_slash_index
90
- end
91
-
92
- def test_two_flags
93
-
94
- args = CLASP::Arguments.new([ '-f1', '--flag2' ])
95
-
96
- assert_equal 2, args.flags.size
97
- assert_equal 0, args.flags[0].given_index
98
- assert_equal '-f1', args.flags[0].to_s
99
- assert_equal '-f1', args.flags[0].name
100
- assert_equal 'f1', args.flags[0].given_label
101
- assert_equal '-f1', args.flags[0].given_name
102
- assert_equal 1, args.flags[0].given_hyphens
103
- assert_nil args.flags[0].argument_specification
104
- assert_equal Hash.new, args.flags[0].extras
105
- assert_equal 1, args.flags[1].given_index
106
- assert_equal '--flag2', args.flags[1].to_s
107
- assert_equal '--flag2', args.flags[1].name
108
- assert_equal 'flag2', args.flags[1].given_label
109
- assert_equal '--flag2', args.flags[1].given_name
110
- assert_equal 2, args.flags[1].given_hyphens
111
- assert_nil args.flags[1].argument_specification
112
- assert_equal Hash.new, args.flags[1].extras
113
-
114
- assert_equal 0, args.options.size
115
-
116
- assert_equal 0, args.values.size
117
-
118
- assert_nil args.double_slash_index
119
- end
120
-
121
- def test_three_flags
122
-
123
- args = CLASP::Arguments.new([ '-f1', '--flag2', '---x' ])
124
-
125
- assert_equal 3, args.flags.size
126
- assert_equal 0, args.flags[0].given_index
127
- assert_equal '-f1', args.flags[0].to_s
128
- assert_equal '-f1', args.flags[0].name
129
- assert_equal 'f1', args.flags[0].given_label
130
- assert_equal '-f1', args.flags[0].given_name
131
- assert_equal 1, args.flags[0].given_hyphens
132
- assert_nil args.flags[0].argument_specification
133
- assert_equal Hash.new, args.flags[0].extras
134
- assert_equal 1, args.flags[1].given_index
135
- assert_equal '--flag2', args.flags[1].to_s
136
- assert_equal '--flag2', args.flags[1].name
137
- assert_equal 'flag2', args.flags[1].given_label
138
- assert_equal '--flag2', args.flags[1].given_name
139
- assert_equal 2, args.flags[1].given_hyphens
140
- assert_nil args.flags[1].argument_specification
141
- assert_equal Hash.new, args.flags[1].extras
142
- assert_equal 2, args.flags[2].given_index
143
- assert_equal '---x', args.flags[2].to_s
144
- assert_equal '---x', args.flags[2].name
145
- assert_equal 'x', args.flags[2].given_label
146
- assert_equal '---x', args.flags[2].given_name
147
- assert_equal 3, args.flags[2].given_hyphens
148
- assert_nil args.flags[2].argument_specification
149
- assert_equal Hash.new, args.flags[2].extras
150
-
151
- assert_equal 0, args.options.size
152
-
153
- assert_equal 0, args.values.size
154
-
155
- assert_nil args.double_slash_index
156
- end
157
-
158
- def test_one_option
159
-
160
- args = CLASP::Arguments.new([ '-o1=v1' ])
161
-
162
- assert_equal 0, args.flags.size
163
-
164
- assert_equal 1, args.options.size
165
- assert_equal 0, args.options[0].given_index
166
- assert_equal '-o1=v1', args.options[0].to_s
167
- assert_equal '-o1', args.options[0].name
168
- assert_equal 'o1', args.options[0].given_label
169
- assert_equal 'v1', args.options[0].value
170
- assert_equal '-o1', args.options[0].given_name
171
- assert_equal 1, args.options[0].given_hyphens
172
- assert_nil args.options[0].argument_specification
173
- assert_equal Hash.new, args.options[0].extras
174
-
175
- assert_equal 0, args.values.size
21
+ assert_nil args.double_slash_index
22
+ end
176
23
 
177
- assert_nil args.double_slash_index
178
- end
179
-
180
- def test_two_options
181
-
182
- args = CLASP::Arguments.new([ '-o1=v1', '--option2=value2' ])
183
-
184
- assert_equal 0, args.flags.size
185
-
186
- assert_equal 2, args.options.size
187
- assert_equal '-o1=v1', args.options[0].to_s
188
- assert_equal '-o1', args.options[0].name
189
- assert_equal 'o1', args.options[0].given_label
190
- assert_equal 'v1', args.options[0].value
191
- assert_equal '-o1', args.options[0].given_name
192
- assert_equal 1, args.options[0].given_hyphens
193
- assert_nil args.options[0].argument_specification
194
- assert_equal Hash.new, args.options[0].extras
195
- assert_equal '--option2=value2', args.options[1].to_s
196
- assert_equal '--option2', args.options[1].name
197
- assert_equal 'option2', args.options[1].given_label
198
- assert_equal 'value2', args.options[1].value
199
- assert_equal '--option2', args.options[1].given_name
200
- assert_equal 2, args.options[1].given_hyphens
201
- assert_nil args.options[1].argument_specification
202
- assert_equal Hash.new, args.options[1].extras
203
-
204
- assert_equal 0, args.values.size
205
-
206
- assert_nil args.double_slash_index
207
- end
208
-
209
- def test_three_options
210
-
211
- args = CLASP::Arguments.new([ '-o1=v1', '--option2=value2', '---the-third-option=the third value' ])
212
-
213
- assert_equal 0, args.flags.size
214
-
215
- assert_equal 3, args.options.size
216
- assert_equal '-o1=v1', args.options[0].to_s
217
- assert_equal '-o1', args.options[0].name
218
- assert_equal 'o1', args.options[0].given_label
219
- assert_equal 'v1', args.options[0].value
220
- assert_equal '-o1', args.options[0].given_name
221
- assert_equal 1, args.options[0].given_hyphens
222
- assert_nil args.options[0].argument_specification
223
- assert_equal Hash.new, args.options[0].extras
224
- assert_equal '--option2=value2', args.options[1].to_s
225
- assert_equal '--option2', args.options[1].name
226
- assert_equal 'option2', args.options[1].given_label
227
- assert_equal 'value2', args.options[1].value
228
- assert_equal '--option2', args.options[1].given_name
229
- assert_equal 2, args.options[1].given_hyphens
230
- assert_nil args.options[1].argument_specification
231
- assert_equal Hash.new, args.options[1].extras
232
- assert_equal '---the-third-option=the third value', args.options[2].to_s
233
- assert_equal '---the-third-option', args.options[2].name
234
- assert_equal 'the-third-option', args.options[2].given_label
235
- assert_equal 'the third value', args.options[2].value
236
- assert_equal '---the-third-option', args.options[2].given_name
237
- assert_equal 3, args.options[2].given_hyphens
238
- assert_nil args.options[2].argument_specification
239
- assert_equal Hash.new, args.options[2].extras
240
-
241
- assert_equal 0, args.values.size
242
-
243
- assert_nil args.double_slash_index
244
- end
245
-
246
- def test_one_flag_and_one_option_and_one_value
247
-
248
- args = CLASP::Arguments.new [ '-f1', 'value1', '--first-option=val1' ]
249
-
250
- assert_equal 1, args.flags.size
251
- assert_equal '-f1', args.flags[0].to_s
252
- assert_equal '-f1', args.flags[0].name
253
- assert_equal 'f1', args.flags[0].given_label
254
- assert_equal '-f1', args.flags[0].given_name
255
- assert_equal 1, args.flags[0].given_hyphens
256
- assert_nil args.flags[0].argument_specification
257
- assert_equal Hash.new, args.flags[0].extras
258
-
259
- assert_equal 1, args.options.size
260
- assert_equal '--first-option=val1', args.options[0].to_s
261
- assert_equal '--first-option', args.options[0].name
262
- assert_equal 'first-option', args.options[0].given_label
263
- assert_equal 'val1', args.options[0].value
264
- assert_equal '--first-option', args.options[0].given_name
265
- assert_equal 2, args.options[0].given_hyphens
266
- assert_equal Hash.new, args.options[0].extras
267
-
268
- assert_equal 1, args.values.size
269
- assert_equal 'value1', args.values[0]
24
+ def test_one_value
270
25
 
271
- assert_nil args.double_slash_index
272
- end
26
+ args = CLASP::Arguments.new([ 'value1' ])
273
27
 
274
- def test_double_hyphen_1
28
+ assert_equal 0, args.flags.size
275
29
 
276
- args = CLASP::Arguments.new [ '-f1', 'value1', '--', '-f2' ]
30
+ assert_equal 0, args.options.size
277
31
 
278
- assert_equal 1, args.flags.size
279
- assert_equal '-f1', args.flags[0].to_s
280
- assert_equal '-f1', args.flags[0].name
281
- assert_equal 'f1', args.flags[0].given_label
282
- assert_equal '-f1', args.flags[0].given_name
283
- assert_equal 1, args.flags[0].given_hyphens
284
- assert_nil args.flags[0].argument_specification
285
- assert_equal Hash.new, args.flags[0].extras
32
+ assert_equal 1, args.values.size
33
+ assert_equal 'value1', args.values[0]
286
34
 
287
- assert_equal 0, args.options.size
35
+ assert_nil args.double_slash_index
36
+ end
288
37
 
289
- assert_equal 2, args.values.size
290
- assert_equal 'value1', args.values[0]
291
- assert_equal '-f2', args.values[1]
38
+ def test_two_values
292
39
 
293
- assert_equal 2, args.double_slash_index
294
- end
40
+ args = CLASP::Arguments.new([ 'value1', 'val2' ])
295
41
 
296
- def test_double_hyphen_2
42
+ assert_equal 0, args.flags.size
297
43
 
298
- args = CLASP::Arguments.new [ '-f1', 'value1', '--', '-f2', '--', '--option1=v1' ]
44
+ assert_equal 0, args.options.size
299
45
 
300
- assert_equal 1, args.flags.size
301
- assert_equal '-f1', args.flags[0].to_s
302
- assert_equal '-f1', args.flags[0].name
303
- assert_equal 'f1', args.flags[0].given_label
304
- assert_equal '-f1', args.flags[0].given_name
305
- assert_equal 1, args.flags[0].given_hyphens
306
- assert_nil args.flags[0].argument_specification
307
- assert_equal Hash.new, args.flags[0].extras
46
+ assert_equal 2, args.values.size
47
+ assert_equal 'value1', args.values[0]
48
+ assert_equal 'val2', args.values[1]
308
49
 
309
- assert_equal 0, args.options.size
50
+ assert_nil args.double_slash_index
51
+ end
310
52
 
311
- assert_equal 4, args.values.size
312
- assert_equal 'value1', args.values[0]
313
- assert_equal '-f2', args.values[1]
314
- assert_equal '--', args.values[2]
315
- assert_equal '--option1=v1', args.values[3]
53
+ def test_ten_values
316
54
 
317
- assert_equal 2, args.double_slash_index
318
- end
319
-
320
- def test_double_hyphen_3
321
-
322
- specifications = [
323
-
324
- CLASP.Option('--password', alias: '-p', extras: 'extra'),
325
- ]
326
- args = CLASP::Arguments.new [ '-f1', 'value1', '-p', '--', 'value2' ], specifications
327
-
328
- assert_equal 1, args.flags.size
329
- assert_equal '-f1', args.flags[0].to_s
330
- assert_equal '-f1', args.flags[0].name
331
- assert_equal 'f1', args.flags[0].given_label
332
- assert_equal '-f1', args.flags[0].given_name
333
- assert_equal 1, args.flags[0].given_hyphens
334
- assert_nil args.flags[0].argument_specification
335
- assert_equal Hash.new, args.flags[0].extras
336
-
337
- assert_equal 1, args.options.size
338
- assert_equal '--password=', args.options[0].to_s
339
- assert_equal '--password', args.options[0].name
340
- assert_equal 'p', args.options[0].given_label
341
- assert_nil args.options[0].value
342
- assert_equal '-p', args.options[0].given_name
343
- assert_equal 1, args.options[0].given_hyphens
344
- assert_equal 'extra', args.options[0].extras
345
-
346
- assert_equal 2, args.values.size
347
- assert_equal 'value1', args.values[0]
348
- assert_equal 'value2', args.values[1]
349
-
350
- assert_equal 3, args.double_slash_index
351
- end
55
+ argv = (0 .. 10).map { |n| "value#{n}" }
352
56
 
353
- def test_flag_specifications_1
354
-
355
- specifications = [
356
- ]
357
- args = CLASP::Arguments.new [ '-f1', 'value1', '-x', '--delete' ], specifications
358
-
359
- assert_equal 3, args.flags.size
360
- assert_equal '-f1', args.flags[0].to_s
361
- assert_equal '-f1', args.flags[0].name
362
- assert_equal 'f1', args.flags[0].given_label
363
- assert_equal '-f1', args.flags[0].given_name
364
- assert_equal 1, args.flags[0].given_hyphens
365
- assert_nil args.flags[0].argument_specification
366
- assert_equal Hash.new, args.flags[0].extras
367
- assert_equal '-x', args.flags[1].to_s
368
- assert_equal '-x', args.flags[1].name
369
- assert_equal 'x', args.flags[1].given_label
370
- assert_equal '-x', args.flags[1].given_name
371
- assert_equal 1, args.flags[1].given_hyphens
372
- assert_nil args.flags[1].argument_specification
373
- assert_equal Hash.new, args.flags[1].extras
374
- assert_equal '--delete', args.flags[2].to_s
375
- assert_equal '--delete', args.flags[2].name
376
- assert_equal 'delete', args.flags[2].given_label
377
- assert_equal '--delete', args.flags[2].given_name
378
- assert_equal 2, args.flags[2].given_hyphens
379
- assert_nil args.flags[2].argument_specification
380
- assert_equal Hash.new, args.flags[2].extras
381
-
382
- assert_equal 0, args.options.size
383
-
384
- assert_equal 1, args.values.size
385
- assert_equal 'value1', args.values[0]
386
-
387
- assert_nil args.double_slash_index
388
- end
57
+ args = CLASP::Arguments.new(argv)
389
58
 
390
- def test_flag_specifications_2
391
-
392
- specifications = [
393
-
394
- CLASP.Flag('--expand', alias: '-x')
395
- ]
396
- args = CLASP::Arguments.new [ '-f1', 'value1', '-x', '--delete' ], specifications
397
-
398
- assert_equal 3, args.flags.size
399
- assert_equal '-f1', args.flags[0].to_s
400
- assert_equal '-f1', args.flags[0].name
401
- assert_equal 'f1', args.flags[0].given_label
402
- assert_equal '-f1', args.flags[0].given_name
403
- assert_equal 1, args.flags[0].given_hyphens
404
- assert_nil args.flags[0].argument_specification
405
- assert_equal Hash.new, args.flags[0].extras
406
- assert_equal '--expand', args.flags[1].to_s
407
- assert_equal '--expand', args.flags[1].name
408
- assert_equal 'x', args.flags[1].given_label
409
- assert_equal '-x', args.flags[1].given_name
410
- assert_equal 1, args.flags[1].given_hyphens
411
- assert_equal specifications[0], args.flags[1].argument_specification
412
- assert_equal Hash.new, args.flags[1].extras
413
- assert_equal '--delete', args.flags[2].to_s
414
- assert_equal '--delete', args.flags[2].name
415
- assert_equal 'delete', args.flags[2].given_label
416
- assert_equal '--delete', args.flags[2].given_name
417
- assert_equal 2, args.flags[2].given_hyphens
418
- assert_nil args.flags[2].argument_specification
419
- assert_equal Hash.new, args.flags[2].extras
420
-
421
- assert_equal 0, args.options.size
422
-
423
- assert_equal 1, args.values.size
424
- assert_equal 'value1', args.values[0]
425
-
426
- assert_nil args.double_slash_index
427
- end
59
+ assert_equal 0, args.flags.size
428
60
 
429
- def test_flag_specifications_3
430
-
431
- specifications = [
432
-
433
- CLASP.Flag('--expand', aliases: [ '-x', '--x' ], extras: %w{ e x t r a })
434
- ]
435
- args = CLASP::Arguments.new [ '-f1', 'value1', '-x', '--delete', '--x' ], specifications
436
-
437
- assert_equal 4, args.flags.size
438
- assert_equal '-f1', args.flags[0].to_s
439
- assert_equal '-f1', args.flags[0].name
440
- assert_equal 'f1', args.flags[0].given_label
441
- assert_equal '-f1', args.flags[0].given_name
442
- assert_equal 1, args.flags[0].given_hyphens
443
- assert_nil args.flags[0].argument_specification
444
- assert_equal Hash.new, args.flags[0].extras
445
- assert_equal '--expand', args.flags[1].to_s
446
- assert_equal '--expand', args.flags[1].name
447
- assert_equal 'x', args.flags[1].given_label
448
- assert_equal '-x', args.flags[1].given_name
449
- assert_equal 1, args.flags[1].given_hyphens
450
- assert_equal specifications[0], args.flags[1].argument_specification
451
- assert_equal [ 'e', 'x', 't', 'r', 'a' ], args.flags[1].extras
452
- assert_equal '--delete', args.flags[2].to_s
453
- assert_equal '--delete', args.flags[2].name
454
- assert_equal 'delete', args.flags[2].given_label
455
- assert_equal '--delete', args.flags[2].given_name
456
- assert_equal 2, args.flags[2].given_hyphens
457
- assert_nil args.flags[2].argument_specification
458
- assert_equal Hash.new, args.flags[2].extras
459
- assert_equal '--expand', args.flags[3].to_s
460
- assert_equal '--expand', args.flags[3].name
461
- assert_equal 'x', args.flags[3].given_label
462
- assert_equal '--x', args.flags[3].given_name
463
- assert_equal 2, args.flags[3].given_hyphens
464
- assert_equal specifications[0], args.flags[3].argument_specification
465
- assert_equal [ 'e', 'x', 't', 'r', 'a' ], args.flags[3].extras
466
-
467
- assert_equal 0, args.options.size
468
-
469
- assert_equal 1, args.values.size
470
- assert_equal 'value1', args.values[0]
471
-
472
- assert_nil args.double_slash_index
473
- end
61
+ assert_equal 0, args.options.size
474
62
 
475
- def test_option_specifications_1
476
-
477
- specifications = [
478
- ]
479
- args = CLASP::Arguments.new [ '-f1', 'value1', '-o=value' ], specifications
480
-
481
- assert_equal 1, args.flags.size
482
- assert_equal '-f1', args.flags[0].to_s
483
- assert_equal '-f1', args.flags[0].name
484
- assert_equal 'f1', args.flags[0].given_label
485
- assert_equal '-f1', args.flags[0].given_name
486
- assert_equal 1, args.flags[0].given_hyphens
487
- assert_equal Hash.new, args.flags[0].extras
488
-
489
- assert_equal 1, args.options.size
490
- assert_equal '-o=value', args.options[0].to_s
491
- assert_equal '-o', args.options[0].name
492
- assert_equal 'o', args.options[0].given_label
493
- assert_equal 'value', args.options[0].value
494
- assert_equal '-o', args.options[0].given_name
495
- assert_equal 1, args.options[0].given_hyphens
496
- assert_equal Hash.new, args.options[0].extras
497
-
498
- assert_equal 1, args.values.size
499
- assert_equal 'value1', args.values[0]
500
-
501
- assert_nil args.double_slash_index
63
+ assert_equal argv.size, args.values.size
64
+ (0 ... argv.size).each do |n|
65
+ assert_equal argv[n], args.values[n]
502
66
  end
503
67
 
504
- def test_option_specifications_2
505
-
506
- specifications = [
507
-
508
- CLASP.Option('--option', aliases: [ '-o' ])
509
- ]
510
- args = CLASP::Arguments.new [ '-f1', 'value1', '-o=value' ], specifications
511
-
512
- assert_equal 1, args.flags.size
513
- assert_equal '-f1', args.flags[0].to_s
514
- assert_equal '-f1', args.flags[0].name
515
- assert_equal 'f1', args.flags[0].given_label
516
- assert_equal '-f1', args.flags[0].given_name
517
- assert_equal 1, args.flags[0].given_hyphens
518
- assert_equal Hash.new, args.flags[0].extras
519
-
520
- assert_equal 1, args.options.size
521
- assert_equal '--option=value', args.options[0].to_s
522
- assert_equal '--option', args.options[0].name
523
- assert_equal 'o', args.options[0].given_label
524
- assert_equal 'value', args.options[0].value
525
- assert_equal '-o', args.options[0].given_name
526
- assert_equal 1, args.options[0].given_hyphens
527
- assert_equal Hash.new, args.options[0].extras
528
-
529
- assert_equal 1, args.values.size
530
- assert_equal 'value1', args.values[0]
531
-
532
- assert_nil args.double_slash_index
533
- end
534
-
535
- def test_option_specifications_3
536
-
537
- specifications = [
538
-
539
- CLASP.Option('--option', aliases: [ '-o' ])
540
- ]
541
- args = CLASP::Arguments.new [ '-f1', 'value1', '-o', 'value' ], specifications
542
-
543
- assert_equal 1, args.flags.size
544
- assert_equal '-f1', args.flags[0].to_s
545
- assert_equal '-f1', args.flags[0].name
546
- assert_equal 'f1', args.flags[0].given_label
547
- assert_equal '-f1', args.flags[0].given_name
548
- assert_equal 1, args.flags[0].given_hyphens
549
- assert_equal Hash.new, args.flags[0].extras
550
-
551
- assert_equal 1, args.options.size
552
- assert_equal '--option=value', args.options[0].to_s
553
- assert_equal '--option', args.options[0].name
554
- assert_equal 'o', args.options[0].given_label
555
- assert_equal 'value', args.options[0].value
556
- assert_equal '-o', args.options[0].given_name
557
- assert_equal 1, args.options[0].given_hyphens
558
- assert_equal Hash.new, args.options[0].extras
559
- assert_equal specifications[0], args.options[0].argument_specification
560
-
561
- assert_equal 1, args.values.size
562
- assert_equal 'value1', args.values[0]
563
-
564
- assert_nil args.double_slash_index
565
- end
566
-
567
- def test_option_default_specifications_1
568
-
569
- specifications = [
570
-
571
- CLASP.Option('--option', aliases: [ '-o' ]),
572
- CLASP.Option('--option=special-value', alias: '-s')
573
- ]
574
- args = CLASP::Arguments.new [ '-f1', 'value1', '-o', 'value', '-s', '-s=explicit-value' ], specifications
575
-
576
- assert_equal 1, args.flags.size
577
- assert_equal '-f1', args.flags[0].to_s
578
- assert_equal '-f1', args.flags[0].name
579
- assert_equal 'f1', args.flags[0].given_label
580
- assert_equal '-f1', args.flags[0].given_name
581
- assert_equal 1, args.flags[0].given_hyphens
582
- assert_equal Hash.new, args.flags[0].extras
583
-
584
- assert_equal 3, args.options.size
585
- assert_equal 2, args.options[0].given_index
586
- assert_equal '--option=value', args.options[0].to_s
587
- assert_equal '--option', args.options[0].name
588
- assert_equal 'o', args.options[0].given_label
589
- assert_equal 'value', args.options[0].value
590
- assert_equal '-o', args.options[0].given_name
591
- assert_equal 1, args.options[0].given_hyphens
592
- assert_equal Hash.new, args.options[0].extras
593
- assert_equal specifications[0], args.options[0].argument_specification
594
- assert_equal 4, args.options[1].given_index
595
- assert_equal '--option=special-value', args.options[1].to_s
596
- assert_equal '--option', args.options[1].name
597
- assert_equal 's', args.options[1].given_label
598
- assert_equal 'special-value', args.options[1].value
599
- assert_equal '-s', args.options[1].given_name
600
- assert_equal 1, args.options[1].given_hyphens
601
- assert_equal Hash.new, args.options[1].extras
602
- assert_equal specifications[0], args.options[1].argument_specification
603
- assert_equal 5, args.options[2].given_index
604
- assert_equal '--option=explicit-value', args.options[2].to_s
605
- assert_equal '--option', args.options[2].name
606
- assert_equal 's', args.options[2].given_label
607
- assert_equal 'explicit-value', args.options[2].value
608
- assert_equal '-s', args.options[2].given_name
609
- assert_equal 1, args.options[2].given_hyphens
610
- assert_equal Hash.new, args.options[2].extras
611
- assert_equal specifications[0], args.options[2].argument_specification
612
-
613
- assert_equal 1, args.values.size
614
- assert_equal 'value1', args.values[0]
615
-
616
- assert_nil args.double_slash_index
617
- end
618
-
619
- def test_option_default_specifications_2
620
-
621
- specifications = [
622
-
623
- CLASP.Option('--option', aliases: [ '-o' ]),
624
- CLASP.Flag('--option=special-value', alias: '-s'),
625
- CLASP.Flag('--verbose', alias: '-v'),
626
- ]
627
- args = CLASP::Arguments.new [ '-f1', 'value1', '-o', 'value', '-sv', '-s=explicit-value' ], specifications
628
-
629
- assert_equal 2, args.flags.size
630
- flag = args.flags[0]
631
- assert_equal '-f1', flag.to_s
632
- assert_equal '-f1', flag.name
633
- assert_equal 'f1', flag.given_label
634
- assert_equal '-f1', flag.given_name
635
- assert_equal 1, flag.given_hyphens
636
- assert_equal Hash.new, flag.extras
637
- assert_equal 0, flag.given_index
638
- flag = args.flags[1]
639
- assert_equal '--verbose', flag.to_s
640
- assert_equal '--verbose', flag.name
641
- assert_equal 'sv', flag.given_label
642
- assert_equal '-sv', flag.given_name
643
- assert_equal 1, flag.given_hyphens
644
- assert_equal Hash.new, flag.extras
645
- assert_equal 4, flag.given_index
646
-
647
- assert_equal 3, args.options.size
648
- option = args.options[0]
649
- assert_equal '--option=value', option.to_s
650
- assert_equal '--option', option.name
651
- assert_equal 'o', option.given_label
652
- assert_equal 'value', option.value
653
- assert_equal '-o', option.given_name
654
- assert_equal 1, option.given_hyphens
655
- assert_equal Hash.new, option.extras
656
- assert_equal 2, option.given_index
657
- option = args.options[1]
658
- assert_equal '--option=special-value', option.to_s
659
- assert_equal '--option', option.name
660
- assert_equal 'sv', option.given_label
661
- assert_equal 'special-value', option.value
662
- assert_equal '-sv', option.given_name
663
- assert_equal 1, option.given_hyphens
664
- assert_equal Hash.new, option.extras
665
- assert_equal 4, option.given_index
666
- option = args.options[2]
667
- assert_equal '--option=explicit-value', option.to_s
668
- assert_equal '--option', option.name
669
- assert_equal 's', option.given_label
670
- assert_equal 'explicit-value', option.value
671
- assert_equal '-s', option.given_name
672
- assert_equal 1, option.given_hyphens
673
- assert_equal Hash.new, option.extras
674
- assert_equal 5, option.given_index
675
-
676
- assert_equal 1, args.values.size
677
- assert_equal 'value1', args.values[0]
678
-
679
- assert_nil args.double_slash_index
680
- end
681
-
682
- def test_option_default_specifications_3
683
-
684
- specifications = [
685
-
686
- CLASP.Option('--option', aliases: [ '-o' ]),
687
- CLASP.Flag('--option=special-value', alias: '-s'),
688
- CLASP.Flag('-v'),
689
- ]
690
- args = CLASP::Arguments.new [ '-f1', 'value1', '-o', 'value', '-sv', '-s=explicit-value' ], specifications
691
-
692
- assert_equal 2, args.flags.size
693
- flag = args.flags[0]
694
- assert_equal '-f1', flag.to_s
695
- assert_equal '-f1', flag.name
696
- assert_equal 'f1', flag.given_label
697
- assert_equal '-f1', flag.given_name
698
- assert_equal 1, flag.given_hyphens
699
- assert_equal Hash.new, flag.extras
700
- assert_equal 0, flag.given_index
701
- flag = args.flags[1]
702
- assert_equal '-v', flag.to_s
703
- assert_equal '-v', flag.name
704
- assert_equal 'sv', flag.given_label
705
- assert_equal '-sv', flag.given_name
706
- assert_equal 1, flag.given_hyphens
707
- assert_equal Hash.new, flag.extras
708
- assert_equal 4, flag.given_index
709
-
710
- assert_equal 3, args.options.size
711
- option = args.options[0]
712
- assert_equal '--option=value', option.to_s
713
- assert_equal '--option', option.name
714
- assert_equal 'o', option.given_label
715
- assert_equal 'value', option.value
716
- assert_equal '-o', option.given_name
717
- assert_equal 1, option.given_hyphens
718
- assert_equal Hash.new, option.extras
719
- assert_equal 2, option.given_index
720
- option = args.options[1]
721
- assert_equal '--option=special-value', option.to_s
722
- assert_equal '--option', option.name
723
- assert_equal 'sv', option.given_label
724
- assert_equal 'special-value', option.value
725
- assert_equal '-sv', option.given_name
726
- assert_equal 1, option.given_hyphens
727
- assert_equal Hash.new, option.extras
728
- assert_equal 4, option.given_index
729
- option = args.options[2]
730
- assert_equal '--option=explicit-value', option.to_s
731
- assert_equal '--option', option.name
732
- assert_equal 's', option.given_label
733
- assert_equal 'explicit-value', option.value
734
- assert_equal '-s', option.given_name
735
- assert_equal 1, option.given_hyphens
736
- assert_equal Hash.new, option.extras
737
- assert_equal 5, option.given_index
738
-
739
- assert_equal 1, args.values.size
740
- assert_equal 'value1', args.values[0]
741
-
742
- assert_nil args.double_slash_index
743
- end
68
+ assert_nil args.double_slash_index
69
+ end
70
+
71
+ def test_one_flag
72
+
73
+ args = CLASP::Arguments.new([ '-f1' ])
74
+
75
+ assert_equal 1, args.flags.size
76
+ assert_equal 0, args.flags[0].given_index
77
+ assert_equal '-f1', args.flags[0].to_s
78
+ assert_equal '-f1', args.flags[0].name
79
+ assert_equal 'f1', args.flags[0].given_label
80
+ assert_equal '-f1', args.flags[0].given_name
81
+ assert_equal 1, args.flags[0].given_hyphens
82
+ assert_nil args.flags[0].argument_specification
83
+ assert_equal Hash.new, args.flags[0].extras
84
+
85
+ assert_equal 0, args.options.size
86
+
87
+ assert_equal 0, args.values.size
88
+
89
+ assert_nil args.double_slash_index
90
+ end
91
+
92
+ def test_two_flags
93
+
94
+ args = CLASP::Arguments.new([ '-f1', '--flag2' ])
95
+
96
+ assert_equal 2, args.flags.size
97
+ assert_equal 0, args.flags[0].given_index
98
+ assert_equal '-f1', args.flags[0].to_s
99
+ assert_equal '-f1', args.flags[0].name
100
+ assert_equal 'f1', args.flags[0].given_label
101
+ assert_equal '-f1', args.flags[0].given_name
102
+ assert_equal 1, args.flags[0].given_hyphens
103
+ assert_nil args.flags[0].argument_specification
104
+ assert_equal Hash.new, args.flags[0].extras
105
+ assert_equal 1, args.flags[1].given_index
106
+ assert_equal '--flag2', args.flags[1].to_s
107
+ assert_equal '--flag2', args.flags[1].name
108
+ assert_equal 'flag2', args.flags[1].given_label
109
+ assert_equal '--flag2', args.flags[1].given_name
110
+ assert_equal 2, args.flags[1].given_hyphens
111
+ assert_nil args.flags[1].argument_specification
112
+ assert_equal Hash.new, args.flags[1].extras
113
+
114
+ assert_equal 0, args.options.size
115
+
116
+ assert_equal 0, args.values.size
117
+
118
+ assert_nil args.double_slash_index
119
+ end
120
+
121
+ def test_three_flags
122
+
123
+ args = CLASP::Arguments.new([ '-f1', '--flag2', '---x' ])
124
+
125
+ assert_equal 3, args.flags.size
126
+ assert_equal 0, args.flags[0].given_index
127
+ assert_equal '-f1', args.flags[0].to_s
128
+ assert_equal '-f1', args.flags[0].name
129
+ assert_equal 'f1', args.flags[0].given_label
130
+ assert_equal '-f1', args.flags[0].given_name
131
+ assert_equal 1, args.flags[0].given_hyphens
132
+ assert_nil args.flags[0].argument_specification
133
+ assert_equal Hash.new, args.flags[0].extras
134
+ assert_equal 1, args.flags[1].given_index
135
+ assert_equal '--flag2', args.flags[1].to_s
136
+ assert_equal '--flag2', args.flags[1].name
137
+ assert_equal 'flag2', args.flags[1].given_label
138
+ assert_equal '--flag2', args.flags[1].given_name
139
+ assert_equal 2, args.flags[1].given_hyphens
140
+ assert_nil args.flags[1].argument_specification
141
+ assert_equal Hash.new, args.flags[1].extras
142
+ assert_equal 2, args.flags[2].given_index
143
+ assert_equal '---x', args.flags[2].to_s
144
+ assert_equal '---x', args.flags[2].name
145
+ assert_equal 'x', args.flags[2].given_label
146
+ assert_equal '---x', args.flags[2].given_name
147
+ assert_equal 3, args.flags[2].given_hyphens
148
+ assert_nil args.flags[2].argument_specification
149
+ assert_equal Hash.new, args.flags[2].extras
150
+
151
+ assert_equal 0, args.options.size
152
+
153
+ assert_equal 0, args.values.size
154
+
155
+ assert_nil args.double_slash_index
156
+ end
157
+
158
+ def test_one_option
159
+
160
+ args = CLASP::Arguments.new([ '-o1=v1' ])
161
+
162
+ assert_equal 0, args.flags.size
163
+
164
+ assert_equal 1, args.options.size
165
+ assert_equal 0, args.options[0].given_index
166
+ assert_equal '-o1=v1', args.options[0].to_s
167
+ assert_equal '-o1', args.options[0].name
168
+ assert_equal 'o1', args.options[0].given_label
169
+ assert_equal 'v1', args.options[0].value
170
+ assert_equal '-o1', args.options[0].given_name
171
+ assert_equal 1, args.options[0].given_hyphens
172
+ assert_nil args.options[0].argument_specification
173
+ assert_equal Hash.new, args.options[0].extras
174
+
175
+ assert_equal 0, args.values.size
176
+
177
+ assert_nil args.double_slash_index
178
+ end
179
+
180
+ def test_two_options
181
+
182
+ args = CLASP::Arguments.new([ '-o1=v1', '--option2=value2' ])
183
+
184
+ assert_equal 0, args.flags.size
185
+
186
+ assert_equal 2, args.options.size
187
+ assert_equal '-o1=v1', args.options[0].to_s
188
+ assert_equal '-o1', args.options[0].name
189
+ assert_equal 'o1', args.options[0].given_label
190
+ assert_equal 'v1', args.options[0].value
191
+ assert_equal '-o1', args.options[0].given_name
192
+ assert_equal 1, args.options[0].given_hyphens
193
+ assert_nil args.options[0].argument_specification
194
+ assert_equal Hash.new, args.options[0].extras
195
+ assert_equal '--option2=value2', args.options[1].to_s
196
+ assert_equal '--option2', args.options[1].name
197
+ assert_equal 'option2', args.options[1].given_label
198
+ assert_equal 'value2', args.options[1].value
199
+ assert_equal '--option2', args.options[1].given_name
200
+ assert_equal 2, args.options[1].given_hyphens
201
+ assert_nil args.options[1].argument_specification
202
+ assert_equal Hash.new, args.options[1].extras
203
+
204
+ assert_equal 0, args.values.size
205
+
206
+ assert_nil args.double_slash_index
207
+ end
208
+
209
+ def test_three_options
210
+
211
+ args = CLASP::Arguments.new([ '-o1=v1', '--option2=value2', '---the-third-option=the third value' ])
212
+
213
+ assert_equal 0, args.flags.size
214
+
215
+ assert_equal 3, args.options.size
216
+ assert_equal '-o1=v1', args.options[0].to_s
217
+ assert_equal '-o1', args.options[0].name
218
+ assert_equal 'o1', args.options[0].given_label
219
+ assert_equal 'v1', args.options[0].value
220
+ assert_equal '-o1', args.options[0].given_name
221
+ assert_equal 1, args.options[0].given_hyphens
222
+ assert_nil args.options[0].argument_specification
223
+ assert_equal Hash.new, args.options[0].extras
224
+ assert_equal '--option2=value2', args.options[1].to_s
225
+ assert_equal '--option2', args.options[1].name
226
+ assert_equal 'option2', args.options[1].given_label
227
+ assert_equal 'value2', args.options[1].value
228
+ assert_equal '--option2', args.options[1].given_name
229
+ assert_equal 2, args.options[1].given_hyphens
230
+ assert_nil args.options[1].argument_specification
231
+ assert_equal Hash.new, args.options[1].extras
232
+ assert_equal '---the-third-option=the third value', args.options[2].to_s
233
+ assert_equal '---the-third-option', args.options[2].name
234
+ assert_equal 'the-third-option', args.options[2].given_label
235
+ assert_equal 'the third value', args.options[2].value
236
+ assert_equal '---the-third-option', args.options[2].given_name
237
+ assert_equal 3, args.options[2].given_hyphens
238
+ assert_nil args.options[2].argument_specification
239
+ assert_equal Hash.new, args.options[2].extras
240
+
241
+ assert_equal 0, args.values.size
242
+
243
+ assert_nil args.double_slash_index
244
+ end
245
+
246
+ def test_one_flag_and_one_option_and_one_value
247
+
248
+ args = CLASP::Arguments.new [ '-f1', 'value1', '--first-option=val1' ]
249
+
250
+ assert_equal 1, args.flags.size
251
+ assert_equal '-f1', args.flags[0].to_s
252
+ assert_equal '-f1', args.flags[0].name
253
+ assert_equal 'f1', args.flags[0].given_label
254
+ assert_equal '-f1', args.flags[0].given_name
255
+ assert_equal 1, args.flags[0].given_hyphens
256
+ assert_nil args.flags[0].argument_specification
257
+ assert_equal Hash.new, args.flags[0].extras
258
+
259
+ assert_equal 1, args.options.size
260
+ assert_equal '--first-option=val1', args.options[0].to_s
261
+ assert_equal '--first-option', args.options[0].name
262
+ assert_equal 'first-option', args.options[0].given_label
263
+ assert_equal 'val1', args.options[0].value
264
+ assert_equal '--first-option', args.options[0].given_name
265
+ assert_equal 2, args.options[0].given_hyphens
266
+ assert_equal Hash.new, args.options[0].extras
267
+
268
+ assert_equal 1, args.values.size
269
+ assert_equal 'value1', args.values[0]
270
+
271
+ assert_nil args.double_slash_index
272
+ end
273
+
274
+ def test_double_hyphen_1
275
+
276
+ args = CLASP::Arguments.new [ '-f1', 'value1', '--', '-f2' ]
277
+
278
+ assert_equal 1, args.flags.size
279
+ assert_equal '-f1', args.flags[0].to_s
280
+ assert_equal '-f1', args.flags[0].name
281
+ assert_equal 'f1', args.flags[0].given_label
282
+ assert_equal '-f1', args.flags[0].given_name
283
+ assert_equal 1, args.flags[0].given_hyphens
284
+ assert_nil args.flags[0].argument_specification
285
+ assert_equal Hash.new, args.flags[0].extras
286
+
287
+ assert_equal 0, args.options.size
288
+
289
+ assert_equal 2, args.values.size
290
+ assert_equal 'value1', args.values[0]
291
+ assert_equal '-f2', args.values[1]
292
+
293
+ assert_equal 2, args.double_slash_index
294
+ end
295
+
296
+ def test_double_hyphen_2
297
+
298
+ args = CLASP::Arguments.new [ '-f1', 'value1', '--', '-f2', '--', '--option1=v1' ]
299
+
300
+ assert_equal 1, args.flags.size
301
+ assert_equal '-f1', args.flags[0].to_s
302
+ assert_equal '-f1', args.flags[0].name
303
+ assert_equal 'f1', args.flags[0].given_label
304
+ assert_equal '-f1', args.flags[0].given_name
305
+ assert_equal 1, args.flags[0].given_hyphens
306
+ assert_nil args.flags[0].argument_specification
307
+ assert_equal Hash.new, args.flags[0].extras
308
+
309
+ assert_equal 0, args.options.size
310
+
311
+ assert_equal 4, args.values.size
312
+ assert_equal 'value1', args.values[0]
313
+ assert_equal '-f2', args.values[1]
314
+ assert_equal '--', args.values[2]
315
+ assert_equal '--option1=v1', args.values[3]
316
+
317
+ assert_equal 2, args.double_slash_index
318
+ end
319
+
320
+ def test_double_hyphen_3
321
+
322
+ specifications = [
323
+
324
+ CLASP.Option('--password', alias: '-p', extras: 'extra'),
325
+ ]
326
+ args = CLASP::Arguments.new [ '-f1', 'value1', '-p', '--', 'value2' ], specifications
327
+
328
+ assert_equal 1, args.flags.size
329
+ assert_equal '-f1', args.flags[0].to_s
330
+ assert_equal '-f1', args.flags[0].name
331
+ assert_equal 'f1', args.flags[0].given_label
332
+ assert_equal '-f1', args.flags[0].given_name
333
+ assert_equal 1, args.flags[0].given_hyphens
334
+ assert_nil args.flags[0].argument_specification
335
+ assert_equal Hash.new, args.flags[0].extras
336
+
337
+ assert_equal 1, args.options.size
338
+ assert_equal '--password=', args.options[0].to_s
339
+ assert_equal '--password', args.options[0].name
340
+ assert_equal 'p', args.options[0].given_label
341
+ assert_nil args.options[0].value
342
+ assert_equal '-p', args.options[0].given_name
343
+ assert_equal 1, args.options[0].given_hyphens
344
+ assert_equal 'extra', args.options[0].extras
345
+
346
+ assert_equal 2, args.values.size
347
+ assert_equal 'value1', args.values[0]
348
+ assert_equal 'value2', args.values[1]
349
+
350
+ assert_equal 3, args.double_slash_index
351
+ end
352
+
353
+ def test_flag_specifications_1
354
+
355
+ specifications = [
356
+ ]
357
+ args = CLASP::Arguments.new [ '-f1', 'value1', '-x', '--delete' ], specifications
358
+
359
+ assert_equal 3, args.flags.size
360
+ assert_equal '-f1', args.flags[0].to_s
361
+ assert_equal '-f1', args.flags[0].name
362
+ assert_equal 'f1', args.flags[0].given_label
363
+ assert_equal '-f1', args.flags[0].given_name
364
+ assert_equal 1, args.flags[0].given_hyphens
365
+ assert_nil args.flags[0].argument_specification
366
+ assert_equal Hash.new, args.flags[0].extras
367
+ assert_equal '-x', args.flags[1].to_s
368
+ assert_equal '-x', args.flags[1].name
369
+ assert_equal 'x', args.flags[1].given_label
370
+ assert_equal '-x', args.flags[1].given_name
371
+ assert_equal 1, args.flags[1].given_hyphens
372
+ assert_nil args.flags[1].argument_specification
373
+ assert_equal Hash.new, args.flags[1].extras
374
+ assert_equal '--delete', args.flags[2].to_s
375
+ assert_equal '--delete', args.flags[2].name
376
+ assert_equal 'delete', args.flags[2].given_label
377
+ assert_equal '--delete', args.flags[2].given_name
378
+ assert_equal 2, args.flags[2].given_hyphens
379
+ assert_nil args.flags[2].argument_specification
380
+ assert_equal Hash.new, args.flags[2].extras
381
+
382
+ assert_equal 0, args.options.size
383
+
384
+ assert_equal 1, args.values.size
385
+ assert_equal 'value1', args.values[0]
386
+
387
+ assert_nil args.double_slash_index
388
+ end
389
+
390
+ def test_flag_specifications_2
391
+
392
+ specifications = [
393
+
394
+ CLASP.Flag('--expand', alias: '-x')
395
+ ]
396
+ args = CLASP::Arguments.new [ '-f1', 'value1', '-x', '--delete' ], specifications
397
+
398
+ assert_equal 3, args.flags.size
399
+ assert_equal '-f1', args.flags[0].to_s
400
+ assert_equal '-f1', args.flags[0].name
401
+ assert_equal 'f1', args.flags[0].given_label
402
+ assert_equal '-f1', args.flags[0].given_name
403
+ assert_equal 1, args.flags[0].given_hyphens
404
+ assert_nil args.flags[0].argument_specification
405
+ assert_equal Hash.new, args.flags[0].extras
406
+ assert_equal '--expand', args.flags[1].to_s
407
+ assert_equal '--expand', args.flags[1].name
408
+ assert_equal 'x', args.flags[1].given_label
409
+ assert_equal '-x', args.flags[1].given_name
410
+ assert_equal 1, args.flags[1].given_hyphens
411
+ assert_equal specifications[0], args.flags[1].argument_specification
412
+ assert_equal Hash.new, args.flags[1].extras
413
+ assert_equal '--delete', args.flags[2].to_s
414
+ assert_equal '--delete', args.flags[2].name
415
+ assert_equal 'delete', args.flags[2].given_label
416
+ assert_equal '--delete', args.flags[2].given_name
417
+ assert_equal 2, args.flags[2].given_hyphens
418
+ assert_nil args.flags[2].argument_specification
419
+ assert_equal Hash.new, args.flags[2].extras
420
+
421
+ assert_equal 0, args.options.size
422
+
423
+ assert_equal 1, args.values.size
424
+ assert_equal 'value1', args.values[0]
425
+
426
+ assert_nil args.double_slash_index
427
+ end
428
+
429
+ def test_flag_specifications_3
430
+
431
+ specifications = [
432
+
433
+ CLASP.Flag('--expand', aliases: [ '-x', '--x' ], extras: %w{ e x t r a })
434
+ ]
435
+ args = CLASP::Arguments.new [ '-f1', 'value1', '-x', '--delete', '--x' ], specifications
436
+
437
+ assert_equal 4, args.flags.size
438
+ assert_equal '-f1', args.flags[0].to_s
439
+ assert_equal '-f1', args.flags[0].name
440
+ assert_equal 'f1', args.flags[0].given_label
441
+ assert_equal '-f1', args.flags[0].given_name
442
+ assert_equal 1, args.flags[0].given_hyphens
443
+ assert_nil args.flags[0].argument_specification
444
+ assert_equal Hash.new, args.flags[0].extras
445
+ assert_equal '--expand', args.flags[1].to_s
446
+ assert_equal '--expand', args.flags[1].name
447
+ assert_equal 'x', args.flags[1].given_label
448
+ assert_equal '-x', args.flags[1].given_name
449
+ assert_equal 1, args.flags[1].given_hyphens
450
+ assert_equal specifications[0], args.flags[1].argument_specification
451
+ assert_equal [ 'e', 'x', 't', 'r', 'a' ], args.flags[1].extras
452
+ assert_equal '--delete', args.flags[2].to_s
453
+ assert_equal '--delete', args.flags[2].name
454
+ assert_equal 'delete', args.flags[2].given_label
455
+ assert_equal '--delete', args.flags[2].given_name
456
+ assert_equal 2, args.flags[2].given_hyphens
457
+ assert_nil args.flags[2].argument_specification
458
+ assert_equal Hash.new, args.flags[2].extras
459
+ assert_equal '--expand', args.flags[3].to_s
460
+ assert_equal '--expand', args.flags[3].name
461
+ assert_equal 'x', args.flags[3].given_label
462
+ assert_equal '--x', args.flags[3].given_name
463
+ assert_equal 2, args.flags[3].given_hyphens
464
+ assert_equal specifications[0], args.flags[3].argument_specification
465
+ assert_equal [ 'e', 'x', 't', 'r', 'a' ], args.flags[3].extras
466
+
467
+ assert_equal 0, args.options.size
468
+
469
+ assert_equal 1, args.values.size
470
+ assert_equal 'value1', args.values[0]
471
+
472
+ assert_nil args.double_slash_index
473
+ end
474
+
475
+ def test_option_specifications_1
476
+
477
+ specifications = [
478
+ ]
479
+ args = CLASP::Arguments.new [ '-f1', 'value1', '-o=value' ], specifications
480
+
481
+ assert_equal 1, args.flags.size
482
+ assert_equal '-f1', args.flags[0].to_s
483
+ assert_equal '-f1', args.flags[0].name
484
+ assert_equal 'f1', args.flags[0].given_label
485
+ assert_equal '-f1', args.flags[0].given_name
486
+ assert_equal 1, args.flags[0].given_hyphens
487
+ assert_equal Hash.new, args.flags[0].extras
488
+
489
+ assert_equal 1, args.options.size
490
+ assert_equal '-o=value', args.options[0].to_s
491
+ assert_equal '-o', args.options[0].name
492
+ assert_equal 'o', args.options[0].given_label
493
+ assert_equal 'value', args.options[0].value
494
+ assert_equal '-o', args.options[0].given_name
495
+ assert_equal 1, args.options[0].given_hyphens
496
+ assert_equal Hash.new, args.options[0].extras
497
+
498
+ assert_equal 1, args.values.size
499
+ assert_equal 'value1', args.values[0]
500
+
501
+ assert_nil args.double_slash_index
502
+ end
503
+
504
+ def test_option_specifications_2
505
+
506
+ specifications = [
507
+
508
+ CLASP.Option('--option', aliases: [ '-o' ])
509
+ ]
510
+ args = CLASP::Arguments.new [ '-f1', 'value1', '-o=value' ], specifications
511
+
512
+ assert_equal 1, args.flags.size
513
+ assert_equal '-f1', args.flags[0].to_s
514
+ assert_equal '-f1', args.flags[0].name
515
+ assert_equal 'f1', args.flags[0].given_label
516
+ assert_equal '-f1', args.flags[0].given_name
517
+ assert_equal 1, args.flags[0].given_hyphens
518
+ assert_equal Hash.new, args.flags[0].extras
519
+
520
+ assert_equal 1, args.options.size
521
+ assert_equal '--option=value', args.options[0].to_s
522
+ assert_equal '--option', args.options[0].name
523
+ assert_equal 'o', args.options[0].given_label
524
+ assert_equal 'value', args.options[0].value
525
+ assert_equal '-o', args.options[0].given_name
526
+ assert_equal 1, args.options[0].given_hyphens
527
+ assert_equal Hash.new, args.options[0].extras
528
+
529
+ assert_equal 1, args.values.size
530
+ assert_equal 'value1', args.values[0]
531
+
532
+ assert_nil args.double_slash_index
533
+ end
534
+
535
+ def test_option_specifications_3
536
+
537
+ specifications = [
538
+
539
+ CLASP.Option('--option', aliases: [ '-o' ])
540
+ ]
541
+ args = CLASP::Arguments.new [ '-f1', 'value1', '-o', 'value' ], specifications
542
+
543
+ assert_equal 1, args.flags.size
544
+ assert_equal '-f1', args.flags[0].to_s
545
+ assert_equal '-f1', args.flags[0].name
546
+ assert_equal 'f1', args.flags[0].given_label
547
+ assert_equal '-f1', args.flags[0].given_name
548
+ assert_equal 1, args.flags[0].given_hyphens
549
+ assert_equal Hash.new, args.flags[0].extras
550
+
551
+ assert_equal 1, args.options.size
552
+ assert_equal '--option=value', args.options[0].to_s
553
+ assert_equal '--option', args.options[0].name
554
+ assert_equal 'o', args.options[0].given_label
555
+ assert_equal 'value', args.options[0].value
556
+ assert_equal '-o', args.options[0].given_name
557
+ assert_equal 1, args.options[0].given_hyphens
558
+ assert_equal Hash.new, args.options[0].extras
559
+ assert_equal specifications[0], args.options[0].argument_specification
560
+
561
+ assert_equal 1, args.values.size
562
+ assert_equal 'value1', args.values[0]
563
+
564
+ assert_nil args.double_slash_index
565
+ end
566
+
567
+ def test_option_default_specifications_1
568
+
569
+ specifications = [
570
+
571
+ CLASP.Option('--option', aliases: [ '-o' ]),
572
+ CLASP.Option('--option=special-value', alias: '-s')
573
+ ]
574
+ args = CLASP::Arguments.new [ '-f1', 'value1', '-o', 'value', '-s', '-s=explicit-value' ], specifications
575
+
576
+ assert_equal 1, args.flags.size
577
+ assert_equal '-f1', args.flags[0].to_s
578
+ assert_equal '-f1', args.flags[0].name
579
+ assert_equal 'f1', args.flags[0].given_label
580
+ assert_equal '-f1', args.flags[0].given_name
581
+ assert_equal 1, args.flags[0].given_hyphens
582
+ assert_equal Hash.new, args.flags[0].extras
583
+
584
+ assert_equal 3, args.options.size
585
+ assert_equal 2, args.options[0].given_index
586
+ assert_equal '--option=value', args.options[0].to_s
587
+ assert_equal '--option', args.options[0].name
588
+ assert_equal 'o', args.options[0].given_label
589
+ assert_equal 'value', args.options[0].value
590
+ assert_equal '-o', args.options[0].given_name
591
+ assert_equal 1, args.options[0].given_hyphens
592
+ assert_equal Hash.new, args.options[0].extras
593
+ assert_equal specifications[0], args.options[0].argument_specification
594
+ assert_equal 4, args.options[1].given_index
595
+ assert_equal '--option=special-value', args.options[1].to_s
596
+ assert_equal '--option', args.options[1].name
597
+ assert_equal 's', args.options[1].given_label
598
+ assert_equal 'special-value', args.options[1].value
599
+ assert_equal '-s', args.options[1].given_name
600
+ assert_equal 1, args.options[1].given_hyphens
601
+ assert_equal Hash.new, args.options[1].extras
602
+ assert_equal specifications[0], args.options[1].argument_specification
603
+ assert_equal 5, args.options[2].given_index
604
+ assert_equal '--option=explicit-value', args.options[2].to_s
605
+ assert_equal '--option', args.options[2].name
606
+ assert_equal 's', args.options[2].given_label
607
+ assert_equal 'explicit-value', args.options[2].value
608
+ assert_equal '-s', args.options[2].given_name
609
+ assert_equal 1, args.options[2].given_hyphens
610
+ assert_equal Hash.new, args.options[2].extras
611
+ assert_equal specifications[0], args.options[2].argument_specification
612
+
613
+ assert_equal 1, args.values.size
614
+ assert_equal 'value1', args.values[0]
615
+
616
+ assert_nil args.double_slash_index
617
+ end
618
+
619
+ def test_option_default_specifications_2
620
+
621
+ specifications = [
622
+
623
+ CLASP.Option('--option', aliases: [ '-o' ]),
624
+ CLASP.Flag('--option=special-value', alias: '-s'),
625
+ CLASP.Flag('--verbose', alias: '-v'),
626
+ ]
627
+ args = CLASP::Arguments.new [ '-f1', 'value1', '-o', 'value', '-sv', '-s=explicit-value' ], specifications
628
+
629
+ assert_equal 2, args.flags.size
630
+ flag = args.flags[0]
631
+ assert_equal '-f1', flag.to_s
632
+ assert_equal '-f1', flag.name
633
+ assert_equal 'f1', flag.given_label
634
+ assert_equal '-f1', flag.given_name
635
+ assert_equal 1, flag.given_hyphens
636
+ assert_equal Hash.new, flag.extras
637
+ assert_equal 0, flag.given_index
638
+ flag = args.flags[1]
639
+ assert_equal '--verbose', flag.to_s
640
+ assert_equal '--verbose', flag.name
641
+ assert_equal 'sv', flag.given_label
642
+ assert_equal '-sv', flag.given_name
643
+ assert_equal 1, flag.given_hyphens
644
+ assert_equal Hash.new, flag.extras
645
+ assert_equal 4, flag.given_index
646
+
647
+ assert_equal 3, args.options.size
648
+ option = args.options[0]
649
+ assert_equal '--option=value', option.to_s
650
+ assert_equal '--option', option.name
651
+ assert_equal 'o', option.given_label
652
+ assert_equal 'value', option.value
653
+ assert_equal '-o', option.given_name
654
+ assert_equal 1, option.given_hyphens
655
+ assert_equal Hash.new, option.extras
656
+ assert_equal 2, option.given_index
657
+ option = args.options[1]
658
+ assert_equal '--option=special-value', option.to_s
659
+ assert_equal '--option', option.name
660
+ assert_equal 'sv', option.given_label
661
+ assert_equal 'special-value', option.value
662
+ assert_equal '-sv', option.given_name
663
+ assert_equal 1, option.given_hyphens
664
+ assert_equal Hash.new, option.extras
665
+ assert_equal 4, option.given_index
666
+ option = args.options[2]
667
+ assert_equal '--option=explicit-value', option.to_s
668
+ assert_equal '--option', option.name
669
+ assert_equal 's', option.given_label
670
+ assert_equal 'explicit-value', option.value
671
+ assert_equal '-s', option.given_name
672
+ assert_equal 1, option.given_hyphens
673
+ assert_equal Hash.new, option.extras
674
+ assert_equal 5, option.given_index
675
+
676
+ assert_equal 1, args.values.size
677
+ assert_equal 'value1', args.values[0]
678
+
679
+ assert_nil args.double_slash_index
680
+ end
681
+
682
+ def test_option_default_specifications_3
683
+
684
+ specifications = [
685
+
686
+ CLASP.Option('--option', aliases: [ '-o' ]),
687
+ CLASP.Flag('--option=special-value', alias: '-s'),
688
+ CLASP.Flag('-v'),
689
+ ]
690
+ args = CLASP::Arguments.new [ '-f1', 'value1', '-o', 'value', '-sv', '-s=explicit-value' ], specifications
691
+
692
+ assert_equal 2, args.flags.size
693
+ flag = args.flags[0]
694
+ assert_equal '-f1', flag.to_s
695
+ assert_equal '-f1', flag.name
696
+ assert_equal 'f1', flag.given_label
697
+ assert_equal '-f1', flag.given_name
698
+ assert_equal 1, flag.given_hyphens
699
+ assert_equal Hash.new, flag.extras
700
+ assert_equal 0, flag.given_index
701
+ flag = args.flags[1]
702
+ assert_equal '-v', flag.to_s
703
+ assert_equal '-v', flag.name
704
+ assert_equal 'sv', flag.given_label
705
+ assert_equal '-sv', flag.given_name
706
+ assert_equal 1, flag.given_hyphens
707
+ assert_equal Hash.new, flag.extras
708
+ assert_equal 4, flag.given_index
709
+
710
+ assert_equal 3, args.options.size
711
+ option = args.options[0]
712
+ assert_equal '--option=value', option.to_s
713
+ assert_equal '--option', option.name
714
+ assert_equal 'o', option.given_label
715
+ assert_equal 'value', option.value
716
+ assert_equal '-o', option.given_name
717
+ assert_equal 1, option.given_hyphens
718
+ assert_equal Hash.new, option.extras
719
+ assert_equal 2, option.given_index
720
+ option = args.options[1]
721
+ assert_equal '--option=special-value', option.to_s
722
+ assert_equal '--option', option.name
723
+ assert_equal 'sv', option.given_label
724
+ assert_equal 'special-value', option.value
725
+ assert_equal '-sv', option.given_name
726
+ assert_equal 1, option.given_hyphens
727
+ assert_equal Hash.new, option.extras
728
+ assert_equal 4, option.given_index
729
+ option = args.options[2]
730
+ assert_equal '--option=explicit-value', option.to_s
731
+ assert_equal '--option', option.name
732
+ assert_equal 's', option.given_label
733
+ assert_equal 'explicit-value', option.value
734
+ assert_equal '-s', option.given_name
735
+ assert_equal 1, option.given_hyphens
736
+ assert_equal Hash.new, option.extras
737
+ assert_equal 5, option.given_index
738
+
739
+ assert_equal 1, args.values.size
740
+ assert_equal 'value1', args.values[0]
741
+
742
+ assert_nil args.double_slash_index
743
+ end
744
744
  end
745
745