regexp-examples 0.2.1 → 0.2.2
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.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/coverage/.resultset.json +79 -78
- data/coverage/coverage-badge.png +0 -0
- data/coverage/index.html +709 -687
- data/lib/regexp-examples/backreferences.rb +6 -37
- data/lib/regexp-examples/exceptions.rb +5 -0
- data/lib/regexp-examples/groups.rb +36 -10
- data/lib/regexp-examples/helpers.rb +2 -12
- data/lib/regexp-examples/parser.rb +2 -2
- data/lib/regexp-examples/regexp_extensions.rb +4 -6
- data/lib/regexp-examples/version.rb +1 -1
- data/regexp-examples.gemspec +1 -0
- data/spec/regexp-examples_spec.rb +17 -6
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 011ff6be938165b678adc0566c41cb539c4ff077
|
4
|
+
data.tar.gz: 0ec39313bd0b52ac8abf815e99a887d07e7bac5a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6343b46ed69437a8eb136d94737d2e59fc4c1f0ead799304fae09cd6494358e4c59bc25b26235793600ad645fae5eab6a76da6baa426c151eb1bfb59b1d5800e
|
7
|
+
data.tar.gz: 437635215e633f6c126906a157ca9d8274f25c21bcaa3a6d466e602e4fad1e249d8dc9bd2a0bb4dfc1505aef4b723f24460d5953fd128c55ddf6253ab6dc85b9
|
data/README.md
CHANGED
@@ -42,7 +42,7 @@ or a huge number of possible matches, such as `/.\w/`, then only a subset of the
|
|
42
42
|
|
43
43
|
I plan to add the following features to the gem, but have not yet got round to it:
|
44
44
|
|
45
|
-
* Throw exceptions if illegal syntax (see below) is used
|
45
|
+
* Throw exceptions if illegal syntax (see below) is used. This is currently only partially implemented (for lookarounds only).
|
46
46
|
* POSIX bracket expressions, e.g. `/[[:alnum:]]/`, `/[[:space:]]/`
|
47
47
|
* Options, e.g. `/pattern/i`, `/foo.*bar/m`
|
48
48
|
* Escape sequences, e.g. `/\xa1/`
|
data/coverage/.resultset.json
CHANGED
@@ -2,7 +2,14 @@
|
|
2
2
|
"RSpec": {
|
3
3
|
"coverage": {
|
4
4
|
"/home/tom/regexp-examples/lib/regexp-examples.rb": [
|
5
|
-
|
5
|
+
10,
|
6
|
+
null
|
7
|
+
],
|
8
|
+
"/home/tom/regexp-examples/lib/regexp-examples/exceptions.rb": [
|
9
|
+
1,
|
10
|
+
1,
|
11
|
+
1,
|
12
|
+
1,
|
6
13
|
null
|
7
14
|
],
|
8
15
|
"/home/tom/regexp-examples/lib/regexp-examples/helpers.rb": [
|
@@ -20,25 +27,15 @@
|
|
20
27
|
271,
|
21
28
|
164,
|
22
29
|
237,
|
23
|
-
73,
|
24
|
-
null,
|
25
|
-
164,
|
26
|
-
null,
|
27
30
|
null,
|
28
31
|
null,
|
29
32
|
null,
|
30
33
|
1,
|
31
|
-
|
32
|
-
|
33
|
-
328,
|
34
|
-
null,
|
35
|
-
null,
|
34
|
+
237,
|
35
|
+
237,
|
36
36
|
null,
|
37
|
-
164,
|
38
|
-
123,
|
39
|
-
null,
|
40
|
-
41,
|
41
37
|
null,
|
38
|
+
237,
|
42
39
|
null,
|
43
40
|
null,
|
44
41
|
null
|
@@ -48,15 +45,15 @@
|
|
48
45
|
1,
|
49
46
|
1,
|
50
47
|
1,
|
51
|
-
|
52
|
-
|
53
|
-
|
48
|
+
58,
|
49
|
+
58,
|
50
|
+
58,
|
54
51
|
null,
|
55
52
|
null,
|
56
53
|
1,
|
57
|
-
|
58
|
-
|
59
|
-
|
54
|
+
105,
|
55
|
+
105,
|
56
|
+
316,
|
60
57
|
312,
|
61
58
|
271,
|
62
59
|
271,
|
@@ -68,10 +65,10 @@
|
|
68
65
|
1,
|
69
66
|
null,
|
70
67
|
1,
|
71
|
-
|
72
|
-
|
68
|
+
316,
|
69
|
+
316,
|
73
70
|
null,
|
74
|
-
|
71
|
+
45,
|
75
72
|
null,
|
76
73
|
41,
|
77
74
|
null,
|
@@ -127,10 +124,10 @@
|
|
127
124
|
null,
|
128
125
|
null,
|
129
126
|
1,
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
127
|
+
45,
|
128
|
+
45,
|
129
|
+
45,
|
130
|
+
45,
|
134
131
|
null,
|
135
132
|
null,
|
136
133
|
38,
|
@@ -138,13 +135,13 @@
|
|
138
135
|
1,
|
139
136
|
1,
|
140
137
|
null,
|
138
|
+
2,
|
141
139
|
null,
|
142
|
-
|
143
|
-
null,
|
140
|
+
2,
|
144
141
|
null,
|
145
142
|
2,
|
146
143
|
2,
|
147
|
-
|
144
|
+
45,
|
148
145
|
null,
|
149
146
|
41,
|
150
147
|
41,
|
@@ -223,7 +220,7 @@
|
|
223
220
|
null,
|
224
221
|
null,
|
225
222
|
1,
|
226
|
-
|
223
|
+
102,
|
227
224
|
null,
|
228
225
|
null,
|
229
226
|
null,
|
@@ -277,49 +274,18 @@
|
|
277
274
|
1,
|
278
275
|
1,
|
279
276
|
1,
|
280
|
-
1,
|
281
|
-
248,
|
282
|
-
248,
|
283
|
-
248,
|
284
|
-
null,
|
285
|
-
null,
|
286
|
-
1,
|
287
|
-
168,
|
288
|
-
null,
|
289
|
-
null,
|
290
|
-
null,
|
291
|
-
1,
|
292
|
-
79,
|
293
|
-
null,
|
294
|
-
null,
|
295
|
-
1,
|
296
|
-
28,
|
297
|
-
null,
|
298
|
-
null,
|
299
|
-
null,
|
300
|
-
1,
|
301
|
-
1,
|
302
277
|
54,
|
303
278
|
148,
|
304
|
-
130,
|
305
|
-
null,
|
306
|
-
18,
|
307
|
-
112,
|
308
279
|
28,
|
309
280
|
null,
|
281
|
+
148,
|
310
282
|
null,
|
311
283
|
null,
|
312
284
|
null,
|
313
|
-
54,
|
314
|
-
null,
|
315
|
-
null,
|
316
285
|
1,
|
317
286
|
1,
|
318
287
|
28,
|
319
|
-
|
320
|
-
74,
|
321
|
-
77,
|
322
|
-
null,
|
288
|
+
76,
|
323
289
|
null,
|
324
290
|
null,
|
325
291
|
null,
|
@@ -409,6 +375,31 @@
|
|
409
375
|
],
|
410
376
|
"/home/tom/regexp-examples/lib/regexp-examples/groups.rb": [
|
411
377
|
1,
|
378
|
+
null,
|
379
|
+
null,
|
380
|
+
null,
|
381
|
+
1,
|
382
|
+
1,
|
383
|
+
1,
|
384
|
+
1633,
|
385
|
+
1633,
|
386
|
+
1633,
|
387
|
+
122,
|
388
|
+
null,
|
389
|
+
1633,
|
390
|
+
null,
|
391
|
+
null,
|
392
|
+
1,
|
393
|
+
1667,
|
394
|
+
null,
|
395
|
+
null,
|
396
|
+
null,
|
397
|
+
null,
|
398
|
+
1,
|
399
|
+
413,
|
400
|
+
null,
|
401
|
+
null,
|
402
|
+
null,
|
412
403
|
1,
|
413
404
|
1,
|
414
405
|
175,
|
@@ -463,9 +454,7 @@
|
|
463
454
|
null,
|
464
455
|
1,
|
465
456
|
28,
|
466
|
-
|
467
|
-
null,
|
468
|
-
27,
|
457
|
+
572,
|
469
458
|
null,
|
470
459
|
null,
|
471
460
|
null,
|
@@ -473,6 +462,8 @@
|
|
473
462
|
1,
|
474
463
|
1,
|
475
464
|
1,
|
465
|
+
94,
|
466
|
+
null,
|
476
467
|
null,
|
477
468
|
null,
|
478
469
|
null,
|
@@ -490,7 +481,6 @@
|
|
490
481
|
186,
|
491
482
|
41,
|
492
483
|
101,
|
493
|
-
101,
|
494
484
|
null,
|
495
485
|
null,
|
496
486
|
null,
|
@@ -512,6 +502,8 @@
|
|
512
502
|
6,
|
513
503
|
null,
|
514
504
|
6,
|
505
|
+
21,
|
506
|
+
null,
|
515
507
|
null,
|
516
508
|
null,
|
517
509
|
null,
|
@@ -532,15 +524,13 @@
|
|
532
524
|
1,
|
533
525
|
1,
|
534
526
|
1,
|
535
|
-
|
527
|
+
58,
|
536
528
|
null,
|
537
529
|
null,
|
538
530
|
114,
|
539
531
|
54,
|
540
532
|
54,
|
541
533
|
null,
|
542
|
-
54,
|
543
|
-
null,
|
544
534
|
null,
|
545
535
|
1,
|
546
536
|
null,
|
@@ -564,6 +554,14 @@
|
|
564
554
|
null,
|
565
555
|
1,
|
566
556
|
1,
|
557
|
+
4,
|
558
|
+
8,
|
559
|
+
null,
|
560
|
+
null,
|
561
|
+
null,
|
562
|
+
null,
|
563
|
+
1,
|
564
|
+
1,
|
567
565
|
1,
|
568
566
|
null,
|
569
567
|
null,
|
@@ -610,12 +608,6 @@
|
|
610
608
|
null,
|
611
609
|
null,
|
612
610
|
null,
|
613
|
-
null,
|
614
|
-
null,
|
615
|
-
null,
|
616
|
-
null,
|
617
|
-
null,
|
618
|
-
null,
|
619
611
|
1,
|
620
612
|
1,
|
621
613
|
null,
|
@@ -659,9 +651,18 @@
|
|
659
651
|
null,
|
660
652
|
null,
|
661
653
|
null,
|
654
|
+
1,
|
655
|
+
1,
|
656
|
+
null,
|
657
|
+
null,
|
658
|
+
null,
|
659
|
+
null,
|
660
|
+
null,
|
661
|
+
null,
|
662
|
+
null,
|
662
663
|
null
|
663
664
|
]
|
664
665
|
},
|
665
|
-
"timestamp":
|
666
|
+
"timestamp": 1421316594
|
666
667
|
}
|
667
668
|
}
|
data/coverage/coverage-badge.png
CHANGED
Binary file
|
data/coverage/index.html
CHANGED
@@ -14,7 +14,7 @@
|
|
14
14
|
<img src="./assets/0.8.0/loading.gif" alt="loading"/>
|
15
15
|
</div>
|
16
16
|
<div id="wrapper" style="display:none;">
|
17
|
-
<div class="timestamp">Generated <abbr class="timeago" title="2015-01-
|
17
|
+
<div class="timestamp">Generated <abbr class="timeago" title="2015-01-15T10:09:55+00:00">2015-01-15T10:09:55+00:00</abbr></div>
|
18
18
|
<ul class="group_tabs"></ul>
|
19
19
|
|
20
20
|
<div id="content">
|
@@ -25,15 +25,15 @@
|
|
25
25
|
covered at
|
26
26
|
<span class="covered_strength">
|
27
27
|
<span class="green">
|
28
|
-
|
28
|
+
75.39
|
29
29
|
</span>
|
30
30
|
</span> hits/line)
|
31
31
|
</h2>
|
32
32
|
<a name="AllFiles"></a>
|
33
33
|
<div>
|
34
|
-
<b>
|
35
|
-
<b>
|
36
|
-
<span class="green"><b>
|
34
|
+
<b>10</b> files in total.
|
35
|
+
<b>298</b> relevant lines.
|
36
|
+
<span class="green"><b>298</b> lines covered</span> and
|
37
37
|
<span class="red"><b>0</b> lines missed </span>
|
38
38
|
</div>
|
39
39
|
<table class="file_list">
|
@@ -57,17 +57,17 @@
|
|
57
57
|
<td>1</td>
|
58
58
|
<td>1</td>
|
59
59
|
<td>0</td>
|
60
|
-
<td>
|
60
|
+
<td>10.0</td>
|
61
61
|
</tr>
|
62
62
|
|
63
63
|
<tr>
|
64
64
|
<td class="strong"><a href="#29a2a933bc8a3e2979023518566420381fb495fb" class="src_link" title="lib/regexp-examples/backreferences.rb">lib/regexp-examples/backreferences.rb</a></td>
|
65
65
|
<td class="green strong">100.0 %</td>
|
66
|
-
<td>
|
67
|
-
<td>
|
68
|
-
<td>
|
66
|
+
<td>21</td>
|
67
|
+
<td>11</td>
|
68
|
+
<td>11</td>
|
69
69
|
<td>0</td>
|
70
|
-
<td>
|
70
|
+
<td>44.3</td>
|
71
71
|
</tr>
|
72
72
|
|
73
73
|
<tr>
|
@@ -80,44 +80,54 @@
|
|
80
80
|
<td>6.8</td>
|
81
81
|
</tr>
|
82
82
|
|
83
|
+
<tr>
|
84
|
+
<td class="strong"><a href="#1e3a4050d8206287a142d9723d2991d09a3f7a81" class="src_link" title="lib/regexp-examples/exceptions.rb">lib/regexp-examples/exceptions.rb</a></td>
|
85
|
+
<td class="green strong">100.0 %</td>
|
86
|
+
<td>5</td>
|
87
|
+
<td>4</td>
|
88
|
+
<td>4</td>
|
89
|
+
<td>0</td>
|
90
|
+
<td>1.0</td>
|
91
|
+
</tr>
|
92
|
+
|
83
93
|
<tr>
|
84
94
|
<td class="strong"><a href="#00d77fb2e4e21451442e29891ddf88bd05f0fbd7" class="src_link" title="lib/regexp-examples/groups.rb">lib/regexp-examples/groups.rb</a></td>
|
85
95
|
<td class="green strong">100.0 %</td>
|
86
|
-
<td>
|
87
|
-
<td>
|
88
|
-
<td>
|
96
|
+
<td>145</td>
|
97
|
+
<td>77</td>
|
98
|
+
<td>77</td>
|
89
99
|
<td>0</td>
|
90
|
-
<td>
|
100
|
+
<td>146.2</td>
|
91
101
|
</tr>
|
92
102
|
|
93
103
|
<tr>
|
94
104
|
<td class="strong"><a href="#dad3c4bb6458db3261442a9292e1345b41afd730" class="src_link" title="lib/regexp-examples/helpers.rb">lib/regexp-examples/helpers.rb</a></td>
|
95
105
|
<td class="green strong">100.0 %</td>
|
96
|
-
<td>
|
97
|
-
<td>
|
98
|
-
<td>
|
106
|
+
<td>26</td>
|
107
|
+
<td>10</td>
|
108
|
+
<td>10</td>
|
99
109
|
<td>0</td>
|
100
|
-
<td>
|
110
|
+
<td>165.7</td>
|
101
111
|
</tr>
|
102
112
|
|
103
113
|
<tr>
|
104
114
|
<td class="strong"><a href="#e013406b8d61f5ad15d0a3ad7ea7e8e96b6d7254" class="src_link" title="lib/regexp-examples/parser.rb">lib/regexp-examples/parser.rb</a></td>
|
105
115
|
<td class="green strong">100.0 %</td>
|
106
116
|
<td>184</td>
|
107
|
-
<td>
|
108
|
-
<td>
|
117
|
+
<td>104</td>
|
118
|
+
<td>104</td>
|
109
119
|
<td>0</td>
|
110
|
-
<td>54.
|
120
|
+
<td>54.2</td>
|
111
121
|
</tr>
|
112
122
|
|
113
123
|
<tr>
|
114
124
|
<td class="strong"><a href="#0dc204f32cb2876d2238a2aae7dea86ad7f9e679" class="src_link" title="lib/regexp-examples/regexp_extensions.rb">lib/regexp-examples/regexp_extensions.rb</a></td>
|
115
125
|
<td class="green strong">100.0 %</td>
|
116
|
-
<td>
|
117
|
-
<td>
|
118
|
-
<td>
|
126
|
+
<td>14</td>
|
127
|
+
<td>8</td>
|
128
|
+
<td>8</td>
|
119
129
|
<td>0</td>
|
120
|
-
<td>
|
130
|
+
<td>35.5</td>
|
121
131
|
</tr>
|
122
132
|
|
123
133
|
<tr>
|
@@ -133,11 +143,11 @@
|
|
133
143
|
<tr>
|
134
144
|
<td class="strong"><a href="#73ece59f571550448cda013ec330081f40e82321" class="src_link" title="spec/regexp-examples_spec.rb">spec/regexp-examples_spec.rb</a></td>
|
135
145
|
<td class="green strong">100.0 %</td>
|
136
|
-
<td>
|
137
|
-
<td>
|
138
|
-
<td>
|
146
|
+
<td>124</td>
|
147
|
+
<td>28</td>
|
148
|
+
<td>28</td>
|
139
149
|
<td>0</td>
|
140
|
-
<td>
|
150
|
+
<td>14.4</td>
|
141
151
|
</tr>
|
142
152
|
|
143
153
|
</tbody>
|
@@ -170,8 +180,8 @@
|
|
170
180
|
<pre>
|
171
181
|
<ol>
|
172
182
|
|
173
|
-
<li class="covered" data-hits="
|
174
|
-
<span class="hits">
|
183
|
+
<li class="covered" data-hits="10" data-linenumber="1">
|
184
|
+
<span class="hits">10</span>
|
175
185
|
|
176
186
|
<code class="ruby">Dir[File.dirname(__FILE__) + '/regexp-examples/*.rb'].each {|file| require file }</code>
|
177
187
|
</li>
|
@@ -191,8 +201,8 @@
|
|
191
201
|
<h3>lib/regexp-examples/backreferences.rb</h3>
|
192
202
|
<h4><span class="green">100.0 %</span> covered</h4>
|
193
203
|
<div>
|
194
|
-
<b>
|
195
|
-
<span class="green"><b>
|
204
|
+
<b>11</b> relevant lines.
|
205
|
+
<span class="green"><b>11</b> lines covered</span> and
|
196
206
|
<span class="red"><b>0</b> lines missed.</span>
|
197
207
|
</div>
|
198
208
|
</div>
|
@@ -209,304 +219,118 @@
|
|
209
219
|
<li class="covered" data-hits="1" data-linenumber="2">
|
210
220
|
<span class="hits">1</span>
|
211
221
|
|
212
|
-
<code class="ruby"> class CaptureGroupResult < String</code>
|
213
|
-
</li>
|
214
|
-
|
215
|
-
<li class="covered" data-hits="1" data-linenumber="3">
|
216
|
-
<span class="hits">1</span>
|
217
|
-
|
218
|
-
<code class="ruby"> attr_reader :group_id, :subgroups</code>
|
219
|
-
</li>
|
220
|
-
|
221
|
-
<li class="covered" data-hits="1" data-linenumber="4">
|
222
|
-
<span class="hits">1</span>
|
223
|
-
|
224
|
-
<code class="ruby"> def initialize(group_id, subgroups, values)</code>
|
225
|
-
</li>
|
226
|
-
|
227
|
-
<li class="covered" data-hits="248" data-linenumber="5">
|
228
|
-
<span class="hits">248</span>
|
229
|
-
|
230
|
-
<code class="ruby"> @group_id = group_id</code>
|
231
|
-
</li>
|
232
|
-
|
233
|
-
<li class="covered" data-hits="248" data-linenumber="6">
|
234
|
-
<span class="hits">248</span>
|
235
|
-
|
236
|
-
<code class="ruby"> @subgroups = subgroups</code>
|
237
|
-
</li>
|
238
|
-
|
239
|
-
<li class="covered" data-hits="248" data-linenumber="7">
|
240
|
-
<span class="hits">248</span>
|
241
|
-
|
242
|
-
<code class="ruby"> super(values)</code>
|
243
|
-
</li>
|
244
|
-
|
245
|
-
<li class="never" data-hits="" data-linenumber="8">
|
246
|
-
|
247
|
-
|
248
|
-
<code class="ruby"> end</code>
|
249
|
-
</li>
|
250
|
-
|
251
|
-
<li class="never" data-hits="" data-linenumber="9">
|
252
|
-
|
253
|
-
|
254
|
-
<code class="ruby"></code>
|
255
|
-
</li>
|
256
|
-
|
257
|
-
<li class="covered" data-hits="1" data-linenumber="10">
|
258
|
-
<span class="hits">1</span>
|
259
|
-
|
260
|
-
<code class="ruby"> def all_subgroups</code>
|
261
|
-
</li>
|
262
|
-
|
263
|
-
<li class="covered" data-hits="168" data-linenumber="11">
|
264
|
-
<span class="hits">168</span>
|
265
|
-
|
266
|
-
<code class="ruby"> [self, subgroups].flatten</code>
|
267
|
-
</li>
|
268
|
-
|
269
|
-
<li class="never" data-hits="" data-linenumber="12">
|
270
|
-
|
271
|
-
|
272
|
-
<code class="ruby"> end</code>
|
273
|
-
</li>
|
274
|
-
|
275
|
-
<li class="never" data-hits="" data-linenumber="13">
|
276
|
-
|
277
|
-
|
278
|
-
<code class="ruby"></code>
|
279
|
-
</li>
|
280
|
-
|
281
|
-
<li class="never" data-hits="" data-linenumber="14">
|
282
|
-
|
283
|
-
|
284
|
-
<code class="ruby"> # Overridden in order to preserve the @group_id and @subgroups</code>
|
285
|
-
</li>
|
286
|
-
|
287
|
-
<li class="covered" data-hits="1" data-linenumber="15">
|
288
|
-
<span class="hits">1</span>
|
289
|
-
|
290
|
-
<code class="ruby"> def *(int)</code>
|
291
|
-
</li>
|
292
|
-
|
293
|
-
<li class="covered" data-hits="79" data-linenumber="16">
|
294
|
-
<span class="hits">79</span>
|
295
|
-
|
296
|
-
<code class="ruby"> self.class.new(group_id, subgroups, super)</code>
|
297
|
-
</li>
|
298
|
-
|
299
|
-
<li class="never" data-hits="" data-linenumber="17">
|
300
|
-
|
301
|
-
|
302
|
-
<code class="ruby"> end</code>
|
303
|
-
</li>
|
304
|
-
|
305
|
-
<li class="never" data-hits="" data-linenumber="18">
|
306
|
-
|
307
|
-
|
308
|
-
<code class="ruby"> # Overridden in order to preserve the @group_id and @subgroups</code>
|
309
|
-
</li>
|
310
|
-
|
311
|
-
<li class="covered" data-hits="1" data-linenumber="19">
|
312
|
-
<span class="hits">1</span>
|
313
|
-
|
314
|
-
<code class="ruby"> def gsub(regex)</code>
|
315
|
-
</li>
|
316
|
-
|
317
|
-
<li class="covered" data-hits="28" data-linenumber="20">
|
318
|
-
<span class="hits">28</span>
|
319
|
-
|
320
|
-
<code class="ruby"> self.class.new(group_id, subgroups, super)</code>
|
321
|
-
</li>
|
322
|
-
|
323
|
-
<li class="never" data-hits="" data-linenumber="21">
|
324
|
-
|
325
|
-
|
326
|
-
<code class="ruby"> end</code>
|
327
|
-
</li>
|
328
|
-
|
329
|
-
<li class="never" data-hits="" data-linenumber="22">
|
330
|
-
|
331
|
-
|
332
|
-
<code class="ruby"> end</code>
|
333
|
-
</li>
|
334
|
-
|
335
|
-
<li class="never" data-hits="" data-linenumber="23">
|
336
|
-
|
337
|
-
|
338
|
-
<code class="ruby"></code>
|
339
|
-
</li>
|
340
|
-
|
341
|
-
<li class="covered" data-hits="1" data-linenumber="24">
|
342
|
-
<span class="hits">1</span>
|
343
|
-
|
344
222
|
<code class="ruby"> class BackReferenceReplacer</code>
|
345
223
|
</li>
|
346
224
|
|
347
|
-
<li class="covered" data-hits="1" data-linenumber="
|
225
|
+
<li class="covered" data-hits="1" data-linenumber="3">
|
348
226
|
<span class="hits">1</span>
|
349
227
|
|
350
228
|
<code class="ruby"> def substitute_backreferences(full_examples)</code>
|
351
229
|
</li>
|
352
230
|
|
353
|
-
<li class="covered" data-hits="54" data-linenumber="
|
231
|
+
<li class="covered" data-hits="54" data-linenumber="4">
|
354
232
|
<span class="hits">54</span>
|
355
233
|
|
356
|
-
<code class="ruby"> full_examples.map
|
234
|
+
<code class="ruby"> full_examples.map do |full_example|</code>
|
357
235
|
</li>
|
358
236
|
|
359
|
-
<li class="covered" data-hits="148" data-linenumber="
|
237
|
+
<li class="covered" data-hits="148" data-linenumber="5">
|
360
238
|
<span class="hits">148</span>
|
361
239
|
|
362
|
-
<code class="ruby">
|
240
|
+
<code class="ruby"> while full_example.match(/__(\w+?)__/)</code>
|
363
241
|
</li>
|
364
242
|
|
365
|
-
<li class="covered" data-hits="
|
366
|
-
<span class="hits">130</span>
|
367
|
-
|
368
|
-
<code class="ruby"> [full_example]</code>
|
369
|
-
</li>
|
370
|
-
|
371
|
-
<li class="never" data-hits="" data-linenumber="29">
|
372
|
-
|
373
|
-
|
374
|
-
<code class="ruby"> else</code>
|
375
|
-
</li>
|
376
|
-
|
377
|
-
<li class="covered" data-hits="18" data-linenumber="30">
|
378
|
-
<span class="hits">18</span>
|
379
|
-
|
380
|
-
<code class="ruby"> full_example.map! do |partial_example|</code>
|
381
|
-
</li>
|
382
|
-
|
383
|
-
<li class="covered" data-hits="112" data-linenumber="31">
|
384
|
-
<span class="hits">112</span>
|
385
|
-
|
386
|
-
<code class="ruby"> partial_example.gsub(/__(\w+)__/) do |match|</code>
|
387
|
-
</li>
|
388
|
-
|
389
|
-
<li class="covered" data-hits="28" data-linenumber="32">
|
243
|
+
<li class="covered" data-hits="28" data-linenumber="6">
|
390
244
|
<span class="hits">28</span>
|
391
245
|
|
392
|
-
<code class="ruby">
|
393
|
-
</li>
|
394
|
-
|
395
|
-
<li class="never" data-hits="" data-linenumber="33">
|
396
|
-
|
397
|
-
|
398
|
-
<code class="ruby"> end</code>
|
246
|
+
<code class="ruby"> full_example.sub!(/__(\w+?)__/, find_backref_for(full_example, $1))</code>
|
399
247
|
</li>
|
400
248
|
|
401
|
-
<li class="never" data-hits="" data-linenumber="
|
249
|
+
<li class="never" data-hits="" data-linenumber="7">
|
402
250
|
|
403
251
|
|
404
|
-
<code class="ruby">
|
252
|
+
<code class="ruby"> end</code>
|
405
253
|
</li>
|
406
254
|
|
407
|
-
<li class="
|
408
|
-
|
255
|
+
<li class="covered" data-hits="148" data-linenumber="8">
|
256
|
+
<span class="hits">148</span>
|
409
257
|
|
410
|
-
<code class="ruby">
|
258
|
+
<code class="ruby"> full_example</code>
|
411
259
|
</li>
|
412
260
|
|
413
|
-
<li class="never" data-hits="" data-linenumber="
|
261
|
+
<li class="never" data-hits="" data-linenumber="9">
|
414
262
|
|
415
263
|
|
416
264
|
<code class="ruby"> end</code>
|
417
265
|
</li>
|
418
266
|
|
419
|
-
<li class="
|
420
|
-
<span class="hits">54</span>
|
421
|
-
|
422
|
-
<code class="ruby"> full_examples</code>
|
423
|
-
</li>
|
424
|
-
|
425
|
-
<li class="never" data-hits="" data-linenumber="38">
|
267
|
+
<li class="never" data-hits="" data-linenumber="10">
|
426
268
|
|
427
269
|
|
428
270
|
<code class="ruby"> end</code>
|
429
271
|
</li>
|
430
272
|
|
431
|
-
<li class="never" data-hits="" data-linenumber="
|
273
|
+
<li class="never" data-hits="" data-linenumber="11">
|
432
274
|
|
433
275
|
|
434
276
|
<code class="ruby"></code>
|
435
277
|
</li>
|
436
278
|
|
437
|
-
<li class="covered" data-hits="1" data-linenumber="
|
279
|
+
<li class="covered" data-hits="1" data-linenumber="12">
|
438
280
|
<span class="hits">1</span>
|
439
281
|
|
440
282
|
<code class="ruby"> private</code>
|
441
283
|
</li>
|
442
284
|
|
443
|
-
<li class="covered" data-hits="1" data-linenumber="
|
285
|
+
<li class="covered" data-hits="1" data-linenumber="13">
|
444
286
|
<span class="hits">1</span>
|
445
287
|
|
446
288
|
<code class="ruby"> def find_backref_for(full_example, group_id)</code>
|
447
289
|
</li>
|
448
290
|
|
449
|
-
<li class="covered" data-hits="28" data-linenumber="
|
291
|
+
<li class="covered" data-hits="28" data-linenumber="14">
|
450
292
|
<span class="hits">28</span>
|
451
293
|
|
452
|
-
<code class="ruby"> full_example.
|
453
|
-
</li>
|
454
|
-
|
455
|
-
<li class="covered" data-hits="75" data-linenumber="43">
|
456
|
-
<span class="hits">75</span>
|
457
|
-
|
458
|
-
<code class="ruby"> next unless partial_example.respond_to?(:group_id)</code>
|
459
|
-
</li>
|
460
|
-
|
461
|
-
<li class="covered" data-hits="74" data-linenumber="44">
|
462
|
-
<span class="hits">74</span>
|
463
|
-
|
464
|
-
<code class="ruby"> partial_example.all_subgroups.each do |subgroup|</code>
|
294
|
+
<code class="ruby"> full_example.all_subgroups.detect do |subgroup|</code>
|
465
295
|
</li>
|
466
296
|
|
467
|
-
<li class="covered" data-hits="
|
468
|
-
<span class="hits">
|
297
|
+
<li class="covered" data-hits="76" data-linenumber="15">
|
298
|
+
<span class="hits">76</span>
|
469
299
|
|
470
|
-
<code class="ruby">
|
300
|
+
<code class="ruby"> subgroup.group_id == group_id</code>
|
471
301
|
</li>
|
472
302
|
|
473
|
-
<li class="never" data-hits="" data-linenumber="
|
474
|
-
|
475
|
-
|
476
|
-
<code class="ruby"> end</code>
|
477
|
-
</li>
|
478
|
-
|
479
|
-
<li class="never" data-hits="" data-linenumber="47">
|
303
|
+
<li class="never" data-hits="" data-linenumber="16">
|
480
304
|
|
481
305
|
|
482
306
|
<code class="ruby"> end</code>
|
483
307
|
</li>
|
484
308
|
|
485
|
-
<li class="never" data-hits="" data-linenumber="
|
309
|
+
<li class="never" data-hits="" data-linenumber="17">
|
486
310
|
|
487
311
|
|
488
312
|
<code class="ruby"> end</code>
|
489
313
|
</li>
|
490
314
|
|
491
|
-
<li class="never" data-hits="" data-linenumber="
|
315
|
+
<li class="never" data-hits="" data-linenumber="18">
|
492
316
|
|
493
317
|
|
494
318
|
<code class="ruby"></code>
|
495
319
|
</li>
|
496
320
|
|
497
|
-
<li class="never" data-hits="" data-linenumber="
|
321
|
+
<li class="never" data-hits="" data-linenumber="19">
|
498
322
|
|
499
323
|
|
500
324
|
<code class="ruby"> end</code>
|
501
325
|
</li>
|
502
326
|
|
503
|
-
<li class="never" data-hits="" data-linenumber="
|
327
|
+
<li class="never" data-hits="" data-linenumber="20">
|
504
328
|
|
505
329
|
|
506
330
|
<code class="ruby"></code>
|
507
331
|
</li>
|
508
332
|
|
509
|
-
<li class="never" data-hits="" data-linenumber="
|
333
|
+
<li class="never" data-hits="" data-linenumber="21">
|
510
334
|
|
511
335
|
|
512
336
|
<code class="ruby">end</code>
|
@@ -786,13 +610,13 @@
|
|
786
610
|
</pre>
|
787
611
|
</div>
|
788
612
|
|
789
|
-
<div class="source_table" id="
|
613
|
+
<div class="source_table" id="1e3a4050d8206287a142d9723d2991d09a3f7a81">
|
790
614
|
<div class="header">
|
791
|
-
<h3>lib/regexp-examples/
|
615
|
+
<h3>lib/regexp-examples/exceptions.rb</h3>
|
792
616
|
<h4><span class="green">100.0 %</span> covered</h4>
|
793
617
|
<div>
|
794
|
-
<b>
|
795
|
-
<span class="green"><b>
|
618
|
+
<b>4</b> relevant lines.
|
619
|
+
<span class="green"><b>4</b> lines covered</span> and
|
796
620
|
<span class="red"><b>0</b> lines missed.</span>
|
797
621
|
</div>
|
798
622
|
</div>
|
@@ -809,706 +633,910 @@
|
|
809
633
|
<li class="covered" data-hits="1" data-linenumber="2">
|
810
634
|
<span class="hits">1</span>
|
811
635
|
|
812
|
-
<code class="ruby"> class
|
636
|
+
<code class="ruby"> class Error < StandardError; end</code>
|
813
637
|
</li>
|
814
638
|
|
815
639
|
<li class="covered" data-hits="1" data-linenumber="3">
|
816
640
|
<span class="hits">1</span>
|
817
641
|
|
818
|
-
<code class="ruby">
|
642
|
+
<code class="ruby"> class UnsupportedSyntaxError < Error; end</code>
|
819
643
|
</li>
|
820
644
|
|
821
|
-
<li class="covered" data-hits="
|
822
|
-
<span class="hits">
|
645
|
+
<li class="covered" data-hits="1" data-linenumber="4">
|
646
|
+
<span class="hits">1</span>
|
823
647
|
|
824
|
-
<code class="ruby">
|
648
|
+
<code class="ruby"> class IllegalSyntaxError < Error; end</code>
|
825
649
|
</li>
|
826
650
|
|
827
651
|
<li class="never" data-hits="" data-linenumber="5">
|
828
652
|
|
829
653
|
|
830
|
-
<code class="ruby">
|
654
|
+
<code class="ruby">end</code>
|
831
655
|
</li>
|
832
656
|
|
833
|
-
|
657
|
+
</ol>
|
658
|
+
</pre>
|
659
|
+
</div>
|
660
|
+
|
661
|
+
<div class="source_table" id="00d77fb2e4e21451442e29891ddf88bd05f0fbd7">
|
662
|
+
<div class="header">
|
663
|
+
<h3>lib/regexp-examples/groups.rb</h3>
|
664
|
+
<h4><span class="green">100.0 %</span> covered</h4>
|
665
|
+
<div>
|
666
|
+
<b>77</b> relevant lines.
|
667
|
+
<span class="green"><b>77</b> lines covered</span> and
|
668
|
+
<span class="red"><b>0</b> lines missed.</span>
|
669
|
+
</div>
|
670
|
+
</div>
|
671
|
+
|
672
|
+
<pre>
|
673
|
+
<ol>
|
674
|
+
|
675
|
+
<li class="covered" data-hits="1" data-linenumber="1">
|
834
676
|
<span class="hits">1</span>
|
835
677
|
|
836
|
-
<code class="ruby">
|
678
|
+
<code class="ruby">module RegexpExamples</code>
|
837
679
|
</li>
|
838
680
|
|
839
|
-
<li class="
|
840
|
-
|
681
|
+
<li class="never" data-hits="" data-linenumber="2">
|
682
|
+
|
841
683
|
|
842
|
-
<code class="ruby">
|
684
|
+
<code class="ruby"> # All Group#result methods return an array of GroupResult objects</code>
|
843
685
|
</li>
|
844
686
|
|
845
|
-
<li class="never" data-hits="" data-linenumber="
|
687
|
+
<li class="never" data-hits="" data-linenumber="3">
|
846
688
|
|
847
689
|
|
848
|
-
<code class="ruby">
|
690
|
+
<code class="ruby"> # The key objective here is to keep track of all capture groups, in order</code>
|
849
691
|
</li>
|
850
692
|
|
851
|
-
<li class="never" data-hits="" data-linenumber="
|
693
|
+
<li class="never" data-hits="" data-linenumber="4">
|
852
694
|
|
853
695
|
|
854
|
-
<code class="ruby">
|
696
|
+
<code class="ruby"> # to fill in backreferences</code>
|
855
697
|
</li>
|
856
698
|
|
857
|
-
<li class="
|
858
|
-
|
699
|
+
<li class="covered" data-hits="1" data-linenumber="5">
|
700
|
+
<span class="hits">1</span>
|
859
701
|
|
860
|
-
<code class="ruby"
|
702
|
+
<code class="ruby"> class GroupResult < String</code>
|
861
703
|
</li>
|
862
704
|
|
863
|
-
<li class="covered" data-hits="1" data-linenumber="
|
705
|
+
<li class="covered" data-hits="1" data-linenumber="6">
|
864
706
|
<span class="hits">1</span>
|
865
707
|
|
866
|
-
<code class="ruby">
|
708
|
+
<code class="ruby"> attr_reader :group_id, :subgroups</code>
|
867
709
|
</li>
|
868
710
|
|
869
|
-
<li class="covered" data-hits="1" data-linenumber="
|
711
|
+
<li class="covered" data-hits="1" data-linenumber="7">
|
870
712
|
<span class="hits">1</span>
|
871
713
|
|
872
|
-
<code class="ruby"> def initialize(
|
714
|
+
<code class="ruby"> def initialize(result, group_id = nil, subgroups = [])</code>
|
873
715
|
</li>
|
874
716
|
|
875
|
-
<li class="covered" data-hits="
|
876
|
-
<span class="hits">
|
717
|
+
<li class="covered" data-hits="1633" data-linenumber="8">
|
718
|
+
<span class="hits">1633</span>
|
877
719
|
|
878
|
-
<code class="ruby"> @
|
720
|
+
<code class="ruby"> @group_id = group_id</code>
|
879
721
|
</li>
|
880
722
|
|
881
|
-
<li class="covered" data-hits="
|
882
|
-
<span class="hits">
|
723
|
+
<li class="covered" data-hits="1633" data-linenumber="9">
|
724
|
+
<span class="hits">1633</span>
|
883
725
|
|
884
|
-
<code class="ruby">
|
726
|
+
<code class="ruby"> @subgroups = subgroups</code>
|
885
727
|
</li>
|
886
728
|
|
887
|
-
<li class="covered" data-hits="
|
888
|
-
<span class="hits">
|
729
|
+
<li class="covered" data-hits="1633" data-linenumber="10">
|
730
|
+
<span class="hits">1633</span>
|
889
731
|
|
890
|
-
<code class="ruby">
|
732
|
+
<code class="ruby"> if result.respond_to?(:group_id)</code>
|
891
733
|
</li>
|
892
734
|
|
893
|
-
<li class="covered" data-hits="
|
894
|
-
<span class="hits">
|
735
|
+
<li class="covered" data-hits="122" data-linenumber="11">
|
736
|
+
<span class="hits">122</span>
|
895
737
|
|
896
|
-
<code class="ruby"> @
|
738
|
+
<code class="ruby"> @subgroups = result.all_subgroups</code>
|
897
739
|
</li>
|
898
740
|
|
899
|
-
<li class="never" data-hits="" data-linenumber="
|
741
|
+
<li class="never" data-hits="" data-linenumber="12">
|
742
|
+
|
743
|
+
|
744
|
+
<code class="ruby"> end</code>
|
745
|
+
</li>
|
746
|
+
|
747
|
+
<li class="covered" data-hits="1633" data-linenumber="13">
|
748
|
+
<span class="hits">1633</span>
|
749
|
+
|
750
|
+
<code class="ruby"> super(result)</code>
|
751
|
+
</li>
|
752
|
+
|
753
|
+
<li class="never" data-hits="" data-linenumber="14">
|
754
|
+
|
755
|
+
|
756
|
+
<code class="ruby"> end</code>
|
757
|
+
</li>
|
758
|
+
|
759
|
+
<li class="never" data-hits="" data-linenumber="15">
|
760
|
+
|
761
|
+
|
762
|
+
<code class="ruby"></code>
|
763
|
+
</li>
|
764
|
+
|
765
|
+
<li class="covered" data-hits="1" data-linenumber="16">
|
766
|
+
<span class="hits">1</span>
|
767
|
+
|
768
|
+
<code class="ruby"> def all_subgroups</code>
|
769
|
+
</li>
|
770
|
+
|
771
|
+
<li class="covered" data-hits="1667" data-linenumber="17">
|
772
|
+
<span class="hits">1667</span>
|
773
|
+
|
774
|
+
<code class="ruby"> [self, subgroups].flatten.reject { |subgroup| subgroup.group_id.nil? }</code>
|
775
|
+
</li>
|
776
|
+
|
777
|
+
<li class="never" data-hits="" data-linenumber="18">
|
778
|
+
|
779
|
+
|
780
|
+
<code class="ruby"> end</code>
|
781
|
+
</li>
|
782
|
+
|
783
|
+
<li class="never" data-hits="" data-linenumber="19">
|
784
|
+
|
785
|
+
|
786
|
+
<code class="ruby"></code>
|
787
|
+
</li>
|
788
|
+
|
789
|
+
<li class="never" data-hits="" data-linenumber="20">
|
790
|
+
|
791
|
+
|
792
|
+
<code class="ruby"> # Overridden in order to preserve the @group_id and @subgroups</code>
|
793
|
+
</li>
|
794
|
+
|
795
|
+
<li class="never" data-hits="" data-linenumber="21">
|
796
|
+
|
797
|
+
|
798
|
+
<code class="ruby"> # Used by BaseGroup (which, in turn, is used by all Group objects)</code>
|
799
|
+
</li>
|
800
|
+
|
801
|
+
<li class="covered" data-hits="1" data-linenumber="22">
|
802
|
+
<span class="hits">1</span>
|
803
|
+
|
804
|
+
<code class="ruby"> def *(int)</code>
|
805
|
+
</li>
|
806
|
+
|
807
|
+
<li class="covered" data-hits="413" data-linenumber="23">
|
808
|
+
<span class="hits">413</span>
|
809
|
+
|
810
|
+
<code class="ruby"> self.class.new(super.to_s, group_id, subgroups)</code>
|
811
|
+
</li>
|
812
|
+
|
813
|
+
<li class="never" data-hits="" data-linenumber="24">
|
814
|
+
|
815
|
+
|
816
|
+
<code class="ruby"> end</code>
|
817
|
+
</li>
|
818
|
+
|
819
|
+
<li class="never" data-hits="" data-linenumber="25">
|
820
|
+
|
821
|
+
|
822
|
+
<code class="ruby"> end</code>
|
823
|
+
</li>
|
824
|
+
|
825
|
+
<li class="never" data-hits="" data-linenumber="26">
|
826
|
+
|
827
|
+
|
828
|
+
<code class="ruby"></code>
|
829
|
+
</li>
|
830
|
+
|
831
|
+
<li class="covered" data-hits="1" data-linenumber="27">
|
832
|
+
<span class="hits">1</span>
|
833
|
+
|
834
|
+
<code class="ruby"> class SingleCharGroup</code>
|
835
|
+
</li>
|
836
|
+
|
837
|
+
<li class="covered" data-hits="1" data-linenumber="28">
|
838
|
+
<span class="hits">1</span>
|
839
|
+
|
840
|
+
<code class="ruby"> def initialize(char)</code>
|
841
|
+
</li>
|
842
|
+
|
843
|
+
<li class="covered" data-hits="175" data-linenumber="29">
|
844
|
+
<span class="hits">175</span>
|
845
|
+
|
846
|
+
<code class="ruby"> @char = char</code>
|
847
|
+
</li>
|
848
|
+
|
849
|
+
<li class="never" data-hits="" data-linenumber="30">
|
850
|
+
|
851
|
+
|
852
|
+
<code class="ruby"> end</code>
|
853
|
+
</li>
|
854
|
+
|
855
|
+
<li class="covered" data-hits="1" data-linenumber="31">
|
856
|
+
<span class="hits">1</span>
|
857
|
+
|
858
|
+
<code class="ruby"> def result</code>
|
859
|
+
</li>
|
860
|
+
|
861
|
+
<li class="covered" data-hits="175" data-linenumber="32">
|
862
|
+
<span class="hits">175</span>
|
863
|
+
|
864
|
+
<code class="ruby"> [GroupResult.new(@char)]</code>
|
865
|
+
</li>
|
866
|
+
|
867
|
+
<li class="never" data-hits="" data-linenumber="33">
|
868
|
+
|
869
|
+
|
870
|
+
<code class="ruby"> end</code>
|
871
|
+
</li>
|
872
|
+
|
873
|
+
<li class="never" data-hits="" data-linenumber="34">
|
874
|
+
|
875
|
+
|
876
|
+
<code class="ruby"> end</code>
|
877
|
+
</li>
|
878
|
+
|
879
|
+
<li class="never" data-hits="" data-linenumber="35">
|
880
|
+
|
881
|
+
|
882
|
+
<code class="ruby"></code>
|
883
|
+
</li>
|
884
|
+
|
885
|
+
<li class="covered" data-hits="1" data-linenumber="36">
|
886
|
+
<span class="hits">1</span>
|
887
|
+
|
888
|
+
<code class="ruby"> class CharGroup</code>
|
889
|
+
</li>
|
890
|
+
|
891
|
+
<li class="covered" data-hits="1" data-linenumber="37">
|
892
|
+
<span class="hits">1</span>
|
893
|
+
|
894
|
+
<code class="ruby"> def initialize(chars)</code>
|
895
|
+
</li>
|
896
|
+
|
897
|
+
<li class="covered" data-hits="28" data-linenumber="38">
|
898
|
+
<span class="hits">28</span>
|
899
|
+
|
900
|
+
<code class="ruby"> @chars = chars</code>
|
901
|
+
</li>
|
902
|
+
|
903
|
+
<li class="covered" data-hits="28" data-linenumber="39">
|
904
|
+
<span class="hits">28</span>
|
905
|
+
|
906
|
+
<code class="ruby"> if chars[0] == "^"</code>
|
907
|
+
</li>
|
908
|
+
|
909
|
+
<li class="covered" data-hits="1" data-linenumber="40">
|
910
|
+
<span class="hits">1</span>
|
911
|
+
|
912
|
+
<code class="ruby"> @negative = true</code>
|
913
|
+
</li>
|
914
|
+
|
915
|
+
<li class="covered" data-hits="1" data-linenumber="41">
|
916
|
+
<span class="hits">1</span>
|
917
|
+
|
918
|
+
<code class="ruby"> @chars = @chars[1..-1]</code>
|
919
|
+
</li>
|
920
|
+
|
921
|
+
<li class="never" data-hits="" data-linenumber="42">
|
900
922
|
|
901
923
|
|
902
924
|
<code class="ruby"> else</code>
|
903
925
|
</li>
|
904
926
|
|
905
|
-
<li class="covered" data-hits="27" data-linenumber="
|
927
|
+
<li class="covered" data-hits="27" data-linenumber="43">
|
906
928
|
<span class="hits">27</span>
|
907
929
|
|
908
930
|
<code class="ruby"> @negative = false</code>
|
909
931
|
</li>
|
910
932
|
|
911
|
-
<li class="never" data-hits="" data-linenumber="
|
933
|
+
<li class="never" data-hits="" data-linenumber="44">
|
912
934
|
|
913
935
|
|
914
936
|
<code class="ruby"> end</code>
|
915
937
|
</li>
|
916
938
|
|
917
|
-
<li class="never" data-hits="" data-linenumber="
|
939
|
+
<li class="never" data-hits="" data-linenumber="45">
|
918
940
|
|
919
941
|
|
920
942
|
<code class="ruby"></code>
|
921
943
|
</li>
|
922
944
|
|
923
|
-
<li class="covered" data-hits="28" data-linenumber="
|
945
|
+
<li class="covered" data-hits="28" data-linenumber="46">
|
924
946
|
<span class="hits">28</span>
|
925
947
|
|
926
948
|
<code class="ruby"> init_backslash_chars</code>
|
927
949
|
</li>
|
928
950
|
|
929
|
-
<li class="covered" data-hits="28" data-linenumber="
|
951
|
+
<li class="covered" data-hits="28" data-linenumber="47">
|
930
952
|
<span class="hits">28</span>
|
931
953
|
|
932
954
|
<code class="ruby"> init_ranges</code>
|
933
955
|
</li>
|
934
956
|
|
935
|
-
<li class="never" data-hits="" data-linenumber="
|
957
|
+
<li class="never" data-hits="" data-linenumber="48">
|
936
958
|
|
937
959
|
|
938
960
|
<code class="ruby"> end</code>
|
939
961
|
</li>
|
940
962
|
|
941
|
-
<li class="never" data-hits="" data-linenumber="
|
963
|
+
<li class="never" data-hits="" data-linenumber="49">
|
942
964
|
|
943
965
|
|
944
966
|
<code class="ruby"></code>
|
945
967
|
</li>
|
946
968
|
|
947
|
-
<li class="covered" data-hits="1" data-linenumber="
|
969
|
+
<li class="covered" data-hits="1" data-linenumber="50">
|
948
970
|
<span class="hits">1</span>
|
949
971
|
|
950
972
|
<code class="ruby"> def init_ranges</code>
|
951
973
|
</li>
|
952
974
|
|
953
|
-
<li class="never" data-hits="" data-linenumber="
|
975
|
+
<li class="never" data-hits="" data-linenumber="51">
|
954
976
|
|
955
977
|
|
956
978
|
<code class="ruby"> # save first and last "-" if present</code>
|
957
979
|
</li>
|
958
980
|
|
959
|
-
<li class="covered" data-hits="28" data-linenumber="
|
981
|
+
<li class="covered" data-hits="28" data-linenumber="52">
|
960
982
|
<span class="hits">28</span>
|
961
983
|
|
962
984
|
<code class="ruby"> first = nil</code>
|
963
985
|
</li>
|
964
986
|
|
965
|
-
<li class="covered" data-hits="28" data-linenumber="
|
987
|
+
<li class="covered" data-hits="28" data-linenumber="53">
|
966
988
|
<span class="hits">28</span>
|
967
989
|
|
968
990
|
<code class="ruby"> last = nil</code>
|
969
991
|
</li>
|
970
992
|
|
971
|
-
<li class="covered" data-hits="28" data-linenumber="
|
993
|
+
<li class="covered" data-hits="28" data-linenumber="54">
|
972
994
|
<span class="hits">28</span>
|
973
995
|
|
974
996
|
<code class="ruby"> first = @chars.shift if @chars.first == "-"</code>
|
975
997
|
</li>
|
976
998
|
|
977
|
-
<li class="covered" data-hits="28" data-linenumber="
|
999
|
+
<li class="covered" data-hits="28" data-linenumber="55">
|
978
1000
|
<span class="hits">28</span>
|
979
1001
|
|
980
1002
|
<code class="ruby"> last = @chars.pop if @chars.last == "-"</code>
|
981
1003
|
</li>
|
982
1004
|
|
983
|
-
<li class="never" data-hits="" data-linenumber="
|
1005
|
+
<li class="never" data-hits="" data-linenumber="56">
|
984
1006
|
|
985
1007
|
|
986
1008
|
<code class="ruby"> # Replace all instances of e.g. ["a" "-" "z"] with ["a", "b", ..., "z"]</code>
|
987
1009
|
</li>
|
988
1010
|
|
989
|
-
<li class="covered" data-hits="28" data-linenumber="
|
1011
|
+
<li class="covered" data-hits="28" data-linenumber="57">
|
990
1012
|
<span class="hits">28</span>
|
991
1013
|
|
992
1014
|
<code class="ruby"> while i = @chars.index("-")</code>
|
993
1015
|
</li>
|
994
1016
|
|
995
|
-
<li class="covered" data-hits="9" data-linenumber="
|
1017
|
+
<li class="covered" data-hits="9" data-linenumber="58">
|
996
1018
|
<span class="hits">9</span>
|
997
1019
|
|
998
1020
|
<code class="ruby"> @chars[i-1..i+1] = (@chars[i-1]..@chars[i+1]).to_a</code>
|
999
1021
|
</li>
|
1000
1022
|
|
1001
|
-
<li class="never" data-hits="" data-linenumber="
|
1023
|
+
<li class="never" data-hits="" data-linenumber="59">
|
1002
1024
|
|
1003
1025
|
|
1004
1026
|
<code class="ruby"> end</code>
|
1005
1027
|
</li>
|
1006
1028
|
|
1007
|
-
<li class="never" data-hits="" data-linenumber="
|
1029
|
+
<li class="never" data-hits="" data-linenumber="60">
|
1008
1030
|
|
1009
1031
|
|
1010
1032
|
<code class="ruby"> # restore them back</code>
|
1011
1033
|
</li>
|
1012
1034
|
|
1013
|
-
<li class="covered" data-hits="28" data-linenumber="
|
1035
|
+
<li class="covered" data-hits="28" data-linenumber="61">
|
1014
1036
|
<span class="hits">28</span>
|
1015
1037
|
|
1016
1038
|
<code class="ruby"> @chars.unshift(first) if first</code>
|
1017
1039
|
</li>
|
1018
1040
|
|
1019
|
-
<li class="covered" data-hits="28" data-linenumber="
|
1041
|
+
<li class="covered" data-hits="28" data-linenumber="62">
|
1020
1042
|
<span class="hits">28</span>
|
1021
1043
|
|
1022
1044
|
<code class="ruby"> @chars.push(last) if last</code>
|
1023
1045
|
</li>
|
1024
1046
|
|
1025
|
-
<li class="never" data-hits="" data-linenumber="
|
1047
|
+
<li class="never" data-hits="" data-linenumber="63">
|
1026
1048
|
|
1027
1049
|
|
1028
1050
|
<code class="ruby"> end</code>
|
1029
1051
|
</li>
|
1030
1052
|
|
1031
|
-
<li class="never" data-hits="" data-linenumber="
|
1053
|
+
<li class="never" data-hits="" data-linenumber="64">
|
1032
1054
|
|
1033
1055
|
|
1034
1056
|
<code class="ruby"></code>
|
1035
1057
|
</li>
|
1036
1058
|
|
1037
|
-
<li class="covered" data-hits="1" data-linenumber="
|
1059
|
+
<li class="covered" data-hits="1" data-linenumber="65">
|
1038
1060
|
<span class="hits">1</span>
|
1039
1061
|
|
1040
1062
|
<code class="ruby"> def init_backslash_chars</code>
|
1041
1063
|
</li>
|
1042
1064
|
|
1043
|
-
<li class="covered" data-hits="28" data-linenumber="
|
1065
|
+
<li class="covered" data-hits="28" data-linenumber="66">
|
1044
1066
|
<span class="hits">28</span>
|
1045
1067
|
|
1046
1068
|
<code class="ruby"> @chars.each_with_index do |char, i|</code>
|
1047
1069
|
</li>
|
1048
1070
|
|
1049
|
-
<li class="covered" data-hits="540" data-linenumber="
|
1071
|
+
<li class="covered" data-hits="540" data-linenumber="67">
|
1050
1072
|
<span class="hits">540</span>
|
1051
1073
|
|
1052
1074
|
<code class="ruby"> if char == "\\"</code>
|
1053
1075
|
</li>
|
1054
1076
|
|
1055
|
-
<li class="covered" data-hits="13" data-linenumber="
|
1077
|
+
<li class="covered" data-hits="13" data-linenumber="68">
|
1056
1078
|
<span class="hits">13</span>
|
1057
1079
|
|
1058
1080
|
<code class="ruby"> if BackslashCharMap.keys.include?(@chars[i+1])</code>
|
1059
1081
|
</li>
|
1060
1082
|
|
1061
|
-
<li class="covered" data-hits="4" data-linenumber="
|
1083
|
+
<li class="covered" data-hits="4" data-linenumber="69">
|
1062
1084
|
<span class="hits">4</span>
|
1063
1085
|
|
1064
1086
|
<code class="ruby"> @chars[i..i+1] = BackslashCharMap[@chars[i+1]]</code>
|
1065
1087
|
</li>
|
1066
1088
|
|
1067
|
-
<li class="never" data-hits="" data-linenumber="
|
1089
|
+
<li class="never" data-hits="" data-linenumber="70">
|
1068
1090
|
|
1069
1091
|
|
1070
1092
|
<code class="ruby"> elsif @chars[i+1] == "\\"</code>
|
1071
1093
|
</li>
|
1072
1094
|
|
1073
|
-
<li class="covered" data-hits="2" data-linenumber="
|
1095
|
+
<li class="covered" data-hits="2" data-linenumber="71">
|
1074
1096
|
<span class="hits">2</span>
|
1075
1097
|
|
1076
1098
|
<code class="ruby"> @chars.delete_at(i+1)</code>
|
1077
1099
|
</li>
|
1078
1100
|
|
1079
|
-
<li class="never" data-hits="" data-linenumber="
|
1101
|
+
<li class="never" data-hits="" data-linenumber="72">
|
1080
1102
|
|
1081
1103
|
|
1082
1104
|
<code class="ruby"> else</code>
|
1083
1105
|
</li>
|
1084
1106
|
|
1085
|
-
<li class="covered" data-hits="7" data-linenumber="
|
1107
|
+
<li class="covered" data-hits="7" data-linenumber="73">
|
1086
1108
|
<span class="hits">7</span>
|
1087
1109
|
|
1088
1110
|
<code class="ruby"> @chars.delete_at(i)</code>
|
1089
1111
|
</li>
|
1090
1112
|
|
1091
|
-
<li class="never" data-hits="" data-linenumber="
|
1113
|
+
<li class="never" data-hits="" data-linenumber="74">
|
1092
1114
|
|
1093
1115
|
|
1094
1116
|
<code class="ruby"> end</code>
|
1095
1117
|
</li>
|
1096
1118
|
|
1097
|
-
<li class="never" data-hits="" data-linenumber="
|
1119
|
+
<li class="never" data-hits="" data-linenumber="75">
|
1098
1120
|
|
1099
1121
|
|
1100
1122
|
<code class="ruby"> end</code>
|
1101
1123
|
</li>
|
1102
1124
|
|
1103
|
-
<li class="never" data-hits="" data-linenumber="
|
1125
|
+
<li class="never" data-hits="" data-linenumber="76">
|
1104
1126
|
|
1105
1127
|
|
1106
1128
|
<code class="ruby"> end</code>
|
1107
1129
|
</li>
|
1108
1130
|
|
1109
|
-
<li class="never" data-hits="" data-linenumber="
|
1131
|
+
<li class="never" data-hits="" data-linenumber="77">
|
1110
1132
|
|
1111
1133
|
|
1112
1134
|
<code class="ruby"> end</code>
|
1113
1135
|
</li>
|
1114
1136
|
|
1115
|
-
<li class="never" data-hits="" data-linenumber="
|
1137
|
+
<li class="never" data-hits="" data-linenumber="78">
|
1116
1138
|
|
1117
1139
|
|
1118
1140
|
<code class="ruby"></code>
|
1119
1141
|
</li>
|
1120
1142
|
|
1121
|
-
<li class="covered" data-hits="1" data-linenumber="
|
1143
|
+
<li class="covered" data-hits="1" data-linenumber="79">
|
1122
1144
|
<span class="hits">1</span>
|
1123
1145
|
|
1124
1146
|
<code class="ruby"> def result</code>
|
1125
1147
|
</li>
|
1126
1148
|
|
1127
|
-
<li class="covered" data-hits="28" data-linenumber="
|
1149
|
+
<li class="covered" data-hits="28" data-linenumber="80">
|
1128
1150
|
<span class="hits">28</span>
|
1129
1151
|
|
1130
|
-
<code class="ruby">
|
1131
|
-
</li>
|
1132
|
-
|
1133
|
-
<li class="covered" data-hits="1" data-linenumber="56">
|
1134
|
-
<span class="hits">1</span>
|
1135
|
-
|
1136
|
-
<code class="ruby"> CharSets::Any - @chars</code>
|
1137
|
-
</li>
|
1138
|
-
|
1139
|
-
<li class="never" data-hits="" data-linenumber="57">
|
1140
|
-
|
1141
|
-
|
1142
|
-
<code class="ruby"> else</code>
|
1152
|
+
<code class="ruby"> (@negative ? (CharSets::Any - @chars) : @chars).map do |result|</code>
|
1143
1153
|
</li>
|
1144
1154
|
|
1145
|
-
<li class="covered" data-hits="
|
1146
|
-
<span class="hits">
|
1155
|
+
<li class="covered" data-hits="572" data-linenumber="81">
|
1156
|
+
<span class="hits">572</span>
|
1147
1157
|
|
1148
|
-
<code class="ruby">
|
1158
|
+
<code class="ruby"> GroupResult.new(result)</code>
|
1149
1159
|
</li>
|
1150
1160
|
|
1151
|
-
<li class="never" data-hits="" data-linenumber="
|
1161
|
+
<li class="never" data-hits="" data-linenumber="82">
|
1152
1162
|
|
1153
1163
|
|
1154
1164
|
<code class="ruby"> end</code>
|
1155
1165
|
</li>
|
1156
1166
|
|
1157
|
-
<li class="never" data-hits="" data-linenumber="
|
1167
|
+
<li class="never" data-hits="" data-linenumber="83">
|
1158
1168
|
|
1159
1169
|
|
1160
1170
|
<code class="ruby"> end</code>
|
1161
1171
|
</li>
|
1162
1172
|
|
1163
|
-
<li class="never" data-hits="" data-linenumber="
|
1173
|
+
<li class="never" data-hits="" data-linenumber="84">
|
1164
1174
|
|
1165
1175
|
|
1166
1176
|
<code class="ruby"> end</code>
|
1167
1177
|
</li>
|
1168
1178
|
|
1169
|
-
<li class="never" data-hits="" data-linenumber="
|
1179
|
+
<li class="never" data-hits="" data-linenumber="85">
|
1170
1180
|
|
1171
1181
|
|
1172
1182
|
<code class="ruby"></code>
|
1173
1183
|
</li>
|
1174
1184
|
|
1175
|
-
<li class="covered" data-hits="1" data-linenumber="
|
1185
|
+
<li class="covered" data-hits="1" data-linenumber="86">
|
1176
1186
|
<span class="hits">1</span>
|
1177
1187
|
|
1178
1188
|
<code class="ruby"> class DotGroup</code>
|
1179
1189
|
</li>
|
1180
1190
|
|
1181
|
-
<li class="covered" data-hits="1" data-linenumber="
|
1191
|
+
<li class="covered" data-hits="1" data-linenumber="87">
|
1182
1192
|
<span class="hits">1</span>
|
1183
1193
|
|
1184
1194
|
<code class="ruby"> def result</code>
|
1185
1195
|
</li>
|
1186
1196
|
|
1187
|
-
<li class="covered" data-hits="1" data-linenumber="
|
1197
|
+
<li class="covered" data-hits="1" data-linenumber="88">
|
1188
1198
|
<span class="hits">1</span>
|
1189
1199
|
|
1190
|
-
<code class="ruby"> CharSets::Any
|
1200
|
+
<code class="ruby"> CharSets::Any.map do |result|</code>
|
1191
1201
|
</li>
|
1192
1202
|
|
1193
|
-
<li class="
|
1203
|
+
<li class="covered" data-hits="94" data-linenumber="89">
|
1204
|
+
<span class="hits">94</span>
|
1205
|
+
|
1206
|
+
<code class="ruby"> GroupResult.new(result)</code>
|
1207
|
+
</li>
|
1208
|
+
|
1209
|
+
<li class="never" data-hits="" data-linenumber="90">
|
1210
|
+
|
1211
|
+
|
1212
|
+
<code class="ruby"> end</code>
|
1213
|
+
</li>
|
1214
|
+
|
1215
|
+
<li class="never" data-hits="" data-linenumber="91">
|
1194
1216
|
|
1195
1217
|
|
1196
1218
|
<code class="ruby"> end</code>
|
1197
1219
|
</li>
|
1198
1220
|
|
1199
|
-
<li class="never" data-hits="" data-linenumber="
|
1221
|
+
<li class="never" data-hits="" data-linenumber="92">
|
1200
1222
|
|
1201
1223
|
|
1202
1224
|
<code class="ruby"> end</code>
|
1203
1225
|
</li>
|
1204
1226
|
|
1205
|
-
<li class="never" data-hits="" data-linenumber="
|
1227
|
+
<li class="never" data-hits="" data-linenumber="93">
|
1206
1228
|
|
1207
1229
|
|
1208
1230
|
<code class="ruby"></code>
|
1209
1231
|
</li>
|
1210
1232
|
|
1211
|
-
<li class="covered" data-hits="1" data-linenumber="
|
1233
|
+
<li class="covered" data-hits="1" data-linenumber="94">
|
1212
1234
|
<span class="hits">1</span>
|
1213
1235
|
|
1214
1236
|
<code class="ruby"> class MultiGroup</code>
|
1215
1237
|
</li>
|
1216
1238
|
|
1217
|
-
<li class="covered" data-hits="1" data-linenumber="
|
1239
|
+
<li class="covered" data-hits="1" data-linenumber="95">
|
1218
1240
|
<span class="hits">1</span>
|
1219
1241
|
|
1220
1242
|
<code class="ruby"> attr_reader :group_id</code>
|
1221
1243
|
</li>
|
1222
1244
|
|
1223
|
-
<li class="covered" data-hits="1" data-linenumber="
|
1245
|
+
<li class="covered" data-hits="1" data-linenumber="96">
|
1224
1246
|
<span class="hits">1</span>
|
1225
1247
|
|
1226
1248
|
<code class="ruby"> def initialize(groups, group_id)</code>
|
1227
1249
|
</li>
|
1228
1250
|
|
1229
|
-
<li class="covered" data-hits="41" data-linenumber="
|
1251
|
+
<li class="covered" data-hits="41" data-linenumber="97">
|
1230
1252
|
<span class="hits">41</span>
|
1231
1253
|
|
1232
1254
|
<code class="ruby"> @groups = groups</code>
|
1233
1255
|
</li>
|
1234
1256
|
|
1235
|
-
<li class="covered" data-hits="41" data-linenumber="
|
1257
|
+
<li class="covered" data-hits="41" data-linenumber="98">
|
1236
1258
|
<span class="hits">41</span>
|
1237
1259
|
|
1238
1260
|
<code class="ruby"> @group_id = group_id</code>
|
1239
1261
|
</li>
|
1240
1262
|
|
1241
|
-
<li class="never" data-hits="" data-linenumber="
|
1263
|
+
<li class="never" data-hits="" data-linenumber="99">
|
1242
1264
|
|
1243
1265
|
|
1244
1266
|
<code class="ruby"> end</code>
|
1245
1267
|
</li>
|
1246
1268
|
|
1247
|
-
<li class="never" data-hits="" data-linenumber="
|
1269
|
+
<li class="never" data-hits="" data-linenumber="100">
|
1248
1270
|
|
1249
1271
|
|
1250
1272
|
<code class="ruby"></code>
|
1251
1273
|
</li>
|
1252
1274
|
|
1253
|
-
<li class="never" data-hits="" data-linenumber="
|
1275
|
+
<li class="never" data-hits="" data-linenumber="101">
|
1254
1276
|
|
1255
1277
|
|
1256
1278
|
<code class="ruby"> # Generates the result of each contained group</code>
|
1257
1279
|
</li>
|
1258
1280
|
|
1259
|
-
<li class="never" data-hits="" data-linenumber="
|
1281
|
+
<li class="never" data-hits="" data-linenumber="102">
|
1260
1282
|
|
1261
1283
|
|
1262
1284
|
<code class="ruby"> # and adds the filled group of each result to</code>
|
1263
1285
|
</li>
|
1264
1286
|
|
1265
|
-
<li class="never" data-hits="" data-linenumber="
|
1287
|
+
<li class="never" data-hits="" data-linenumber="103">
|
1266
1288
|
|
1267
1289
|
|
1268
1290
|
<code class="ruby"> # itself</code>
|
1269
1291
|
</li>
|
1270
1292
|
|
1271
|
-
<li class="covered" data-hits="1" data-linenumber="
|
1293
|
+
<li class="covered" data-hits="1" data-linenumber="104">
|
1272
1294
|
<span class="hits">1</span>
|
1273
1295
|
|
1274
1296
|
<code class="ruby"> def result</code>
|
1275
1297
|
</li>
|
1276
1298
|
|
1277
|
-
<li class="covered" data-hits="186" data-linenumber="
|
1299
|
+
<li class="covered" data-hits="186" data-linenumber="105">
|
1278
1300
|
<span class="hits">186</span>
|
1279
1301
|
|
1280
1302
|
<code class="ruby"> strings = @groups.map {|repeater| repeater.result}</code>
|
1281
1303
|
</li>
|
1282
1304
|
|
1283
|
-
<li class="covered" data-hits="41" data-linenumber="
|
1305
|
+
<li class="covered" data-hits="41" data-linenumber="106">
|
1284
1306
|
<span class="hits">41</span>
|
1285
1307
|
|
1286
1308
|
<code class="ruby"> RegexpExamples::permutations_of_strings(strings).map do |result|</code>
|
1287
1309
|
</li>
|
1288
1310
|
|
1289
|
-
<li class="covered" data-hits="101" data-linenumber="
|
1311
|
+
<li class="covered" data-hits="101" data-linenumber="107">
|
1290
1312
|
<span class="hits">101</span>
|
1291
1313
|
|
1292
|
-
<code class="ruby">
|
1314
|
+
<code class="ruby"> GroupResult.new(result, group_id)</code>
|
1293
1315
|
</li>
|
1294
1316
|
|
1295
|
-
<li class="
|
1296
|
-
<span class="hits">101</span>
|
1297
|
-
|
1298
|
-
<code class="ruby"> group_id ? CaptureGroupResult.new(group_id, subgroups, result) : result</code>
|
1299
|
-
</li>
|
1300
|
-
|
1301
|
-
<li class="never" data-hits="" data-linenumber="84">
|
1317
|
+
<li class="never" data-hits="" data-linenumber="108">
|
1302
1318
|
|
1303
1319
|
|
1304
1320
|
<code class="ruby"> end</code>
|
1305
1321
|
</li>
|
1306
1322
|
|
1307
|
-
<li class="never" data-hits="" data-linenumber="
|
1323
|
+
<li class="never" data-hits="" data-linenumber="109">
|
1308
1324
|
|
1309
1325
|
|
1310
1326
|
<code class="ruby"> end</code>
|
1311
1327
|
</li>
|
1312
1328
|
|
1313
|
-
<li class="never" data-hits="" data-linenumber="
|
1329
|
+
<li class="never" data-hits="" data-linenumber="110">
|
1314
1330
|
|
1315
1331
|
|
1316
1332
|
<code class="ruby"> end</code>
|
1317
1333
|
</li>
|
1318
1334
|
|
1319
|
-
<li class="never" data-hits="" data-linenumber="
|
1335
|
+
<li class="never" data-hits="" data-linenumber="111">
|
1320
1336
|
|
1321
1337
|
|
1322
1338
|
<code class="ruby"></code>
|
1323
1339
|
</li>
|
1324
1340
|
|
1325
|
-
<li class="covered" data-hits="1" data-linenumber="
|
1341
|
+
<li class="covered" data-hits="1" data-linenumber="112">
|
1326
1342
|
<span class="hits">1</span>
|
1327
1343
|
|
1328
1344
|
<code class="ruby"> class MultiGroupEnd</code>
|
1329
1345
|
</li>
|
1330
1346
|
|
1331
|
-
<li class="never" data-hits="" data-linenumber="
|
1347
|
+
<li class="never" data-hits="" data-linenumber="113">
|
1332
1348
|
|
1333
1349
|
|
1334
1350
|
<code class="ruby"> end</code>
|
1335
1351
|
</li>
|
1336
1352
|
|
1337
|
-
<li class="never" data-hits="" data-linenumber="
|
1353
|
+
<li class="never" data-hits="" data-linenumber="114">
|
1338
1354
|
|
1339
1355
|
|
1340
1356
|
<code class="ruby"></code>
|
1341
1357
|
</li>
|
1342
1358
|
|
1343
|
-
<li class="covered" data-hits="1" data-linenumber="
|
1359
|
+
<li class="covered" data-hits="1" data-linenumber="115">
|
1344
1360
|
<span class="hits">1</span>
|
1345
1361
|
|
1346
1362
|
<code class="ruby"> class OrGroup</code>
|
1347
1363
|
</li>
|
1348
1364
|
|
1349
|
-
<li class="covered" data-hits="1" data-linenumber="
|
1365
|
+
<li class="covered" data-hits="1" data-linenumber="116">
|
1350
1366
|
<span class="hits">1</span>
|
1351
1367
|
|
1352
1368
|
<code class="ruby"> def initialize(left_repeaters, right_repeaters)</code>
|
1353
1369
|
</li>
|
1354
1370
|
|
1355
|
-
<li class="covered" data-hits="6" data-linenumber="
|
1371
|
+
<li class="covered" data-hits="6" data-linenumber="117">
|
1356
1372
|
<span class="hits">6</span>
|
1357
1373
|
|
1358
1374
|
<code class="ruby"> @left_repeaters = left_repeaters</code>
|
1359
1375
|
</li>
|
1360
1376
|
|
1361
|
-
<li class="covered" data-hits="6" data-linenumber="
|
1377
|
+
<li class="covered" data-hits="6" data-linenumber="118">
|
1362
1378
|
<span class="hits">6</span>
|
1363
1379
|
|
1364
1380
|
<code class="ruby"> @right_repeaters = right_repeaters</code>
|
1365
1381
|
</li>
|
1366
1382
|
|
1367
|
-
<li class="never" data-hits="" data-linenumber="
|
1383
|
+
<li class="never" data-hits="" data-linenumber="119">
|
1368
1384
|
|
1369
1385
|
|
1370
1386
|
<code class="ruby"> end</code>
|
1371
1387
|
</li>
|
1372
1388
|
|
1373
|
-
<li class="never" data-hits="" data-linenumber="
|
1389
|
+
<li class="never" data-hits="" data-linenumber="120">
|
1374
1390
|
|
1375
1391
|
|
1376
1392
|
<code class="ruby"></code>
|
1377
1393
|
</li>
|
1378
1394
|
|
1379
|
-
<li class="covered" data-hits="1" data-linenumber="
|
1395
|
+
<li class="covered" data-hits="1" data-linenumber="121">
|
1380
1396
|
<span class="hits">1</span>
|
1381
1397
|
|
1382
1398
|
<code class="ruby"> def result</code>
|
1383
1399
|
</li>
|
1384
1400
|
|
1385
|
-
<li class="covered" data-hits="6" data-linenumber="
|
1401
|
+
<li class="covered" data-hits="6" data-linenumber="122">
|
1386
1402
|
<span class="hits">6</span>
|
1387
1403
|
|
1388
1404
|
<code class="ruby"> left_result = @left_repeaters.map do |repeater|</code>
|
1389
1405
|
</li>
|
1390
1406
|
|
1391
|
-
<li class="covered" data-hits="6" data-linenumber="
|
1407
|
+
<li class="covered" data-hits="6" data-linenumber="123">
|
1392
1408
|
<span class="hits">6</span>
|
1393
1409
|
|
1394
1410
|
<code class="ruby"> RegexpExamples::permutations_of_strings([repeater.result])</code>
|
1395
1411
|
</li>
|
1396
1412
|
|
1397
|
-
<li class="never" data-hits="" data-linenumber="
|
1413
|
+
<li class="never" data-hits="" data-linenumber="124">
|
1398
1414
|
|
1399
1415
|
|
1400
1416
|
<code class="ruby"> end</code>
|
1401
1417
|
</li>
|
1402
1418
|
|
1403
|
-
<li class="covered" data-hits="6" data-linenumber="
|
1419
|
+
<li class="covered" data-hits="6" data-linenumber="125">
|
1404
1420
|
<span class="hits">6</span>
|
1405
1421
|
|
1406
1422
|
<code class="ruby"> right_result = @right_repeaters.map do |repeater|</code>
|
1407
1423
|
</li>
|
1408
1424
|
|
1409
|
-
<li class="covered" data-hits="6" data-linenumber="
|
1425
|
+
<li class="covered" data-hits="6" data-linenumber="126">
|
1410
1426
|
<span class="hits">6</span>
|
1411
1427
|
|
1412
1428
|
<code class="ruby"> RegexpExamples::permutations_of_strings([repeater.result])</code>
|
1413
1429
|
</li>
|
1414
1430
|
|
1415
|
-
<li class="never" data-hits="" data-linenumber="
|
1431
|
+
<li class="never" data-hits="" data-linenumber="127">
|
1416
1432
|
|
1417
1433
|
|
1418
1434
|
<code class="ruby"> end</code>
|
1419
1435
|
</li>
|
1420
1436
|
|
1421
|
-
<li class="covered" data-hits="6" data-linenumber="
|
1437
|
+
<li class="covered" data-hits="6" data-linenumber="128">
|
1422
1438
|
<span class="hits">6</span>
|
1423
1439
|
|
1424
|
-
<code class="ruby"> left_result.concat(right_result).flatten.uniq
|
1440
|
+
<code class="ruby"> left_result.concat(right_result).flatten.uniq.map do |result|</code>
|
1425
1441
|
</li>
|
1426
1442
|
|
1427
|
-
<li class="
|
1443
|
+
<li class="covered" data-hits="21" data-linenumber="129">
|
1444
|
+
<span class="hits">21</span>
|
1445
|
+
|
1446
|
+
<code class="ruby"> GroupResult.new(result)</code>
|
1447
|
+
</li>
|
1448
|
+
|
1449
|
+
<li class="never" data-hits="" data-linenumber="130">
|
1450
|
+
|
1451
|
+
|
1452
|
+
<code class="ruby"> end</code>
|
1453
|
+
</li>
|
1454
|
+
|
1455
|
+
<li class="never" data-hits="" data-linenumber="131">
|
1428
1456
|
|
1429
1457
|
|
1430
1458
|
<code class="ruby"> end</code>
|
1431
1459
|
</li>
|
1432
1460
|
|
1433
|
-
<li class="never" data-hits="" data-linenumber="
|
1461
|
+
<li class="never" data-hits="" data-linenumber="132">
|
1434
1462
|
|
1435
1463
|
|
1436
1464
|
<code class="ruby"> end</code>
|
1437
1465
|
</li>
|
1438
1466
|
|
1439
|
-
<li class="never" data-hits="" data-linenumber="
|
1467
|
+
<li class="never" data-hits="" data-linenumber="133">
|
1440
1468
|
|
1441
1469
|
|
1442
1470
|
<code class="ruby"></code>
|
1443
1471
|
</li>
|
1444
1472
|
|
1445
|
-
<li class="covered" data-hits="1" data-linenumber="
|
1473
|
+
<li class="covered" data-hits="1" data-linenumber="134">
|
1446
1474
|
<span class="hits">1</span>
|
1447
1475
|
|
1448
1476
|
<code class="ruby"> class BackReferenceGroup</code>
|
1449
1477
|
</li>
|
1450
1478
|
|
1451
|
-
<li class="covered" data-hits="1" data-linenumber="
|
1479
|
+
<li class="covered" data-hits="1" data-linenumber="135">
|
1452
1480
|
<span class="hits">1</span>
|
1453
1481
|
|
1454
1482
|
<code class="ruby"> attr_reader :id</code>
|
1455
1483
|
</li>
|
1456
1484
|
|
1457
|
-
<li class="covered" data-hits="1" data-linenumber="
|
1485
|
+
<li class="covered" data-hits="1" data-linenumber="136">
|
1458
1486
|
<span class="hits">1</span>
|
1459
1487
|
|
1460
1488
|
<code class="ruby"> def initialize(id)</code>
|
1461
1489
|
</li>
|
1462
1490
|
|
1463
|
-
<li class="covered" data-hits="20" data-linenumber="
|
1491
|
+
<li class="covered" data-hits="20" data-linenumber="137">
|
1464
1492
|
<span class="hits">20</span>
|
1465
1493
|
|
1466
1494
|
<code class="ruby"> @id = id</code>
|
1467
1495
|
</li>
|
1468
1496
|
|
1469
|
-
<li class="never" data-hits="" data-linenumber="
|
1497
|
+
<li class="never" data-hits="" data-linenumber="138">
|
1470
1498
|
|
1471
1499
|
|
1472
1500
|
<code class="ruby"> end</code>
|
1473
1501
|
</li>
|
1474
1502
|
|
1475
|
-
<li class="never" data-hits="" data-linenumber="
|
1503
|
+
<li class="never" data-hits="" data-linenumber="139">
|
1476
1504
|
|
1477
1505
|
|
1478
1506
|
<code class="ruby"></code>
|
1479
1507
|
</li>
|
1480
1508
|
|
1481
|
-
<li class="covered" data-hits="1" data-linenumber="
|
1509
|
+
<li class="covered" data-hits="1" data-linenumber="140">
|
1482
1510
|
<span class="hits">1</span>
|
1483
1511
|
|
1484
1512
|
<code class="ruby"> def result</code>
|
1485
1513
|
</li>
|
1486
1514
|
|
1487
|
-
<li class="covered" data-hits="20" data-linenumber="
|
1515
|
+
<li class="covered" data-hits="20" data-linenumber="141">
|
1488
1516
|
<span class="hits">20</span>
|
1489
1517
|
|
1490
|
-
<code class="ruby"> ["__#{@id}__"]</code>
|
1518
|
+
<code class="ruby"> [ GroupResult.new("__#{@id}__") ]</code>
|
1491
1519
|
</li>
|
1492
1520
|
|
1493
|
-
<li class="never" data-hits="" data-linenumber="
|
1521
|
+
<li class="never" data-hits="" data-linenumber="142">
|
1494
1522
|
|
1495
1523
|
|
1496
1524
|
<code class="ruby"> end</code>
|
1497
1525
|
</li>
|
1498
1526
|
|
1499
|
-
<li class="never" data-hits="" data-linenumber="
|
1527
|
+
<li class="never" data-hits="" data-linenumber="143">
|
1500
1528
|
|
1501
1529
|
|
1502
1530
|
<code class="ruby"> end</code>
|
1503
1531
|
</li>
|
1504
1532
|
|
1505
|
-
<li class="never" data-hits="" data-linenumber="
|
1533
|
+
<li class="never" data-hits="" data-linenumber="144">
|
1506
1534
|
|
1507
1535
|
|
1508
1536
|
<code class="ruby"></code>
|
1509
1537
|
</li>
|
1510
1538
|
|
1511
|
-
<li class="never" data-hits="" data-linenumber="
|
1539
|
+
<li class="never" data-hits="" data-linenumber="145">
|
1512
1540
|
|
1513
1541
|
|
1514
1542
|
<code class="ruby">end</code>
|
@@ -1523,8 +1551,8 @@
|
|
1523
1551
|
<h3>lib/regexp-examples/helpers.rb</h3>
|
1524
1552
|
<h4><span class="green">100.0 %</span> covered</h4>
|
1525
1553
|
<div>
|
1526
|
-
<b>
|
1527
|
-
<span class="green"><b>
|
1554
|
+
<b>10</b> relevant lines.
|
1555
|
+
<span class="green"><b>10</b> lines covered</span> and
|
1528
1556
|
<span class="red"><b>0</b> lines missed.</span>
|
1529
1557
|
</div>
|
1530
1558
|
</div>
|
@@ -1613,136 +1641,76 @@
|
|
1613
1641
|
<li class="covered" data-hits="237" data-linenumber="14">
|
1614
1642
|
<span class="hits">237</span>
|
1615
1643
|
|
1616
|
-
<code class="ruby">
|
1617
|
-
</li>
|
1618
|
-
|
1619
|
-
<li class="covered" data-hits="73" data-linenumber="15">
|
1620
|
-
<span class="hits">73</span>
|
1621
|
-
|
1622
|
-
<code class="ruby"> result.flatten</code>
|
1623
|
-
</li>
|
1624
|
-
|
1625
|
-
<li class="never" data-hits="" data-linenumber="16">
|
1626
|
-
|
1627
|
-
|
1628
|
-
<code class="ruby"> else</code>
|
1629
|
-
</li>
|
1630
|
-
|
1631
|
-
<li class="covered" data-hits="164" data-linenumber="17">
|
1632
|
-
<span class="hits">164</span>
|
1633
|
-
|
1634
|
-
<code class="ruby"> join_preserving_capture_groups(result)</code>
|
1635
|
-
</li>
|
1636
|
-
|
1637
|
-
<li class="never" data-hits="" data-linenumber="18">
|
1638
|
-
|
1639
|
-
|
1640
|
-
<code class="ruby"> end</code>
|
1644
|
+
<code class="ruby"> join_preserving_capture_groups(result)</code>
|
1641
1645
|
</li>
|
1642
1646
|
|
1643
|
-
<li class="never" data-hits="" data-linenumber="
|
1647
|
+
<li class="never" data-hits="" data-linenumber="15">
|
1644
1648
|
|
1645
1649
|
|
1646
1650
|
<code class="ruby"> end</code>
|
1647
1651
|
</li>
|
1648
1652
|
|
1649
|
-
<li class="never" data-hits="" data-linenumber="
|
1653
|
+
<li class="never" data-hits="" data-linenumber="16">
|
1650
1654
|
|
1651
1655
|
|
1652
1656
|
<code class="ruby"> end</code>
|
1653
1657
|
</li>
|
1654
1658
|
|
1655
|
-
<li class="never" data-hits="" data-linenumber="
|
1659
|
+
<li class="never" data-hits="" data-linenumber="17">
|
1656
1660
|
|
1657
1661
|
|
1658
1662
|
<code class="ruby"></code>
|
1659
1663
|
</li>
|
1660
1664
|
|
1661
|
-
<li class="covered" data-hits="1" data-linenumber="
|
1665
|
+
<li class="covered" data-hits="1" data-linenumber="18">
|
1662
1666
|
<span class="hits">1</span>
|
1663
1667
|
|
1664
1668
|
<code class="ruby"> def self.join_preserving_capture_groups(result)</code>
|
1665
1669
|
</li>
|
1666
1670
|
|
1667
|
-
<li class="covered" data-hits="
|
1668
|
-
<span class="hits">
|
1671
|
+
<li class="covered" data-hits="237" data-linenumber="19">
|
1672
|
+
<span class="hits">237</span>
|
1669
1673
|
|
1670
1674
|
<code class="ruby"> result.flatten!</code>
|
1671
1675
|
</li>
|
1672
1676
|
|
1673
|
-
<li class="covered" data-hits="
|
1674
|
-
<span class="hits">
|
1677
|
+
<li class="covered" data-hits="237" data-linenumber="20">
|
1678
|
+
<span class="hits">237</span>
|
1675
1679
|
|
1676
1680
|
<code class="ruby"> subgroups = result</code>
|
1677
1681
|
</li>
|
1678
1682
|
|
1679
|
-
<li class="
|
1680
|
-
<span class="hits">328</span>
|
1681
|
-
|
1682
|
-
<code class="ruby"> .select { |partial| partial.respond_to? :group_id }</code>
|
1683
|
-
</li>
|
1684
|
-
|
1685
|
-
<li class="never" data-hits="" data-linenumber="26">
|
1683
|
+
<li class="never" data-hits="" data-linenumber="21">
|
1686
1684
|
|
1687
1685
|
|
1688
1686
|
<code class="ruby"> .map(&:all_subgroups)</code>
|
1689
1687
|
</li>
|
1690
1688
|
|
1691
|
-
<li class="never" data-hits="" data-linenumber="
|
1689
|
+
<li class="never" data-hits="" data-linenumber="22">
|
1692
1690
|
|
1693
1691
|
|
1694
1692
|
<code class="ruby"> .flatten</code>
|
1695
1693
|
</li>
|
1696
1694
|
|
1697
|
-
<li class="
|
1698
|
-
|
1699
|
-
|
1700
|
-
<code class="ruby"></code>
|
1701
|
-
</li>
|
1702
|
-
|
1703
|
-
<li class="covered" data-hits="164" data-linenumber="29">
|
1704
|
-
<span class="hits">164</span>
|
1705
|
-
|
1706
|
-
<code class="ruby"> if subgroups.empty?</code>
|
1707
|
-
</li>
|
1708
|
-
|
1709
|
-
<li class="covered" data-hits="123" data-linenumber="30">
|
1710
|
-
<span class="hits">123</span>
|
1711
|
-
|
1712
|
-
<code class="ruby"> result.join</code>
|
1713
|
-
</li>
|
1714
|
-
|
1715
|
-
<li class="never" data-hits="" data-linenumber="31">
|
1716
|
-
|
1717
|
-
|
1718
|
-
<code class="ruby"> else</code>
|
1719
|
-
</li>
|
1720
|
-
|
1721
|
-
<li class="covered" data-hits="41" data-linenumber="32">
|
1722
|
-
<span class="hits">41</span>
|
1723
|
-
|
1724
|
-
<code class="ruby"> CaptureGroupResult.new(nil, subgroups, result.join)</code>
|
1725
|
-
</li>
|
1726
|
-
|
1727
|
-
<li class="never" data-hits="" data-linenumber="33">
|
1728
|
-
|
1695
|
+
<li class="covered" data-hits="237" data-linenumber="23">
|
1696
|
+
<span class="hits">237</span>
|
1729
1697
|
|
1730
|
-
<code class="ruby">
|
1698
|
+
<code class="ruby"> GroupResult.new(result.join, nil, subgroups)</code>
|
1731
1699
|
</li>
|
1732
1700
|
|
1733
|
-
<li class="never" data-hits="" data-linenumber="
|
1701
|
+
<li class="never" data-hits="" data-linenumber="24">
|
1734
1702
|
|
1735
1703
|
|
1736
1704
|
<code class="ruby"> end</code>
|
1737
1705
|
</li>
|
1738
1706
|
|
1739
|
-
<li class="never" data-hits="" data-linenumber="
|
1707
|
+
<li class="never" data-hits="" data-linenumber="25">
|
1740
1708
|
|
1741
1709
|
|
1742
1710
|
<code class="ruby">end</code>
|
1743
1711
|
</li>
|
1744
1712
|
|
1745
|
-
<li class="never" data-hits="" data-linenumber="
|
1713
|
+
<li class="never" data-hits="" data-linenumber="26">
|
1746
1714
|
|
1747
1715
|
|
1748
1716
|
<code class="ruby"></code>
|
@@ -1757,8 +1725,8 @@
|
|
1757
1725
|
<h3>lib/regexp-examples/parser.rb</h3>
|
1758
1726
|
<h4><span class="green">100.0 %</span> covered</h4>
|
1759
1727
|
<div>
|
1760
|
-
<b>
|
1761
|
-
<span class="green"><b>
|
1728
|
+
<b>104</b> relevant lines.
|
1729
|
+
<span class="green"><b>104</b> lines covered</span> and
|
1762
1730
|
<span class="red"><b>0</b> lines missed.</span>
|
1763
1731
|
</div>
|
1764
1732
|
</div>
|
@@ -1790,20 +1758,20 @@
|
|
1790
1758
|
<code class="ruby"> def initialize(regexp_string)</code>
|
1791
1759
|
</li>
|
1792
1760
|
|
1793
|
-
<li class="covered" data-hits="
|
1794
|
-
<span class="hits">
|
1761
|
+
<li class="covered" data-hits="58" data-linenumber="5">
|
1762
|
+
<span class="hits">58</span>
|
1795
1763
|
|
1796
1764
|
<code class="ruby"> @regexp_string = regexp_string</code>
|
1797
1765
|
</li>
|
1798
1766
|
|
1799
|
-
<li class="covered" data-hits="
|
1800
|
-
<span class="hits">
|
1767
|
+
<li class="covered" data-hits="58" data-linenumber="6">
|
1768
|
+
<span class="hits">58</span>
|
1801
1769
|
|
1802
1770
|
<code class="ruby"> @num_groups = 0</code>
|
1803
1771
|
</li>
|
1804
1772
|
|
1805
|
-
<li class="covered" data-hits="
|
1806
|
-
<span class="hits">
|
1773
|
+
<li class="covered" data-hits="58" data-linenumber="7">
|
1774
|
+
<span class="hits">58</span>
|
1807
1775
|
|
1808
1776
|
<code class="ruby"> @current_position = 0</code>
|
1809
1777
|
</li>
|
@@ -1826,20 +1794,20 @@
|
|
1826
1794
|
<code class="ruby"> def parse</code>
|
1827
1795
|
</li>
|
1828
1796
|
|
1829
|
-
<li class="covered" data-hits="
|
1830
|
-
<span class="hits">
|
1797
|
+
<li class="covered" data-hits="105" data-linenumber="11">
|
1798
|
+
<span class="hits">105</span>
|
1831
1799
|
|
1832
1800
|
<code class="ruby"> repeaters = []</code>
|
1833
1801
|
</li>
|
1834
1802
|
|
1835
|
-
<li class="covered" data-hits="
|
1836
|
-
<span class="hits">
|
1803
|
+
<li class="covered" data-hits="105" data-linenumber="12">
|
1804
|
+
<span class="hits">105</span>
|
1837
1805
|
|
1838
1806
|
<code class="ruby"> while @current_position < regexp_string.length</code>
|
1839
1807
|
</li>
|
1840
1808
|
|
1841
|
-
<li class="covered" data-hits="
|
1842
|
-
<span class="hits">
|
1809
|
+
<li class="covered" data-hits="316" data-linenumber="13">
|
1810
|
+
<span class="hits">316</span>
|
1843
1811
|
|
1844
1812
|
<code class="ruby"> group = parse_group(repeaters)</code>
|
1845
1813
|
</li>
|
@@ -1910,14 +1878,14 @@
|
|
1910
1878
|
<code class="ruby"> def parse_group(repeaters)</code>
|
1911
1879
|
</li>
|
1912
1880
|
|
1913
|
-
<li class="covered" data-hits="
|
1914
|
-
<span class="hits">
|
1881
|
+
<li class="covered" data-hits="316" data-linenumber="25">
|
1882
|
+
<span class="hits">316</span>
|
1915
1883
|
|
1916
1884
|
<code class="ruby"> char = regexp_string[@current_position]</code>
|
1917
1885
|
</li>
|
1918
1886
|
|
1919
|
-
<li class="covered" data-hits="
|
1920
|
-
<span class="hits">
|
1887
|
+
<li class="covered" data-hits="316" data-linenumber="26">
|
1888
|
+
<span class="hits">316</span>
|
1921
1889
|
|
1922
1890
|
<code class="ruby"> case char</code>
|
1923
1891
|
</li>
|
@@ -1928,8 +1896,8 @@
|
|
1928
1896
|
<code class="ruby"> when '('</code>
|
1929
1897
|
</li>
|
1930
1898
|
|
1931
|
-
<li class="covered" data-hits="
|
1932
|
-
<span class="hits">
|
1899
|
+
<li class="covered" data-hits="45" data-linenumber="28">
|
1900
|
+
<span class="hits">45</span>
|
1933
1901
|
|
1934
1902
|
<code class="ruby"> group = parse_multi_group</code>
|
1935
1903
|
</li>
|
@@ -2264,26 +2232,26 @@
|
|
2264
2232
|
<code class="ruby"> def parse_multi_group</code>
|
2265
2233
|
</li>
|
2266
2234
|
|
2267
|
-
<li class="covered" data-hits="
|
2268
|
-
<span class="hits">
|
2235
|
+
<li class="covered" data-hits="45" data-linenumber="84">
|
2236
|
+
<span class="hits">45</span>
|
2269
2237
|
|
2270
2238
|
<code class="ruby"> @current_position += 1</code>
|
2271
2239
|
</li>
|
2272
2240
|
|
2273
|
-
<li class="covered" data-hits="
|
2274
|
-
<span class="hits">
|
2241
|
+
<li class="covered" data-hits="45" data-linenumber="85">
|
2242
|
+
<span class="hits">45</span>
|
2275
2243
|
|
2276
2244
|
<code class="ruby"> @num_groups += 1</code>
|
2277
2245
|
</li>
|
2278
2246
|
|
2279
|
-
<li class="covered" data-hits="
|
2280
|
-
<span class="hits">
|
2247
|
+
<li class="covered" data-hits="45" data-linenumber="86">
|
2248
|
+
<span class="hits">45</span>
|
2281
2249
|
|
2282
2250
|
<code class="ruby"> group_id = nil # init</code>
|
2283
2251
|
</li>
|
2284
2252
|
|
2285
|
-
<li class="covered" data-hits="
|
2286
|
-
<span class="hits">
|
2253
|
+
<li class="covered" data-hits="45" data-linenumber="87">
|
2254
|
+
<span class="hits">45</span>
|
2287
2255
|
|
2288
2256
|
<code class="ruby"> rest_of_string.match(/\A(\?)?(:|!|=|<(!|=|[^!=][^>]*))?/) do |match|</code>
|
2289
2257
|
</li>
|
@@ -2330,10 +2298,10 @@
|
|
2330
2298
|
<code class="ruby"> when %w(! =).include?(match[2]) # e.g. /(?=lookahead)/, /(?!neglookahead)/</code>
|
2331
2299
|
</li>
|
2332
2300
|
|
2333
|
-
<li class="
|
2334
|
-
|
2301
|
+
<li class="covered" data-hits="2" data-linenumber="95">
|
2302
|
+
<span class="hits">2</span>
|
2335
2303
|
|
2336
|
-
<code class="ruby">
|
2304
|
+
<code class="ruby"> raise IllegalSyntaxError, "Lookaheads are not regular; cannot generate examples"</code>
|
2337
2305
|
</li>
|
2338
2306
|
|
2339
2307
|
<li class="never" data-hits="" data-linenumber="96">
|
@@ -2342,10 +2310,10 @@
|
|
2342
2310
|
<code class="ruby"> when %w(! =).include?(match[3]) # e.g. /(?<=lookbehind)/, /(?<!neglookbehind)/</code>
|
2343
2311
|
</li>
|
2344
2312
|
|
2345
|
-
<li class="
|
2346
|
-
|
2313
|
+
<li class="covered" data-hits="2" data-linenumber="97">
|
2314
|
+
<span class="hits">2</span>
|
2347
2315
|
|
2348
|
-
<code class="ruby">
|
2316
|
+
<code class="ruby"> raise IllegalSyntaxError, "Lookbehinds are not regular; cannot generate examples"</code>
|
2349
2317
|
</li>
|
2350
2318
|
|
2351
2319
|
<li class="never" data-hits="" data-linenumber="98">
|
@@ -2366,8 +2334,8 @@
|
|
2366
2334
|
<code class="ruby"> group_id = match[3]</code>
|
2367
2335
|
</li>
|
2368
2336
|
|
2369
|
-
<li class="covered" data-hits="
|
2370
|
-
<span class="hits">
|
2337
|
+
<li class="covered" data-hits="45" data-linenumber="101">
|
2338
|
+
<span class="hits">45</span>
|
2371
2339
|
|
2372
2340
|
<code class="ruby"> end</code>
|
2373
2341
|
</li>
|
@@ -2840,8 +2808,8 @@
|
|
2840
2808
|
<code class="ruby"> def rest_of_string</code>
|
2841
2809
|
</li>
|
2842
2810
|
|
2843
|
-
<li class="covered" data-hits="
|
2844
|
-
<span class="hits">
|
2811
|
+
<li class="covered" data-hits="102" data-linenumber="180">
|
2812
|
+
<span class="hits">102</span>
|
2845
2813
|
|
2846
2814
|
<code class="ruby"> regexp_string[@current_position..-1]</code>
|
2847
2815
|
</li>
|
@@ -2879,8 +2847,8 @@
|
|
2879
2847
|
<h3>lib/regexp-examples/regexp_extensions.rb</h3>
|
2880
2848
|
<h4><span class="green">100.0 %</span> covered</h4>
|
2881
2849
|
<div>
|
2882
|
-
<b>
|
2883
|
-
<span class="green"><b>
|
2850
|
+
<b>8</b> relevant lines.
|
2851
|
+
<span class="green"><b>8</b> lines covered</span> and
|
2884
2852
|
<span class="red"><b>0</b> lines missed.</span>
|
2885
2853
|
</div>
|
2886
2854
|
</div>
|
@@ -2906,8 +2874,8 @@
|
|
2906
2874
|
<code class="ruby"> def examples</code>
|
2907
2875
|
</li>
|
2908
2876
|
|
2909
|
-
<li class="covered" data-hits="
|
2910
|
-
<span class="hits">
|
2877
|
+
<li class="covered" data-hits="58" data-linenumber="4">
|
2878
|
+
<span class="hits">58</span>
|
2911
2879
|
|
2912
2880
|
<code class="ruby"> partial_examples =</code>
|
2913
2881
|
</li>
|
@@ -2921,64 +2889,52 @@
|
|
2921
2889
|
<li class="never" data-hits="" data-linenumber="6">
|
2922
2890
|
|
2923
2891
|
|
2924
|
-
<code class="ruby">
|
2892
|
+
<code class="ruby"> .parse</code>
|
2925
2893
|
</li>
|
2926
2894
|
|
2927
2895
|
<li class="covered" data-hits="114" data-linenumber="7">
|
2928
2896
|
<span class="hits">114</span>
|
2929
2897
|
|
2930
|
-
<code class="ruby">
|
2898
|
+
<code class="ruby"> .map {|repeater| repeater.result}</code>
|
2931
2899
|
</li>
|
2932
2900
|
|
2933
2901
|
<li class="covered" data-hits="54" data-linenumber="8">
|
2934
2902
|
<span class="hits">54</span>
|
2935
2903
|
|
2936
|
-
<code class="ruby"> full_examples = RegexpExamples::permutations_of_strings(partial_examples
|
2904
|
+
<code class="ruby"> full_examples = RegexpExamples::permutations_of_strings(partial_examples)</code>
|
2937
2905
|
</li>
|
2938
2906
|
|
2939
2907
|
<li class="covered" data-hits="54" data-linenumber="9">
|
2940
2908
|
<span class="hits">54</span>
|
2941
2909
|
|
2942
|
-
<code class="ruby">
|
2910
|
+
<code class="ruby"> RegexpExamples::BackReferenceReplacer.new.substitute_backreferences(full_examples)</code>
|
2943
2911
|
</li>
|
2944
2912
|
|
2945
2913
|
<li class="never" data-hits="" data-linenumber="10">
|
2946
2914
|
|
2947
2915
|
|
2948
|
-
<code class="ruby"> RegexpExamples::BackReferenceReplacer.new.substitute_backreferences(full_examples)</code>
|
2949
|
-
</li>
|
2950
|
-
|
2951
|
-
<li class="covered" data-hits="54" data-linenumber="11">
|
2952
|
-
<span class="hits">54</span>
|
2953
|
-
|
2954
|
-
<code class="ruby"> full_examples_with_backrefs.map(&:join)</code>
|
2955
|
-
</li>
|
2956
|
-
|
2957
|
-
<li class="never" data-hits="" data-linenumber="12">
|
2958
|
-
|
2959
|
-
|
2960
2916
|
<code class="ruby"> end</code>
|
2961
2917
|
</li>
|
2962
2918
|
|
2963
|
-
<li class="never" data-hits="" data-linenumber="
|
2919
|
+
<li class="never" data-hits="" data-linenumber="11">
|
2964
2920
|
|
2965
2921
|
|
2966
2922
|
<code class="ruby"> end</code>
|
2967
2923
|
</li>
|
2968
2924
|
|
2969
|
-
<li class="covered" data-hits="1" data-linenumber="
|
2925
|
+
<li class="covered" data-hits="1" data-linenumber="12">
|
2970
2926
|
<span class="hits">1</span>
|
2971
2927
|
|
2972
2928
|
<code class="ruby"> include Examples</code>
|
2973
2929
|
</li>
|
2974
2930
|
|
2975
|
-
<li class="never" data-hits="" data-linenumber="
|
2931
|
+
<li class="never" data-hits="" data-linenumber="13">
|
2976
2932
|
|
2977
2933
|
|
2978
2934
|
<code class="ruby">end</code>
|
2979
2935
|
</li>
|
2980
2936
|
|
2981
|
-
<li class="never" data-hits="" data-linenumber="
|
2937
|
+
<li class="never" data-hits="" data-linenumber="14">
|
2982
2938
|
|
2983
2939
|
|
2984
2940
|
<code class="ruby"></code>
|
@@ -3479,8 +3435,8 @@
|
|
3479
3435
|
<h3>spec/regexp-examples_spec.rb</h3>
|
3480
3436
|
<h4><span class="green">100.0 %</span> covered</h4>
|
3481
3437
|
<div>
|
3482
|
-
<b>
|
3483
|
-
<span class="green"><b>
|
3438
|
+
<b>28</b> relevant lines.
|
3439
|
+
<span class="green"><b>28</b> lines covered</span> and
|
3484
3440
|
<span class="red"><b>0</b> lines missed.</span>
|
3485
3441
|
</div>
|
3486
3442
|
</div>
|
@@ -3548,619 +3504,685 @@
|
|
3548
3504
|
<code class="ruby"> # /a*/.examples to include "xyz"</code>
|
3549
3505
|
</li>
|
3550
3506
|
|
3551
|
-
<li class="never" data-hits="" data-linenumber="11">
|
3507
|
+
<li class="never" data-hits="" data-linenumber="11">
|
3508
|
+
|
3509
|
+
|
3510
|
+
<code class="ruby"> # /a|b/.examples to include "bad"</code>
|
3511
|
+
</li>
|
3512
|
+
|
3513
|
+
<li class="never" data-hits="" data-linenumber="12">
|
3514
|
+
|
3515
|
+
|
3516
|
+
<code class="ruby"> end</code>
|
3517
|
+
</li>
|
3518
|
+
|
3519
|
+
<li class="never" data-hits="" data-linenumber="13">
|
3520
|
+
|
3521
|
+
|
3522
|
+
<code class="ruby"> end</code>
|
3523
|
+
</li>
|
3524
|
+
|
3525
|
+
<li class="never" data-hits="" data-linenumber="14">
|
3526
|
+
|
3527
|
+
|
3528
|
+
<code class="ruby"> end</code>
|
3529
|
+
</li>
|
3530
|
+
|
3531
|
+
<li class="never" data-hits="" data-linenumber="15">
|
3532
|
+
|
3533
|
+
|
3534
|
+
<code class="ruby"></code>
|
3535
|
+
</li>
|
3536
|
+
|
3537
|
+
<li class="covered" data-hits="1" data-linenumber="16">
|
3538
|
+
<span class="hits">1</span>
|
3539
|
+
|
3540
|
+
<code class="ruby"> def self.examples_raise_illegal_syntax_error(*regexps)</code>
|
3541
|
+
</li>
|
3542
|
+
|
3543
|
+
<li class="covered" data-hits="1" data-linenumber="17">
|
3544
|
+
<span class="hits">1</span>
|
3545
|
+
|
3546
|
+
<code class="ruby"> regexps.each do |regexp|</code>
|
3547
|
+
</li>
|
3548
|
+
|
3549
|
+
<li class="covered" data-hits="4" data-linenumber="18">
|
3550
|
+
<span class="hits">4</span>
|
3552
3551
|
|
3552
|
+
<code class="ruby"> it do</code>
|
3553
|
+
</li>
|
3554
|
+
|
3555
|
+
<li class="covered" data-hits="8" data-linenumber="19">
|
3556
|
+
<span class="hits">8</span>
|
3553
3557
|
|
3554
|
-
<code class="ruby">
|
3558
|
+
<code class="ruby"> expect{regexp.examples}.to raise_error RegexpExamples::IllegalSyntaxError</code>
|
3555
3559
|
</li>
|
3556
3560
|
|
3557
|
-
<li class="never" data-hits="" data-linenumber="
|
3561
|
+
<li class="never" data-hits="" data-linenumber="20">
|
3558
3562
|
|
3559
3563
|
|
3560
3564
|
<code class="ruby"> end</code>
|
3561
3565
|
</li>
|
3562
3566
|
|
3563
|
-
<li class="never" data-hits="" data-linenumber="
|
3567
|
+
<li class="never" data-hits="" data-linenumber="21">
|
3564
3568
|
|
3565
3569
|
|
3566
3570
|
<code class="ruby"> end</code>
|
3567
3571
|
</li>
|
3568
3572
|
|
3569
|
-
<li class="never" data-hits="" data-linenumber="
|
3573
|
+
<li class="never" data-hits="" data-linenumber="22">
|
3570
3574
|
|
3571
3575
|
|
3572
3576
|
<code class="ruby"> end</code>
|
3573
3577
|
</li>
|
3574
3578
|
|
3575
|
-
<li class="never" data-hits="" data-linenumber="
|
3579
|
+
<li class="never" data-hits="" data-linenumber="23">
|
3576
3580
|
|
3577
3581
|
|
3578
3582
|
<code class="ruby"></code>
|
3579
3583
|
</li>
|
3580
3584
|
|
3581
|
-
<li class="covered" data-hits="1" data-linenumber="
|
3585
|
+
<li class="covered" data-hits="1" data-linenumber="24">
|
3582
3586
|
<span class="hits">1</span>
|
3583
3587
|
|
3584
3588
|
<code class="ruby"> context 'returns matching strings' do</code>
|
3585
3589
|
</li>
|
3586
3590
|
|
3587
|
-
<li class="covered" data-hits="1" data-linenumber="
|
3591
|
+
<li class="covered" data-hits="1" data-linenumber="25">
|
3588
3592
|
<span class="hits">1</span>
|
3589
3593
|
|
3590
3594
|
<code class="ruby"> context "for basic repeaters" do</code>
|
3591
3595
|
</li>
|
3592
3596
|
|
3593
|
-
<li class="covered" data-hits="1" data-linenumber="
|
3597
|
+
<li class="covered" data-hits="1" data-linenumber="26">
|
3594
3598
|
<span class="hits">1</span>
|
3595
3599
|
|
3596
3600
|
<code class="ruby"> examples_exist_and_match(</code>
|
3597
3601
|
</li>
|
3598
3602
|
|
3599
|
-
<li class="never" data-hits="" data-linenumber="
|
3603
|
+
<li class="never" data-hits="" data-linenumber="27">
|
3600
3604
|
|
3601
3605
|
|
3602
3606
|
<code class="ruby"> /a/,</code>
|
3603
3607
|
</li>
|
3604
3608
|
|
3605
|
-
<li class="never" data-hits="" data-linenumber="
|
3609
|
+
<li class="never" data-hits="" data-linenumber="28">
|
3606
3610
|
|
3607
3611
|
|
3608
3612
|
<code class="ruby"> /a*/,</code>
|
3609
3613
|
</li>
|
3610
3614
|
|
3611
|
-
<li class="never" data-hits="" data-linenumber="
|
3615
|
+
<li class="never" data-hits="" data-linenumber="29">
|
3612
3616
|
|
3613
3617
|
|
3614
3618
|
<code class="ruby"> /a+/,</code>
|
3615
3619
|
</li>
|
3616
3620
|
|
3617
|
-
<li class="never" data-hits="" data-linenumber="
|
3621
|
+
<li class="never" data-hits="" data-linenumber="30">
|
3618
3622
|
|
3619
3623
|
|
3620
3624
|
<code class="ruby"> /a?/,</code>
|
3621
3625
|
</li>
|
3622
3626
|
|
3623
|
-
<li class="never" data-hits="" data-linenumber="
|
3627
|
+
<li class="never" data-hits="" data-linenumber="31">
|
3624
3628
|
|
3625
3629
|
|
3626
3630
|
<code class="ruby"> /a{1}/,</code>
|
3627
3631
|
</li>
|
3628
3632
|
|
3629
|
-
<li class="never" data-hits="" data-linenumber="
|
3633
|
+
<li class="never" data-hits="" data-linenumber="32">
|
3630
3634
|
|
3631
3635
|
|
3632
3636
|
<code class="ruby"> /a{1,}/,</code>
|
3633
3637
|
</li>
|
3634
3638
|
|
3635
|
-
<li class="never" data-hits="" data-linenumber="
|
3639
|
+
<li class="never" data-hits="" data-linenumber="33">
|
3636
3640
|
|
3637
3641
|
|
3638
3642
|
<code class="ruby"> /a{1,2}/</code>
|
3639
3643
|
</li>
|
3640
3644
|
|
3641
|
-
<li class="never" data-hits="" data-linenumber="
|
3645
|
+
<li class="never" data-hits="" data-linenumber="34">
|
3642
3646
|
|
3643
3647
|
|
3644
3648
|
<code class="ruby"> )</code>
|
3645
3649
|
</li>
|
3646
3650
|
|
3647
|
-
<li class="never" data-hits="" data-linenumber="
|
3651
|
+
<li class="never" data-hits="" data-linenumber="35">
|
3648
3652
|
|
3649
3653
|
|
3650
3654
|
<code class="ruby"> end</code>
|
3651
3655
|
</li>
|
3652
3656
|
|
3653
|
-
<li class="never" data-hits="" data-linenumber="
|
3657
|
+
<li class="never" data-hits="" data-linenumber="36">
|
3654
3658
|
|
3655
3659
|
|
3656
3660
|
<code class="ruby"></code>
|
3657
3661
|
</li>
|
3658
3662
|
|
3659
|
-
<li class="covered" data-hits="1" data-linenumber="
|
3663
|
+
<li class="covered" data-hits="1" data-linenumber="37">
|
3660
3664
|
<span class="hits">1</span>
|
3661
3665
|
|
3662
3666
|
<code class="ruby"> context "for basic groups" do</code>
|
3663
3667
|
</li>
|
3664
3668
|
|
3665
|
-
<li class="covered" data-hits="1" data-linenumber="
|
3669
|
+
<li class="covered" data-hits="1" data-linenumber="38">
|
3666
3670
|
<span class="hits">1</span>
|
3667
3671
|
|
3668
3672
|
<code class="ruby"> examples_exist_and_match(</code>
|
3669
3673
|
</li>
|
3670
3674
|
|
3671
|
-
<li class="never" data-hits="" data-linenumber="
|
3675
|
+
<li class="never" data-hits="" data-linenumber="39">
|
3672
3676
|
|
3673
3677
|
|
3674
3678
|
<code class="ruby"> /[a]/,</code>
|
3675
3679
|
</li>
|
3676
3680
|
|
3677
|
-
<li class="never" data-hits="" data-linenumber="
|
3681
|
+
<li class="never" data-hits="" data-linenumber="40">
|
3678
3682
|
|
3679
3683
|
|
3680
3684
|
<code class="ruby"> /(a)/,</code>
|
3681
3685
|
</li>
|
3682
3686
|
|
3683
|
-
<li class="never" data-hits="" data-linenumber="
|
3687
|
+
<li class="never" data-hits="" data-linenumber="41">
|
3684
3688
|
|
3685
3689
|
|
3686
3690
|
<code class="ruby"> /a|b/,</code>
|
3687
3691
|
</li>
|
3688
3692
|
|
3689
|
-
<li class="never" data-hits="" data-linenumber="
|
3693
|
+
<li class="never" data-hits="" data-linenumber="42">
|
3690
3694
|
|
3691
3695
|
|
3692
3696
|
<code class="ruby"> /./</code>
|
3693
3697
|
</li>
|
3694
3698
|
|
3695
|
-
<li class="never" data-hits="" data-linenumber="
|
3699
|
+
<li class="never" data-hits="" data-linenumber="43">
|
3696
3700
|
|
3697
3701
|
|
3698
3702
|
<code class="ruby"> )</code>
|
3699
3703
|
</li>
|
3700
3704
|
|
3701
|
-
<li class="never" data-hits="" data-linenumber="
|
3705
|
+
<li class="never" data-hits="" data-linenumber="44">
|
3702
3706
|
|
3703
3707
|
|
3704
3708
|
<code class="ruby"> end</code>
|
3705
3709
|
</li>
|
3706
3710
|
|
3707
|
-
<li class="never" data-hits="" data-linenumber="
|
3711
|
+
<li class="never" data-hits="" data-linenumber="45">
|
3708
3712
|
|
3709
3713
|
|
3710
3714
|
<code class="ruby"></code>
|
3711
3715
|
</li>
|
3712
3716
|
|
3713
|
-
<li class="covered" data-hits="1" data-linenumber="
|
3717
|
+
<li class="covered" data-hits="1" data-linenumber="46">
|
3714
3718
|
<span class="hits">1</span>
|
3715
3719
|
|
3716
3720
|
<code class="ruby"> context "for complex char groups (square brackets)" do</code>
|
3717
3721
|
</li>
|
3718
3722
|
|
3719
|
-
<li class="covered" data-hits="1" data-linenumber="
|
3723
|
+
<li class="covered" data-hits="1" data-linenumber="47">
|
3720
3724
|
<span class="hits">1</span>
|
3721
3725
|
|
3722
3726
|
<code class="ruby"> examples_exist_and_match(</code>
|
3723
3727
|
</li>
|
3724
3728
|
|
3725
|
-
<li class="never" data-hits="" data-linenumber="
|
3729
|
+
<li class="never" data-hits="" data-linenumber="48">
|
3726
3730
|
|
3727
3731
|
|
3728
3732
|
<code class="ruby"> /[abc]/,</code>
|
3729
3733
|
</li>
|
3730
3734
|
|
3731
|
-
<li class="never" data-hits="" data-linenumber="
|
3735
|
+
<li class="never" data-hits="" data-linenumber="49">
|
3732
3736
|
|
3733
3737
|
|
3734
3738
|
<code class="ruby"> /[a-c]/,</code>
|
3735
3739
|
</li>
|
3736
3740
|
|
3737
|
-
<li class="never" data-hits="" data-linenumber="
|
3741
|
+
<li class="never" data-hits="" data-linenumber="50">
|
3738
3742
|
|
3739
3743
|
|
3740
3744
|
<code class="ruby"> /[abc-e]/,</code>
|
3741
3745
|
</li>
|
3742
3746
|
|
3743
|
-
<li class="never" data-hits="" data-linenumber="
|
3747
|
+
<li class="never" data-hits="" data-linenumber="51">
|
3744
3748
|
|
3745
3749
|
|
3746
3750
|
<code class="ruby"> /[^a-zA-Z]/,</code>
|
3747
3751
|
</li>
|
3748
3752
|
|
3749
|
-
<li class="never" data-hits="" data-linenumber="
|
3753
|
+
<li class="never" data-hits="" data-linenumber="52">
|
3750
3754
|
|
3751
3755
|
|
3752
3756
|
<code class="ruby"> /[\w]/,</code>
|
3753
3757
|
</li>
|
3754
3758
|
|
3755
|
-
<li class="never" data-hits="" data-linenumber="
|
3759
|
+
<li class="never" data-hits="" data-linenumber="53">
|
3756
3760
|
|
3757
3761
|
|
3758
3762
|
<code class="ruby"> /[]]/, # TODO: How to suppress annoying warnings on this test?</code>
|
3759
3763
|
</li>
|
3760
3764
|
|
3761
|
-
<li class="never" data-hits="" data-linenumber="
|
3765
|
+
<li class="never" data-hits="" data-linenumber="54">
|
3762
3766
|
|
3763
3767
|
|
3764
3768
|
<code class="ruby"> /[\]]/,</code>
|
3765
3769
|
</li>
|
3766
3770
|
|
3767
|
-
<li class="never" data-hits="" data-linenumber="
|
3771
|
+
<li class="never" data-hits="" data-linenumber="55">
|
3768
3772
|
|
3769
3773
|
|
3770
3774
|
<code class="ruby"> /[\\]/,</code>
|
3771
3775
|
</li>
|
3772
3776
|
|
3773
|
-
<li class="never" data-hits="" data-linenumber="
|
3777
|
+
<li class="never" data-hits="" data-linenumber="56">
|
3774
3778
|
|
3775
3779
|
|
3776
3780
|
<code class="ruby"> /[\\\]]/,</code>
|
3777
3781
|
</li>
|
3778
3782
|
|
3779
|
-
<li class="never" data-hits="" data-linenumber="
|
3783
|
+
<li class="never" data-hits="" data-linenumber="57">
|
3780
3784
|
|
3781
3785
|
|
3782
3786
|
<code class="ruby"> /[\n-\r]/,</code>
|
3783
3787
|
</li>
|
3784
3788
|
|
3785
|
-
<li class="never" data-hits="" data-linenumber="
|
3789
|
+
<li class="never" data-hits="" data-linenumber="58">
|
3786
3790
|
|
3787
3791
|
|
3788
3792
|
<code class="ruby"> /[\-]/,</code>
|
3789
3793
|
</li>
|
3790
3794
|
|
3791
|
-
<li class="never" data-hits="" data-linenumber="
|
3795
|
+
<li class="never" data-hits="" data-linenumber="59">
|
3792
3796
|
|
3793
3797
|
|
3794
3798
|
<code class="ruby"> /[%-+]/ # This regex is "supposed to" match some surprising things!!!</code>
|
3795
3799
|
</li>
|
3796
3800
|
|
3797
|
-
<li class="never" data-hits="" data-linenumber="
|
3801
|
+
<li class="never" data-hits="" data-linenumber="60">
|
3798
3802
|
|
3799
3803
|
|
3800
3804
|
<code class="ruby"> )</code>
|
3801
3805
|
</li>
|
3802
3806
|
|
3803
|
-
<li class="never" data-hits="" data-linenumber="
|
3807
|
+
<li class="never" data-hits="" data-linenumber="61">
|
3804
3808
|
|
3805
3809
|
|
3806
3810
|
<code class="ruby"> end</code>
|
3807
3811
|
</li>
|
3808
3812
|
|
3809
|
-
<li class="never" data-hits="" data-linenumber="
|
3813
|
+
<li class="never" data-hits="" data-linenumber="62">
|
3810
3814
|
|
3811
3815
|
|
3812
3816
|
<code class="ruby"></code>
|
3813
3817
|
</li>
|
3814
3818
|
|
3815
|
-
<li class="covered" data-hits="1" data-linenumber="
|
3819
|
+
<li class="covered" data-hits="1" data-linenumber="63">
|
3816
3820
|
<span class="hits">1</span>
|
3817
3821
|
|
3818
3822
|
<code class="ruby"> context "for complex multi groups" do</code>
|
3819
3823
|
</li>
|
3820
3824
|
|
3821
|
-
<li class="covered" data-hits="1" data-linenumber="
|
3825
|
+
<li class="covered" data-hits="1" data-linenumber="64">
|
3822
3826
|
<span class="hits">1</span>
|
3823
3827
|
|
3824
3828
|
<code class="ruby"> examples_exist_and_match(</code>
|
3825
3829
|
</li>
|
3826
3830
|
|
3827
|
-
<li class="never" data-hits="" data-linenumber="
|
3831
|
+
<li class="never" data-hits="" data-linenumber="65">
|
3828
3832
|
|
3829
3833
|
|
3830
3834
|
<code class="ruby"> /(normal)/,</code>
|
3831
3835
|
</li>
|
3832
3836
|
|
3833
|
-
<li class="never" data-hits="" data-linenumber="
|
3837
|
+
<li class="never" data-hits="" data-linenumber="66">
|
3834
3838
|
|
3835
3839
|
|
3836
3840
|
<code class="ruby"> /(?:nocapture)/,</code>
|
3837
3841
|
</li>
|
3838
3842
|
|
3839
|
-
<li class="never" data-hits="" data-linenumber="
|
3843
|
+
<li class="never" data-hits="" data-linenumber="67">
|
3840
3844
|
|
3841
3845
|
|
3842
3846
|
<code class="ruby"> /(?<name>namedgroup)/,</code>
|
3843
3847
|
</li>
|
3844
3848
|
|
3845
|
-
<li class="never" data-hits="" data-linenumber="
|
3849
|
+
<li class="never" data-hits="" data-linenumber="68">
|
3846
3850
|
|
3847
3851
|
|
3848
3852
|
<code class="ruby"> /(?<name>namedgroup) \k<name>/</code>
|
3849
3853
|
</li>
|
3850
3854
|
|
3851
|
-
<li class="never" data-hits="" data-linenumber="
|
3855
|
+
<li class="never" data-hits="" data-linenumber="69">
|
3852
3856
|
|
3853
3857
|
|
3854
3858
|
<code class="ruby"> )</code>
|
3855
3859
|
</li>
|
3856
3860
|
|
3857
|
-
<li class="never" data-hits="" data-linenumber="
|
3858
|
-
|
3859
|
-
|
3860
|
-
<code class="ruby"> # TODO: These are not yet implemented</code>
|
3861
|
-
</li>
|
3862
|
-
|
3863
|
-
<li class="never" data-hits="" data-linenumber="63">
|
3864
|
-
|
3865
|
-
|
3866
|
-
<code class="ruby"> # (expect to raise exception)</code>
|
3867
|
-
</li>
|
3868
|
-
|
3869
|
-
<li class="never" data-hits="" data-linenumber="64">
|
3870
|
-
|
3871
|
-
|
3872
|
-
<code class="ruby"># /(?=lookahead)/,</code>
|
3873
|
-
</li>
|
3874
|
-
|
3875
|
-
<li class="never" data-hits="" data-linenumber="65">
|
3876
|
-
|
3877
|
-
|
3878
|
-
<code class="ruby"># /(?!neglookahead)/,</code>
|
3879
|
-
</li>
|
3880
|
-
|
3881
|
-
<li class="never" data-hits="" data-linenumber="66">
|
3882
|
-
|
3883
|
-
|
3884
|
-
<code class="ruby"># /(?<=lookbehind)/,</code>
|
3885
|
-
</li>
|
3886
|
-
|
3887
|
-
<li class="never" data-hits="" data-linenumber="67">
|
3888
|
-
|
3889
|
-
|
3890
|
-
<code class="ruby"># /(?<!neglookbehind)/,</code>
|
3891
|
-
</li>
|
3892
|
-
|
3893
|
-
<li class="never" data-hits="" data-linenumber="68">
|
3861
|
+
<li class="never" data-hits="" data-linenumber="70">
|
3894
3862
|
|
3895
3863
|
|
3896
3864
|
<code class="ruby"> end</code>
|
3897
3865
|
</li>
|
3898
3866
|
|
3899
|
-
<li class="never" data-hits="" data-linenumber="
|
3867
|
+
<li class="never" data-hits="" data-linenumber="71">
|
3900
3868
|
|
3901
3869
|
|
3902
3870
|
<code class="ruby"></code>
|
3903
3871
|
</li>
|
3904
3872
|
|
3905
|
-
<li class="covered" data-hits="1" data-linenumber="
|
3873
|
+
<li class="covered" data-hits="1" data-linenumber="72">
|
3906
3874
|
<span class="hits">1</span>
|
3907
3875
|
|
3908
3876
|
<code class="ruby"> context "for escaped characters" do</code>
|
3909
3877
|
</li>
|
3910
3878
|
|
3911
|
-
<li class="covered" data-hits="1" data-linenumber="
|
3879
|
+
<li class="covered" data-hits="1" data-linenumber="73">
|
3912
3880
|
<span class="hits">1</span>
|
3913
3881
|
|
3914
3882
|
<code class="ruby"> examples_exist_and_match(</code>
|
3915
3883
|
</li>
|
3916
3884
|
|
3917
|
-
<li class="never" data-hits="" data-linenumber="
|
3885
|
+
<li class="never" data-hits="" data-linenumber="74">
|
3918
3886
|
|
3919
3887
|
|
3920
3888
|
<code class="ruby"> /\w/,</code>
|
3921
3889
|
</li>
|
3922
3890
|
|
3923
|
-
<li class="never" data-hits="" data-linenumber="
|
3891
|
+
<li class="never" data-hits="" data-linenumber="75">
|
3924
3892
|
|
3925
3893
|
|
3926
3894
|
<code class="ruby"> /\W/,</code>
|
3927
3895
|
</li>
|
3928
3896
|
|
3929
|
-
<li class="never" data-hits="" data-linenumber="
|
3897
|
+
<li class="never" data-hits="" data-linenumber="76">
|
3930
3898
|
|
3931
3899
|
|
3932
3900
|
<code class="ruby"> /\s/,</code>
|
3933
3901
|
</li>
|
3934
3902
|
|
3935
|
-
<li class="never" data-hits="" data-linenumber="
|
3903
|
+
<li class="never" data-hits="" data-linenumber="77">
|
3936
3904
|
|
3937
3905
|
|
3938
3906
|
<code class="ruby"> /\S/,</code>
|
3939
3907
|
</li>
|
3940
3908
|
|
3941
|
-
<li class="never" data-hits="" data-linenumber="
|
3909
|
+
<li class="never" data-hits="" data-linenumber="78">
|
3942
3910
|
|
3943
3911
|
|
3944
3912
|
<code class="ruby"> /\d/,</code>
|
3945
3913
|
</li>
|
3946
3914
|
|
3947
|
-
<li class="never" data-hits="" data-linenumber="
|
3915
|
+
<li class="never" data-hits="" data-linenumber="79">
|
3948
3916
|
|
3949
3917
|
|
3950
3918
|
<code class="ruby"> /\D/,</code>
|
3951
3919
|
</li>
|
3952
3920
|
|
3953
|
-
<li class="never" data-hits="" data-linenumber="
|
3921
|
+
<li class="never" data-hits="" data-linenumber="80">
|
3954
3922
|
|
3955
3923
|
|
3956
3924
|
<code class="ruby"> /\h/,</code>
|
3957
3925
|
</li>
|
3958
3926
|
|
3959
|
-
<li class="never" data-hits="" data-linenumber="
|
3927
|
+
<li class="never" data-hits="" data-linenumber="81">
|
3960
3928
|
|
3961
3929
|
|
3962
3930
|
<code class="ruby"> /\H/,</code>
|
3963
3931
|
</li>
|
3964
3932
|
|
3965
|
-
<li class="never" data-hits="" data-linenumber="
|
3933
|
+
<li class="never" data-hits="" data-linenumber="82">
|
3966
3934
|
|
3967
3935
|
|
3968
3936
|
<code class="ruby"> /\t/,</code>
|
3969
3937
|
</li>
|
3970
3938
|
|
3971
|
-
<li class="never" data-hits="" data-linenumber="
|
3939
|
+
<li class="never" data-hits="" data-linenumber="83">
|
3972
3940
|
|
3973
3941
|
|
3974
3942
|
<code class="ruby"> /\n/,</code>
|
3975
3943
|
</li>
|
3976
3944
|
|
3977
|
-
<li class="never" data-hits="" data-linenumber="
|
3945
|
+
<li class="never" data-hits="" data-linenumber="84">
|
3978
3946
|
|
3979
3947
|
|
3980
3948
|
<code class="ruby"> /\f/,</code>
|
3981
3949
|
</li>
|
3982
3950
|
|
3983
|
-
<li class="never" data-hits="" data-linenumber="
|
3951
|
+
<li class="never" data-hits="" data-linenumber="85">
|
3984
3952
|
|
3985
3953
|
|
3986
3954
|
<code class="ruby"> /\a/,</code>
|
3987
3955
|
</li>
|
3988
3956
|
|
3989
|
-
<li class="never" data-hits="" data-linenumber="
|
3957
|
+
<li class="never" data-hits="" data-linenumber="86">
|
3990
3958
|
|
3991
3959
|
|
3992
3960
|
<code class="ruby"> /\v/,</code>
|
3993
3961
|
</li>
|
3994
3962
|
|
3995
|
-
<li class="never" data-hits="" data-linenumber="
|
3963
|
+
<li class="never" data-hits="" data-linenumber="87">
|
3996
3964
|
|
3997
3965
|
|
3998
3966
|
<code class="ruby"> /\e/</code>
|
3999
3967
|
</li>
|
4000
3968
|
|
4001
|
-
<li class="never" data-hits="" data-linenumber="
|
3969
|
+
<li class="never" data-hits="" data-linenumber="88">
|
4002
3970
|
|
4003
3971
|
|
4004
3972
|
<code class="ruby"> )</code>
|
4005
3973
|
</li>
|
4006
3974
|
|
4007
|
-
<li class="never" data-hits="" data-linenumber="
|
3975
|
+
<li class="never" data-hits="" data-linenumber="89">
|
4008
3976
|
|
4009
3977
|
|
4010
3978
|
<code class="ruby"> end</code>
|
4011
3979
|
</li>
|
4012
3980
|
|
4013
|
-
<li class="never" data-hits="" data-linenumber="
|
3981
|
+
<li class="never" data-hits="" data-linenumber="90">
|
4014
3982
|
|
4015
3983
|
|
4016
3984
|
<code class="ruby"></code>
|
4017
3985
|
</li>
|
4018
3986
|
|
4019
|
-
<li class="covered" data-hits="1" data-linenumber="
|
3987
|
+
<li class="covered" data-hits="1" data-linenumber="91">
|
4020
3988
|
<span class="hits">1</span>
|
4021
3989
|
|
4022
3990
|
<code class="ruby"> context "for backreferences" do</code>
|
4023
3991
|
</li>
|
4024
3992
|
|
4025
|
-
<li class="covered" data-hits="1" data-linenumber="
|
3993
|
+
<li class="covered" data-hits="1" data-linenumber="92">
|
4026
3994
|
<span class="hits">1</span>
|
4027
3995
|
|
4028
3996
|
<code class="ruby"> examples_exist_and_match(</code>
|
4029
3997
|
</li>
|
4030
3998
|
|
4031
|
-
<li class="never" data-hits="" data-linenumber="
|
3999
|
+
<li class="never" data-hits="" data-linenumber="93">
|
4032
4000
|
|
4033
4001
|
|
4034
4002
|
<code class="ruby"> /(repeat) \1/,</code>
|
4035
4003
|
</li>
|
4036
4004
|
|
4037
|
-
<li class="never" data-hits="" data-linenumber="
|
4005
|
+
<li class="never" data-hits="" data-linenumber="94">
|
4038
4006
|
|
4039
4007
|
|
4040
4008
|
<code class="ruby"> /(ref1) (ref2) \1 \2/,</code>
|
4041
4009
|
</li>
|
4042
4010
|
|
4043
|
-
<li class="never" data-hits="" data-linenumber="
|
4011
|
+
<li class="never" data-hits="" data-linenumber="95">
|
4044
4012
|
|
4045
4013
|
|
4046
4014
|
<code class="ruby"> /((ref2)ref1) \1 \2/,</code>
|
4047
4015
|
</li>
|
4048
4016
|
|
4049
|
-
<li class="never" data-hits="" data-linenumber="
|
4017
|
+
<li class="never" data-hits="" data-linenumber="96">
|
4050
4018
|
|
4051
4019
|
|
4052
4020
|
<code class="ruby"> /((ref1and2)) \1 \2/,</code>
|
4053
4021
|
</li>
|
4054
4022
|
|
4055
|
-
<li class="never" data-hits="" data-linenumber="
|
4023
|
+
<li class="never" data-hits="" data-linenumber="97">
|
4056
4024
|
|
4057
4025
|
|
4058
4026
|
<code class="ruby"> /(one)(two)(three)(four)(five)(six)(seven)(eight)(nine)(ten) \10\9\8\7\6\5\4\3\2\1/,</code>
|
4059
4027
|
</li>
|
4060
4028
|
|
4061
|
-
<li class="never" data-hits="" data-linenumber="
|
4029
|
+
<li class="never" data-hits="" data-linenumber="98">
|
4062
4030
|
|
4063
4031
|
|
4064
4032
|
<code class="ruby"> /(a?(b?(c?(d?(e?)))))/</code>
|
4065
4033
|
</li>
|
4066
4034
|
|
4067
|
-
<li class="never" data-hits="" data-linenumber="
|
4035
|
+
<li class="never" data-hits="" data-linenumber="99">
|
4068
4036
|
|
4069
4037
|
|
4070
4038
|
<code class="ruby"> )</code>
|
4071
4039
|
</li>
|
4072
4040
|
|
4073
|
-
<li class="never" data-hits="" data-linenumber="
|
4041
|
+
<li class="never" data-hits="" data-linenumber="100">
|
4074
4042
|
|
4075
4043
|
|
4076
4044
|
<code class="ruby"> end</code>
|
4077
4045
|
</li>
|
4078
4046
|
|
4079
|
-
<li class="never" data-hits="" data-linenumber="
|
4047
|
+
<li class="never" data-hits="" data-linenumber="101">
|
4080
4048
|
|
4081
4049
|
|
4082
4050
|
<code class="ruby"></code>
|
4083
4051
|
</li>
|
4084
4052
|
|
4085
|
-
<li class="covered" data-hits="1" data-linenumber="
|
4053
|
+
<li class="covered" data-hits="1" data-linenumber="102">
|
4086
4054
|
<span class="hits">1</span>
|
4087
4055
|
|
4088
4056
|
<code class="ruby"> context "for complex patterns" do</code>
|
4089
4057
|
</li>
|
4090
4058
|
|
4091
|
-
<li class="never" data-hits="" data-linenumber="
|
4059
|
+
<li class="never" data-hits="" data-linenumber="103">
|
4092
4060
|
|
4093
4061
|
|
4094
4062
|
<code class="ruby"> # Longer combinations of the above</code>
|
4095
4063
|
</li>
|
4096
4064
|
|
4097
|
-
<li class="covered" data-hits="1" data-linenumber="
|
4065
|
+
<li class="covered" data-hits="1" data-linenumber="104">
|
4098
4066
|
<span class="hits">1</span>
|
4099
4067
|
|
4100
4068
|
<code class="ruby"> examples_exist_and_match(</code>
|
4101
4069
|
</li>
|
4102
4070
|
|
4103
|
-
<li class="never" data-hits="" data-linenumber="
|
4071
|
+
<li class="never" data-hits="" data-linenumber="105">
|
4104
4072
|
|
4105
4073
|
|
4106
4074
|
<code class="ruby"> /https?:\/\/(www\.)github\.com/,</code>
|
4107
4075
|
</li>
|
4108
4076
|
|
4109
|
-
<li class="never" data-hits="" data-linenumber="
|
4077
|
+
<li class="never" data-hits="" data-linenumber="106">
|
4110
4078
|
|
4111
4079
|
|
4112
4080
|
<code class="ruby"> /(I(N(C(E(P(T(I(O(N)))))))))*/,</code>
|
4113
4081
|
</li>
|
4114
4082
|
|
4115
|
-
<li class="never" data-hits="" data-linenumber="
|
4083
|
+
<li class="never" data-hits="" data-linenumber="107">
|
4116
4084
|
|
4117
4085
|
|
4118
4086
|
<code class="ruby"> /[\w]{1}/,</code>
|
4119
4087
|
</li>
|
4120
4088
|
|
4121
|
-
<li class="never" data-hits="" data-linenumber="
|
4089
|
+
<li class="never" data-hits="" data-linenumber="108">
|
4122
4090
|
|
4123
4091
|
|
4124
4092
|
<code class="ruby"> /((a?b*c+)) \1/,</code>
|
4125
4093
|
</li>
|
4126
4094
|
|
4127
|
-
<li class="never" data-hits="" data-linenumber="
|
4095
|
+
<li class="never" data-hits="" data-linenumber="109">
|
4128
4096
|
|
4129
4097
|
|
4130
4098
|
<code class="ruby"> /((a?b*c+)?) \1/,</code>
|
4131
4099
|
</li>
|
4132
4100
|
|
4133
|
-
<li class="never" data-hits="" data-linenumber="
|
4101
|
+
<li class="never" data-hits="" data-linenumber="110">
|
4134
4102
|
|
4135
4103
|
|
4136
4104
|
<code class="ruby"> /a|b|c|d/,</code>
|
4137
4105
|
</li>
|
4138
4106
|
|
4139
|
-
<li class="never" data-hits="" data-linenumber="
|
4107
|
+
<li class="never" data-hits="" data-linenumber="111">
|
4140
4108
|
|
4141
4109
|
|
4142
4110
|
<code class="ruby"> /a+|b*|c?/</code>
|
4143
4111
|
</li>
|
4144
4112
|
|
4145
|
-
<li class="never" data-hits="" data-linenumber="
|
4113
|
+
<li class="never" data-hits="" data-linenumber="112">
|
4146
4114
|
|
4147
4115
|
|
4148
4116
|
<code class="ruby"> )</code>
|
4149
4117
|
</li>
|
4150
4118
|
|
4151
|
-
<li class="never" data-hits="" data-linenumber="
|
4119
|
+
<li class="never" data-hits="" data-linenumber="113">
|
4152
4120
|
|
4153
4121
|
|
4154
4122
|
<code class="ruby"> end</code>
|
4155
4123
|
</li>
|
4156
4124
|
|
4157
|
-
<li class="never" data-hits="" data-linenumber="
|
4125
|
+
<li class="never" data-hits="" data-linenumber="114">
|
4126
|
+
|
4127
|
+
|
4128
|
+
<code class="ruby"></code>
|
4129
|
+
</li>
|
4130
|
+
|
4131
|
+
<li class="covered" data-hits="1" data-linenumber="115">
|
4132
|
+
<span class="hits">1</span>
|
4133
|
+
|
4134
|
+
<code class="ruby"> context "for illegal syntax" do</code>
|
4135
|
+
</li>
|
4136
|
+
|
4137
|
+
<li class="covered" data-hits="1" data-linenumber="116">
|
4138
|
+
<span class="hits">1</span>
|
4139
|
+
|
4140
|
+
<code class="ruby"> examples_raise_illegal_syntax_error(</code>
|
4141
|
+
</li>
|
4142
|
+
|
4143
|
+
<li class="never" data-hits="" data-linenumber="117">
|
4144
|
+
|
4145
|
+
|
4146
|
+
<code class="ruby"> /(?=lookahead)/,</code>
|
4147
|
+
</li>
|
4148
|
+
|
4149
|
+
<li class="never" data-hits="" data-linenumber="118">
|
4150
|
+
|
4151
|
+
|
4152
|
+
<code class="ruby"> /(?!neglookahead)/,</code>
|
4153
|
+
</li>
|
4154
|
+
|
4155
|
+
<li class="never" data-hits="" data-linenumber="119">
|
4156
|
+
|
4157
|
+
|
4158
|
+
<code class="ruby"> /(?<=lookbehind)/,</code>
|
4159
|
+
</li>
|
4160
|
+
|
4161
|
+
<li class="never" data-hits="" data-linenumber="120">
|
4162
|
+
|
4163
|
+
|
4164
|
+
<code class="ruby"> /(?<!neglookbehind)/</code>
|
4165
|
+
</li>
|
4166
|
+
|
4167
|
+
<li class="never" data-hits="" data-linenumber="121">
|
4168
|
+
|
4169
|
+
|
4170
|
+
<code class="ruby"> )</code>
|
4171
|
+
</li>
|
4172
|
+
|
4173
|
+
<li class="never" data-hits="" data-linenumber="122">
|
4174
|
+
|
4175
|
+
|
4176
|
+
<code class="ruby"> end</code>
|
4177
|
+
</li>
|
4178
|
+
|
4179
|
+
<li class="never" data-hits="" data-linenumber="123">
|
4158
4180
|
|
4159
4181
|
|
4160
4182
|
<code class="ruby"> end</code>
|
4161
4183
|
</li>
|
4162
4184
|
|
4163
|
-
<li class="never" data-hits="" data-linenumber="
|
4185
|
+
<li class="never" data-hits="" data-linenumber="124">
|
4164
4186
|
|
4165
4187
|
|
4166
4188
|
<code class="ruby">end</code>
|