regexp-examples 0.2.3 → 0.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +5 -3
- data/coverage/.resultset.json +212 -180
- data/coverage/index.html +497 -305
- data/lib/regexp-examples/parser.rb +19 -6
- data/lib/regexp-examples/version.rb +1 -1
- data/spec/regexp-examples_spec.rb +20 -1
- metadata +2 -2
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-17T16:37:30+00:00">2015-01-17T16:37:30+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
|
+
74.89
|
29
29
|
</span>
|
30
30
|
</span> hits/line)
|
31
31
|
</h2>
|
32
32
|
<a name="AllFiles"></a>
|
33
33
|
<div>
|
34
34
|
<b>10</b> files in total.
|
35
|
-
<b>
|
36
|
-
<span class="green"><b>
|
35
|
+
<b>316</b> relevant lines.
|
36
|
+
<span class="green"><b>316</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">
|
@@ -51,7 +51,7 @@
|
|
51
51
|
<tbody>
|
52
52
|
|
53
53
|
<tr>
|
54
|
-
<td class="strong"><a href="#
|
54
|
+
<td class="strong"><a href="#54b5d2a122ff754d8ac3e44ac036a743f275d5cd" class="src_link" title="lib/regexp-examples.rb">lib/regexp-examples.rb</a></td>
|
55
55
|
<td class="green strong">100.0 %</td>
|
56
56
|
<td>2</td>
|
57
57
|
<td>1</td>
|
@@ -61,17 +61,17 @@
|
|
61
61
|
</tr>
|
62
62
|
|
63
63
|
<tr>
|
64
|
-
<td class="strong"><a href="#
|
64
|
+
<td class="strong"><a href="#93190cc93d103d3260faf0664b10ff54c6eea083" 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
66
|
<td>21</td>
|
67
67
|
<td>11</td>
|
68
68
|
<td>11</td>
|
69
69
|
<td>0</td>
|
70
|
-
<td>
|
70
|
+
<td>48.7</td>
|
71
71
|
</tr>
|
72
72
|
|
73
73
|
<tr>
|
74
|
-
<td class="strong"><a href="#
|
74
|
+
<td class="strong"><a href="#63a4d8bce3d583c95db1448751ea1a5d89880a5c" class="src_link" title="lib/regexp-examples/constants.rb">lib/regexp-examples/constants.rb</a></td>
|
75
75
|
<td class="green strong">100.0 %</td>
|
76
76
|
<td>42</td>
|
77
77
|
<td>12</td>
|
@@ -81,7 +81,7 @@
|
|
81
81
|
</tr>
|
82
82
|
|
83
83
|
<tr>
|
84
|
-
<td class="strong"><a href="#
|
84
|
+
<td class="strong"><a href="#1bb4101b0e3c014469af0221a5549cd762b969cb" class="src_link" title="lib/regexp-examples/exceptions.rb">lib/regexp-examples/exceptions.rb</a></td>
|
85
85
|
<td class="green strong">100.0 %</td>
|
86
86
|
<td>5</td>
|
87
87
|
<td>4</td>
|
@@ -91,63 +91,63 @@
|
|
91
91
|
</tr>
|
92
92
|
|
93
93
|
<tr>
|
94
|
-
<td class="strong"><a href="#
|
94
|
+
<td class="strong"><a href="#a6c87537a3f20f2e6e7fc1c61e4c6c791987b6f8" class="src_link" title="lib/regexp-examples/groups.rb">lib/regexp-examples/groups.rb</a></td>
|
95
95
|
<td class="green strong">100.0 %</td>
|
96
96
|
<td>145</td>
|
97
97
|
<td>77</td>
|
98
98
|
<td>77</td>
|
99
99
|
<td>0</td>
|
100
|
-
<td>
|
100
|
+
<td>149.5</td>
|
101
101
|
</tr>
|
102
102
|
|
103
103
|
<tr>
|
104
|
-
<td class="strong"><a href="#
|
104
|
+
<td class="strong"><a href="#9ae955cbc95623603c71e3cb5269e0b5572d66bb" class="src_link" title="lib/regexp-examples/helpers.rb">lib/regexp-examples/helpers.rb</a></td>
|
105
105
|
<td class="green strong">100.0 %</td>
|
106
106
|
<td>26</td>
|
107
107
|
<td>10</td>
|
108
108
|
<td>10</td>
|
109
109
|
<td>0</td>
|
110
|
-
<td>
|
110
|
+
<td>171.5</td>
|
111
111
|
</tr>
|
112
112
|
|
113
113
|
<tr>
|
114
|
-
<td class="strong"><a href="#
|
114
|
+
<td class="strong"><a href="#d0056bbc5aec01e743374a8696b2086c03bae8f0" class="src_link" title="lib/regexp-examples/parser.rb">lib/regexp-examples/parser.rb</a></td>
|
115
115
|
<td class="green strong">100.0 %</td>
|
116
|
-
<td>
|
117
|
-
<td>
|
118
|
-
<td>
|
116
|
+
<td>205</td>
|
117
|
+
<td>116</td>
|
118
|
+
<td>116</td>
|
119
119
|
<td>0</td>
|
120
|
-
<td>
|
120
|
+
<td>53.0</td>
|
121
121
|
</tr>
|
122
122
|
|
123
123
|
<tr>
|
124
|
-
<td class="strong"><a href="#
|
124
|
+
<td class="strong"><a href="#7f62a530f44ef896b613d357fee92d31ffb7ede8" class="src_link" title="lib/regexp-examples/regexp_extensions.rb">lib/regexp-examples/regexp_extensions.rb</a></td>
|
125
125
|
<td class="green strong">100.0 %</td>
|
126
126
|
<td>14</td>
|
127
127
|
<td>8</td>
|
128
128
|
<td>8</td>
|
129
129
|
<td>0</td>
|
130
|
-
<td>
|
130
|
+
<td>43.5</td>
|
131
131
|
</tr>
|
132
132
|
|
133
133
|
<tr>
|
134
|
-
<td class="strong"><a href="#
|
134
|
+
<td class="strong"><a href="#0688fc9c3b085e9a6444775c61767c9c5742fb69" class="src_link" title="lib/regexp-examples/repeaters.rb">lib/regexp-examples/repeaters.rb</a></td>
|
135
135
|
<td class="green strong">100.0 %</td>
|
136
136
|
<td>78</td>
|
137
137
|
<td>43</td>
|
138
138
|
<td>43</td>
|
139
139
|
<td>0</td>
|
140
|
-
<td>
|
140
|
+
<td>65.6</td>
|
141
141
|
</tr>
|
142
142
|
|
143
143
|
<tr>
|
144
|
-
<td class="strong"><a href="#
|
144
|
+
<td class="strong"><a href="#953f94f8f5f8bad7e1fa800f942a74b781f8fa1c" class="src_link" title="spec/regexp-examples_spec.rb">spec/regexp-examples_spec.rb</a></td>
|
145
145
|
<td class="green strong">100.0 %</td>
|
146
|
-
<td>
|
147
|
-
<td>
|
148
|
-
<td>
|
146
|
+
<td>155</td>
|
147
|
+
<td>34</td>
|
148
|
+
<td>34</td>
|
149
149
|
<td>0</td>
|
150
|
-
<td>14.
|
150
|
+
<td>14.4</td>
|
151
151
|
</tr>
|
152
152
|
|
153
153
|
</tbody>
|
@@ -166,7 +166,7 @@
|
|
166
166
|
|
167
167
|
<div class="source_files">
|
168
168
|
|
169
|
-
<div class="source_table" id="
|
169
|
+
<div class="source_table" id="54b5d2a122ff754d8ac3e44ac036a743f275d5cd">
|
170
170
|
<div class="header">
|
171
171
|
<h3>lib/regexp-examples.rb</h3>
|
172
172
|
<h4><span class="green">100.0 %</span> covered</h4>
|
@@ -196,7 +196,7 @@
|
|
196
196
|
</pre>
|
197
197
|
</div>
|
198
198
|
|
199
|
-
<div class="source_table" id="
|
199
|
+
<div class="source_table" id="93190cc93d103d3260faf0664b10ff54c6eea083">
|
200
200
|
<div class="header">
|
201
201
|
<h3>lib/regexp-examples/backreferences.rb</h3>
|
202
202
|
<h4><span class="green">100.0 %</span> covered</h4>
|
@@ -228,14 +228,14 @@
|
|
228
228
|
<code class="ruby"> def substitute_backreferences(full_examples)</code>
|
229
229
|
</li>
|
230
230
|
|
231
|
-
<li class="covered" data-hits="
|
232
|
-
<span class="hits">
|
231
|
+
<li class="covered" data-hits="69" data-linenumber="4">
|
232
|
+
<span class="hits">69</span>
|
233
233
|
|
234
234
|
<code class="ruby"> full_examples.map do |full_example|</code>
|
235
235
|
</li>
|
236
236
|
|
237
|
-
<li class="covered" data-hits="
|
238
|
-
<span class="hits">
|
237
|
+
<li class="covered" data-hits="165" data-linenumber="5">
|
238
|
+
<span class="hits">165</span>
|
239
239
|
|
240
240
|
<code class="ruby"> while full_example.match(/__(\w+?)__/)</code>
|
241
241
|
</li>
|
@@ -252,8 +252,8 @@
|
|
252
252
|
<code class="ruby"> end</code>
|
253
253
|
</li>
|
254
254
|
|
255
|
-
<li class="covered" data-hits="
|
256
|
-
<span class="hits">
|
255
|
+
<li class="covered" data-hits="165" data-linenumber="8">
|
256
|
+
<span class="hits">165</span>
|
257
257
|
|
258
258
|
<code class="ruby"> full_example</code>
|
259
259
|
</li>
|
@@ -340,7 +340,7 @@
|
|
340
340
|
</pre>
|
341
341
|
</div>
|
342
342
|
|
343
|
-
<div class="source_table" id="
|
343
|
+
<div class="source_table" id="63a4d8bce3d583c95db1448751ea1a5d89880a5c">
|
344
344
|
<div class="header">
|
345
345
|
<h3>lib/regexp-examples/constants.rb</h3>
|
346
346
|
<h4><span class="green">100.0 %</span> covered</h4>
|
@@ -610,7 +610,7 @@
|
|
610
610
|
</pre>
|
611
611
|
</div>
|
612
612
|
|
613
|
-
<div class="source_table" id="
|
613
|
+
<div class="source_table" id="1bb4101b0e3c014469af0221a5549cd762b969cb">
|
614
614
|
<div class="header">
|
615
615
|
<h3>lib/regexp-examples/exceptions.rb</h3>
|
616
616
|
<h4><span class="green">100.0 %</span> covered</h4>
|
@@ -658,7 +658,7 @@
|
|
658
658
|
</pre>
|
659
659
|
</div>
|
660
660
|
|
661
|
-
<div class="source_table" id="
|
661
|
+
<div class="source_table" id="a6c87537a3f20f2e6e7fc1c61e4c6c791987b6f8">
|
662
662
|
<div class="header">
|
663
663
|
<h3>lib/regexp-examples/groups.rb</h3>
|
664
664
|
<h4><span class="green">100.0 %</span> covered</h4>
|
@@ -714,20 +714,20 @@
|
|
714
714
|
<code class="ruby"> def initialize(result, group_id = nil, subgroups = [])</code>
|
715
715
|
</li>
|
716
716
|
|
717
|
-
<li class="covered" data-hits="
|
718
|
-
<span class="hits">
|
717
|
+
<li class="covered" data-hits="1677" data-linenumber="8">
|
718
|
+
<span class="hits">1677</span>
|
719
719
|
|
720
720
|
<code class="ruby"> @group_id = group_id</code>
|
721
721
|
</li>
|
722
722
|
|
723
|
-
<li class="covered" data-hits="
|
724
|
-
<span class="hits">
|
723
|
+
<li class="covered" data-hits="1677" data-linenumber="9">
|
724
|
+
<span class="hits">1677</span>
|
725
725
|
|
726
726
|
<code class="ruby"> @subgroups = subgroups</code>
|
727
727
|
</li>
|
728
728
|
|
729
|
-
<li class="covered" data-hits="
|
730
|
-
<span class="hits">
|
729
|
+
<li class="covered" data-hits="1677" data-linenumber="10">
|
730
|
+
<span class="hits">1677</span>
|
731
731
|
|
732
732
|
<code class="ruby"> if result.respond_to?(:group_id)</code>
|
733
733
|
</li>
|
@@ -744,8 +744,8 @@
|
|
744
744
|
<code class="ruby"> end</code>
|
745
745
|
</li>
|
746
746
|
|
747
|
-
<li class="covered" data-hits="
|
748
|
-
<span class="hits">
|
747
|
+
<li class="covered" data-hits="1677" data-linenumber="13">
|
748
|
+
<span class="hits">1677</span>
|
749
749
|
|
750
750
|
<code class="ruby"> super(result)</code>
|
751
751
|
</li>
|
@@ -768,8 +768,8 @@
|
|
768
768
|
<code class="ruby"> def all_subgroups</code>
|
769
769
|
</li>
|
770
770
|
|
771
|
-
<li class="covered" data-hits="
|
772
|
-
<span class="hits">
|
771
|
+
<li class="covered" data-hits="1683" data-linenumber="17">
|
772
|
+
<span class="hits">1683</span>
|
773
773
|
|
774
774
|
<code class="ruby"> [self, subgroups].flatten.reject { |subgroup| subgroup.group_id.nil? }</code>
|
775
775
|
</li>
|
@@ -804,8 +804,8 @@
|
|
804
804
|
<code class="ruby"> def *(int)</code>
|
805
805
|
</li>
|
806
806
|
|
807
|
-
<li class="covered" data-hits="
|
808
|
-
<span class="hits">
|
807
|
+
<li class="covered" data-hits="434" data-linenumber="23">
|
808
|
+
<span class="hits">434</span>
|
809
809
|
|
810
810
|
<code class="ruby"> self.class.new(super.to_s, group_id, subgroups)</code>
|
811
811
|
</li>
|
@@ -840,8 +840,8 @@
|
|
840
840
|
<code class="ruby"> def initialize(char)</code>
|
841
841
|
</li>
|
842
842
|
|
843
|
-
<li class="covered" data-hits="
|
844
|
-
<span class="hits">
|
843
|
+
<li class="covered" data-hits="194" data-linenumber="29">
|
844
|
+
<span class="hits">194</span>
|
845
845
|
|
846
846
|
<code class="ruby"> @char = char</code>
|
847
847
|
</li>
|
@@ -858,8 +858,8 @@
|
|
858
858
|
<code class="ruby"> def result</code>
|
859
859
|
</li>
|
860
860
|
|
861
|
-
<li class="covered" data-hits="
|
862
|
-
<span class="hits">
|
861
|
+
<li class="covered" data-hits="194" data-linenumber="32">
|
862
|
+
<span class="hits">194</span>
|
863
863
|
|
864
864
|
<code class="ruby"> [GroupResult.new(@char)]</code>
|
865
865
|
</li>
|
@@ -1546,7 +1546,7 @@
|
|
1546
1546
|
</pre>
|
1547
1547
|
</div>
|
1548
1548
|
|
1549
|
-
<div class="source_table" id="
|
1549
|
+
<div class="source_table" id="9ae955cbc95623603c71e3cb5269e0b5572d66bb">
|
1550
1550
|
<div class="header">
|
1551
1551
|
<h3>lib/regexp-examples/helpers.rb</h3>
|
1552
1552
|
<h4><span class="green">100.0 %</span> covered</h4>
|
@@ -1620,26 +1620,26 @@
|
|
1620
1620
|
<code class="ruby"> def self.permutations_of_strings(arrays_of_strings, options={})</code>
|
1621
1621
|
</li>
|
1622
1622
|
|
1623
|
-
<li class="covered" data-hits="
|
1624
|
-
<span class="hits">
|
1623
|
+
<li class="covered" data-hits="290" data-linenumber="11">
|
1624
|
+
<span class="hits">290</span>
|
1625
1625
|
|
1626
1626
|
<code class="ruby"> first = arrays_of_strings.shift</code>
|
1627
1627
|
</li>
|
1628
1628
|
|
1629
|
-
<li class="covered" data-hits="
|
1630
|
-
<span class="hits">
|
1629
|
+
<li class="covered" data-hits="290" data-linenumber="12">
|
1630
|
+
<span class="hits">290</span>
|
1631
1631
|
|
1632
1632
|
<code class="ruby"> return first if arrays_of_strings.empty?</code>
|
1633
1633
|
</li>
|
1634
1634
|
|
1635
|
-
<li class="covered" data-hits="
|
1636
|
-
<span class="hits">
|
1635
|
+
<li class="covered" data-hits="168" data-linenumber="13">
|
1636
|
+
<span class="hits">168</span>
|
1637
1637
|
|
1638
1638
|
<code class="ruby"> first.product( permutations_of_strings(arrays_of_strings, options) ).map do |result|</code>
|
1639
1639
|
</li>
|
1640
1640
|
|
1641
|
-
<li class="covered" data-hits="
|
1642
|
-
<span class="hits">
|
1641
|
+
<li class="covered" data-hits="241" data-linenumber="14">
|
1642
|
+
<span class="hits">241</span>
|
1643
1643
|
|
1644
1644
|
<code class="ruby"> join_preserving_capture_groups(result)</code>
|
1645
1645
|
</li>
|
@@ -1668,14 +1668,14 @@
|
|
1668
1668
|
<code class="ruby"> def self.join_preserving_capture_groups(result)</code>
|
1669
1669
|
</li>
|
1670
1670
|
|
1671
|
-
<li class="covered" data-hits="
|
1672
|
-
<span class="hits">
|
1671
|
+
<li class="covered" data-hits="241" data-linenumber="19">
|
1672
|
+
<span class="hits">241</span>
|
1673
1673
|
|
1674
1674
|
<code class="ruby"> result.flatten!</code>
|
1675
1675
|
</li>
|
1676
1676
|
|
1677
|
-
<li class="covered" data-hits="
|
1678
|
-
<span class="hits">
|
1677
|
+
<li class="covered" data-hits="241" data-linenumber="20">
|
1678
|
+
<span class="hits">241</span>
|
1679
1679
|
|
1680
1680
|
<code class="ruby"> subgroups = result</code>
|
1681
1681
|
</li>
|
@@ -1692,8 +1692,8 @@
|
|
1692
1692
|
<code class="ruby"> .flatten</code>
|
1693
1693
|
</li>
|
1694
1694
|
|
1695
|
-
<li class="covered" data-hits="
|
1696
|
-
<span class="hits">
|
1695
|
+
<li class="covered" data-hits="241" data-linenumber="23">
|
1696
|
+
<span class="hits">241</span>
|
1697
1697
|
|
1698
1698
|
<code class="ruby"> GroupResult.new(result.join, nil, subgroups)</code>
|
1699
1699
|
</li>
|
@@ -1720,13 +1720,13 @@
|
|
1720
1720
|
</pre>
|
1721
1721
|
</div>
|
1722
1722
|
|
1723
|
-
<div class="source_table" id="
|
1723
|
+
<div class="source_table" id="d0056bbc5aec01e743374a8696b2086c03bae8f0">
|
1724
1724
|
<div class="header">
|
1725
1725
|
<h3>lib/regexp-examples/parser.rb</h3>
|
1726
1726
|
<h4><span class="green">100.0 %</span> covered</h4>
|
1727
1727
|
<div>
|
1728
|
-
<b>
|
1729
|
-
<span class="green"><b>
|
1728
|
+
<b>116</b> relevant lines.
|
1729
|
+
<span class="green"><b>116</b> lines covered</span> and
|
1730
1730
|
<span class="red"><b>0</b> lines missed.</span>
|
1731
1731
|
</div>
|
1732
1732
|
</div>
|
@@ -1758,20 +1758,20 @@
|
|
1758
1758
|
<code class="ruby"> def initialize(regexp_string)</code>
|
1759
1759
|
</li>
|
1760
1760
|
|
1761
|
-
<li class="covered" data-hits="
|
1762
|
-
<span class="hits">
|
1761
|
+
<li class="covered" data-hits="73" data-linenumber="5">
|
1762
|
+
<span class="hits">73</span>
|
1763
1763
|
|
1764
1764
|
<code class="ruby"> @regexp_string = regexp_string</code>
|
1765
1765
|
</li>
|
1766
1766
|
|
1767
|
-
<li class="covered" data-hits="
|
1768
|
-
<span class="hits">
|
1767
|
+
<li class="covered" data-hits="73" data-linenumber="6">
|
1768
|
+
<span class="hits">73</span>
|
1769
1769
|
|
1770
1770
|
<code class="ruby"> @num_groups = 0</code>
|
1771
1771
|
</li>
|
1772
1772
|
|
1773
|
-
<li class="covered" data-hits="
|
1774
|
-
<span class="hits">
|
1773
|
+
<li class="covered" data-hits="73" data-linenumber="7">
|
1774
|
+
<span class="hits">73</span>
|
1775
1775
|
|
1776
1776
|
<code class="ruby"> @current_position = 0</code>
|
1777
1777
|
</li>
|
@@ -1794,44 +1794,44 @@
|
|
1794
1794
|
<code class="ruby"> def parse</code>
|
1795
1795
|
</li>
|
1796
1796
|
|
1797
|
-
<li class="covered" data-hits="
|
1798
|
-
<span class="hits">
|
1797
|
+
<li class="covered" data-hits="120" data-linenumber="11">
|
1798
|
+
<span class="hits">120</span>
|
1799
1799
|
|
1800
1800
|
<code class="ruby"> repeaters = []</code>
|
1801
1801
|
</li>
|
1802
1802
|
|
1803
|
-
<li class="covered" data-hits="
|
1804
|
-
<span class="hits">
|
1803
|
+
<li class="covered" data-hits="120" data-linenumber="12">
|
1804
|
+
<span class="hits">120</span>
|
1805
1805
|
|
1806
1806
|
<code class="ruby"> while @current_position < regexp_string.length</code>
|
1807
1807
|
</li>
|
1808
1808
|
|
1809
|
-
<li class="covered" data-hits="
|
1810
|
-
<span class="hits">
|
1809
|
+
<li class="covered" data-hits="335" data-linenumber="13">
|
1810
|
+
<span class="hits">335</span>
|
1811
1811
|
|
1812
1812
|
<code class="ruby"> group = parse_group(repeaters)</code>
|
1813
1813
|
</li>
|
1814
1814
|
|
1815
|
-
<li class="covered" data-hits="
|
1816
|
-
<span class="hits">
|
1815
|
+
<li class="covered" data-hits="331" data-linenumber="14">
|
1816
|
+
<span class="hits">331</span>
|
1817
1817
|
|
1818
1818
|
<code class="ruby"> break if group.is_a? MultiGroupEnd</code>
|
1819
1819
|
</li>
|
1820
1820
|
|
1821
|
-
<li class="covered" data-hits="
|
1822
|
-
<span class="hits">
|
1821
|
+
<li class="covered" data-hits="290" data-linenumber="15">
|
1822
|
+
<span class="hits">290</span>
|
1823
1823
|
|
1824
1824
|
<code class="ruby"> repeaters = [] if group.is_a? OrGroup</code>
|
1825
1825
|
</li>
|
1826
1826
|
|
1827
|
-
<li class="covered" data-hits="
|
1828
|
-
<span class="hits">
|
1827
|
+
<li class="covered" data-hits="290" data-linenumber="16">
|
1828
|
+
<span class="hits">290</span>
|
1829
1829
|
|
1830
1830
|
<code class="ruby"> @current_position += 1</code>
|
1831
1831
|
</li>
|
1832
1832
|
|
1833
|
-
<li class="covered" data-hits="
|
1834
|
-
<span class="hits">
|
1833
|
+
<li class="covered" data-hits="290" data-linenumber="17">
|
1834
|
+
<span class="hits">290</span>
|
1835
1835
|
|
1836
1836
|
<code class="ruby"> repeaters << parse_repeater(group)</code>
|
1837
1837
|
</li>
|
@@ -1842,8 +1842,8 @@
|
|
1842
1842
|
<code class="ruby"> end</code>
|
1843
1843
|
</li>
|
1844
1844
|
|
1845
|
-
<li class="covered" data-hits="
|
1846
|
-
<span class="hits">
|
1845
|
+
<li class="covered" data-hits="116" data-linenumber="19">
|
1846
|
+
<span class="hits">116</span>
|
1847
1847
|
|
1848
1848
|
<code class="ruby"> repeaters</code>
|
1849
1849
|
</li>
|
@@ -1878,14 +1878,14 @@
|
|
1878
1878
|
<code class="ruby"> def parse_group(repeaters)</code>
|
1879
1879
|
</li>
|
1880
1880
|
|
1881
|
-
<li class="covered" data-hits="
|
1882
|
-
<span class="hits">
|
1881
|
+
<li class="covered" data-hits="335" data-linenumber="25">
|
1882
|
+
<span class="hits">335</span>
|
1883
1883
|
|
1884
1884
|
<code class="ruby"> char = regexp_string[@current_position]</code>
|
1885
1885
|
</li>
|
1886
1886
|
|
1887
|
-
<li class="covered" data-hits="
|
1888
|
-
<span class="hits">
|
1887
|
+
<li class="covered" data-hits="335" data-linenumber="26">
|
1888
|
+
<span class="hits">335</span>
|
1889
1889
|
|
1890
1890
|
<code class="ruby"> case char</code>
|
1891
1891
|
</li>
|
@@ -1956,8 +1956,8 @@
|
|
1956
1956
|
<code class="ruby"> when '\\'</code>
|
1957
1957
|
</li>
|
1958
1958
|
|
1959
|
-
<li class="covered" data-hits="
|
1960
|
-
<span class="hits">
|
1959
|
+
<li class="covered" data-hits="49" data-linenumber="38">
|
1960
|
+
<span class="hits">49</span>
|
1961
1961
|
|
1962
1962
|
<code class="ruby"> group = parse_after_backslash_group</code>
|
1963
1963
|
</li>
|
@@ -1968,8 +1968,8 @@
|
|
1968
1968
|
<code class="ruby"> else</code>
|
1969
1969
|
</li>
|
1970
1970
|
|
1971
|
-
<li class="covered" data-hits="
|
1972
|
-
<span class="hits">
|
1971
|
+
<li class="covered" data-hits="179" data-linenumber="40">
|
1972
|
+
<span class="hits">179</span>
|
1973
1973
|
|
1974
1974
|
<code class="ruby"> group = parse_single_char_group(char)</code>
|
1975
1975
|
</li>
|
@@ -1980,8 +1980,8 @@
|
|
1980
1980
|
<code class="ruby"> end</code>
|
1981
1981
|
</li>
|
1982
1982
|
|
1983
|
-
<li class="covered" data-hits="
|
1984
|
-
<span class="hits">
|
1983
|
+
<li class="covered" data-hits="331" data-linenumber="42">
|
1984
|
+
<span class="hits">331</span>
|
1985
1985
|
|
1986
1986
|
<code class="ruby"> group</code>
|
1987
1987
|
</li>
|
@@ -2004,8 +2004,8 @@
|
|
2004
2004
|
<code class="ruby"> def parse_after_backslash_group</code>
|
2005
2005
|
</li>
|
2006
2006
|
|
2007
|
-
<li class="covered" data-hits="
|
2008
|
-
<span class="hits">
|
2007
|
+
<li class="covered" data-hits="49" data-linenumber="46">
|
2008
|
+
<span class="hits">49</span>
|
2009
2009
|
|
2010
2010
|
<code class="ruby"> @current_position += 1</code>
|
2011
2011
|
</li>
|
@@ -2073,814 +2073,892 @@
|
|
2073
2073
|
<li class="never" data-hits="" data-linenumber="57">
|
2074
2074
|
|
2075
2075
|
|
2076
|
-
<code class="ruby"> when rest_of_string =~ /\
|
2076
|
+
<code class="ruby"> when rest_of_string =~ /\A(c|C-)(.)/ # Control character</code>
|
2077
2077
|
</li>
|
2078
2078
|
|
2079
|
-
<li class="
|
2080
|
-
<span class="hits">6</span>
|
2079
|
+
<li class="never" data-hits="" data-linenumber="58">
|
2081
2080
|
|
2082
|
-
|
2081
|
+
|
2082
|
+
<code class="ruby"> # http://en.wikibooks.org/wiki/Ruby_Programming/Syntax/Literals</code>
|
2083
2083
|
</li>
|
2084
2084
|
|
2085
|
-
<li class="covered" data-hits="
|
2086
|
-
<span class="hits">
|
2085
|
+
<li class="covered" data-hits="8" data-linenumber="59">
|
2086
|
+
<span class="hits">8</span>
|
2087
2087
|
|
2088
|
-
<code class="ruby">
|
2088
|
+
<code class="ruby"> @current_position += $1.length</code>
|
2089
2089
|
</li>
|
2090
2090
|
|
2091
|
-
<li class="
|
2092
|
-
|
2091
|
+
<li class="covered" data-hits="8" data-linenumber="60">
|
2092
|
+
<span class="hits">8</span>
|
2093
2093
|
|
2094
|
-
<code class="ruby">
|
2094
|
+
<code class="ruby"> group = parse_single_char_group( parse_control_character($2) )</code>
|
2095
2095
|
</li>
|
2096
2096
|
|
2097
2097
|
<li class="never" data-hits="" data-linenumber="61">
|
2098
2098
|
|
2099
2099
|
|
2100
|
-
<code class="ruby">
|
2100
|
+
<code class="ruby"> when rest_of_string =~ /\Ax(\h{1,2})/ # Escape sequence</code>
|
2101
2101
|
</li>
|
2102
2102
|
|
2103
|
-
<li class="
|
2103
|
+
<li class="covered" data-hits="3" data-linenumber="62">
|
2104
|
+
<span class="hits">3</span>
|
2105
|
+
|
2106
|
+
<code class="ruby"> @current_position += $1.length</code>
|
2107
|
+
</li>
|
2108
|
+
|
2109
|
+
<li class="covered" data-hits="3" data-linenumber="63">
|
2110
|
+
<span class="hits">3</span>
|
2111
|
+
|
2112
|
+
<code class="ruby"> group = parse_single_char_group( parse_escape_sequence($1) )</code>
|
2113
|
+
</li>
|
2114
|
+
|
2115
|
+
<li class="never" data-hits="" data-linenumber="64">
|
2116
|
+
|
2117
|
+
|
2118
|
+
<code class="ruby"> when rest_of_string =~ /\Au(\h{4})/ # Unicode sequence</code>
|
2119
|
+
</li>
|
2120
|
+
|
2121
|
+
<li class="covered" data-hits="2" data-linenumber="65">
|
2122
|
+
<span class="hits">2</span>
|
2123
|
+
|
2124
|
+
<code class="ruby"> @current_position += 4</code>
|
2125
|
+
</li>
|
2126
|
+
|
2127
|
+
<li class="covered" data-hits="2" data-linenumber="66">
|
2128
|
+
<span class="hits">2</span>
|
2129
|
+
|
2130
|
+
<code class="ruby"> group = parse_single_char_group( parse_unicode_sequence($1) )</code>
|
2131
|
+
</li>
|
2132
|
+
|
2133
|
+
<li class="never" data-hits="" data-linenumber="67">
|
2104
2134
|
|
2105
2135
|
|
2106
2136
|
<code class="ruby"> else</code>
|
2107
2137
|
</li>
|
2108
2138
|
|
2109
|
-
<li class="covered" data-hits="2" data-linenumber="
|
2139
|
+
<li class="covered" data-hits="2" data-linenumber="68">
|
2110
2140
|
<span class="hits">2</span>
|
2111
2141
|
|
2112
2142
|
<code class="ruby"> group = parse_single_char_group( regexp_string[@current_position] )</code>
|
2113
2143
|
</li>
|
2114
2144
|
|
2115
|
-
<li class="never" data-hits="" data-linenumber="
|
2145
|
+
<li class="never" data-hits="" data-linenumber="69">
|
2116
2146
|
|
2117
2147
|
|
2118
2148
|
<code class="ruby"> # TODO: What about cases like \A, \z, \Z ?</code>
|
2119
2149
|
</li>
|
2120
2150
|
|
2121
|
-
<li class="covered" data-hits="
|
2122
|
-
<span class="hits">
|
2151
|
+
<li class="covered" data-hits="49" data-linenumber="70">
|
2152
|
+
<span class="hits">49</span>
|
2123
2153
|
|
2124
2154
|
<code class="ruby"> end</code>
|
2125
2155
|
</li>
|
2126
2156
|
|
2127
|
-
<li class="covered" data-hits="
|
2128
|
-
<span class="hits">
|
2157
|
+
<li class="covered" data-hits="49" data-linenumber="71">
|
2158
|
+
<span class="hits">49</span>
|
2129
2159
|
|
2130
2160
|
<code class="ruby"> group</code>
|
2131
2161
|
</li>
|
2132
2162
|
|
2133
|
-
<li class="never" data-hits="" data-linenumber="
|
2163
|
+
<li class="never" data-hits="" data-linenumber="72">
|
2134
2164
|
|
2135
2165
|
|
2136
2166
|
<code class="ruby"> end</code>
|
2137
2167
|
</li>
|
2138
2168
|
|
2139
|
-
<li class="never" data-hits="" data-linenumber="
|
2169
|
+
<li class="never" data-hits="" data-linenumber="73">
|
2140
2170
|
|
2141
2171
|
|
2142
2172
|
<code class="ruby"></code>
|
2143
2173
|
</li>
|
2144
2174
|
|
2145
|
-
<li class="covered" data-hits="1" data-linenumber="
|
2175
|
+
<li class="covered" data-hits="1" data-linenumber="74">
|
2146
2176
|
<span class="hits">1</span>
|
2147
2177
|
|
2148
2178
|
<code class="ruby"> def parse_repeater(group)</code>
|
2149
2179
|
</li>
|
2150
2180
|
|
2151
|
-
<li class="covered" data-hits="
|
2152
|
-
<span class="hits">
|
2181
|
+
<li class="covered" data-hits="290" data-linenumber="75">
|
2182
|
+
<span class="hits">290</span>
|
2153
2183
|
|
2154
2184
|
<code class="ruby"> char = regexp_string[@current_position]</code>
|
2155
2185
|
</li>
|
2156
2186
|
|
2157
|
-
<li class="covered" data-hits="
|
2158
|
-
<span class="hits">
|
2187
|
+
<li class="covered" data-hits="290" data-linenumber="76">
|
2188
|
+
<span class="hits">290</span>
|
2159
2189
|
|
2160
2190
|
<code class="ruby"> case char</code>
|
2161
2191
|
</li>
|
2162
2192
|
|
2163
|
-
<li class="never" data-hits="" data-linenumber="
|
2193
|
+
<li class="never" data-hits="" data-linenumber="77">
|
2164
2194
|
|
2165
2195
|
|
2166
2196
|
<code class="ruby"> when '*'</code>
|
2167
2197
|
</li>
|
2168
2198
|
|
2169
|
-
<li class="covered" data-hits="5" data-linenumber="
|
2199
|
+
<li class="covered" data-hits="5" data-linenumber="78">
|
2170
2200
|
<span class="hits">5</span>
|
2171
2201
|
|
2172
2202
|
<code class="ruby"> repeater = parse_star_repeater(group)</code>
|
2173
2203
|
</li>
|
2174
2204
|
|
2175
|
-
<li class="never" data-hits="" data-linenumber="
|
2205
|
+
<li class="never" data-hits="" data-linenumber="79">
|
2176
2206
|
|
2177
2207
|
|
2178
2208
|
<code class="ruby"> when '+'</code>
|
2179
2209
|
</li>
|
2180
2210
|
|
2181
|
-
<li class="covered" data-hits="4" data-linenumber="
|
2211
|
+
<li class="covered" data-hits="4" data-linenumber="80">
|
2182
2212
|
<span class="hits">4</span>
|
2183
2213
|
|
2184
2214
|
<code class="ruby"> repeater = parse_plus_repeater(group)</code>
|
2185
2215
|
</li>
|
2186
2216
|
|
2187
|
-
<li class="never" data-hits="" data-linenumber="
|
2217
|
+
<li class="never" data-hits="" data-linenumber="81">
|
2188
2218
|
|
2189
2219
|
|
2190
2220
|
<code class="ruby"> when '?'</code>
|
2191
2221
|
</li>
|
2192
2222
|
|
2193
|
-
<li class="covered" data-hits="11" data-linenumber="
|
2223
|
+
<li class="covered" data-hits="11" data-linenumber="82">
|
2194
2224
|
<span class="hits">11</span>
|
2195
2225
|
|
2196
2226
|
<code class="ruby"> repeater = parse_question_mark_repeater(group)</code>
|
2197
2227
|
</li>
|
2198
2228
|
|
2199
|
-
<li class="never" data-hits="" data-linenumber="
|
2229
|
+
<li class="never" data-hits="" data-linenumber="83">
|
2200
2230
|
|
2201
2231
|
|
2202
2232
|
<code class="ruby"> when '{'</code>
|
2203
2233
|
</li>
|
2204
2234
|
|
2205
|
-
<li class="covered" data-hits="5" data-linenumber="
|
2235
|
+
<li class="covered" data-hits="5" data-linenumber="84">
|
2206
2236
|
<span class="hits">5</span>
|
2207
2237
|
|
2208
2238
|
<code class="ruby"> repeater = parse_range_repeater(group)</code>
|
2209
2239
|
</li>
|
2210
2240
|
|
2211
|
-
<li class="never" data-hits="" data-linenumber="
|
2241
|
+
<li class="never" data-hits="" data-linenumber="85">
|
2212
2242
|
|
2213
2243
|
|
2214
2244
|
<code class="ruby"> else</code>
|
2215
2245
|
</li>
|
2216
2246
|
|
2217
|
-
<li class="covered" data-hits="
|
2218
|
-
<span class="hits">
|
2247
|
+
<li class="covered" data-hits="265" data-linenumber="86">
|
2248
|
+
<span class="hits">265</span>
|
2219
2249
|
|
2220
2250
|
<code class="ruby"> repeater = parse_one_time_repeater(group)</code>
|
2221
2251
|
</li>
|
2222
2252
|
|
2223
|
-
<li class="never" data-hits="" data-linenumber="
|
2253
|
+
<li class="never" data-hits="" data-linenumber="87">
|
2224
2254
|
|
2225
2255
|
|
2226
2256
|
<code class="ruby"> end</code>
|
2227
2257
|
</li>
|
2228
2258
|
|
2229
|
-
<li class="covered" data-hits="
|
2230
|
-
<span class="hits">
|
2259
|
+
<li class="covered" data-hits="290" data-linenumber="88">
|
2260
|
+
<span class="hits">290</span>
|
2231
2261
|
|
2232
2262
|
<code class="ruby"> repeater</code>
|
2233
2263
|
</li>
|
2234
2264
|
|
2235
|
-
<li class="never" data-hits="" data-linenumber="
|
2265
|
+
<li class="never" data-hits="" data-linenumber="89">
|
2236
2266
|
|
2237
2267
|
|
2238
2268
|
<code class="ruby"> end</code>
|
2239
2269
|
</li>
|
2240
2270
|
|
2241
|
-
<li class="never" data-hits="" data-linenumber="
|
2271
|
+
<li class="never" data-hits="" data-linenumber="90">
|
2242
2272
|
|
2243
2273
|
|
2244
2274
|
<code class="ruby"></code>
|
2245
2275
|
</li>
|
2246
2276
|
|
2247
|
-
<li class="covered" data-hits="1" data-linenumber="
|
2277
|
+
<li class="covered" data-hits="1" data-linenumber="91">
|
2248
2278
|
<span class="hits">1</span>
|
2249
2279
|
|
2250
2280
|
<code class="ruby"> def parse_multi_group</code>
|
2251
2281
|
</li>
|
2252
2282
|
|
2253
|
-
<li class="covered" data-hits="45" data-linenumber="
|
2283
|
+
<li class="covered" data-hits="45" data-linenumber="92">
|
2254
2284
|
<span class="hits">45</span>
|
2255
2285
|
|
2256
2286
|
<code class="ruby"> @current_position += 1</code>
|
2257
2287
|
</li>
|
2258
2288
|
|
2259
|
-
<li class="covered" data-hits="45" data-linenumber="
|
2289
|
+
<li class="covered" data-hits="45" data-linenumber="93">
|
2260
2290
|
<span class="hits">45</span>
|
2261
2291
|
|
2262
2292
|
<code class="ruby"> @num_groups += 1</code>
|
2263
2293
|
</li>
|
2264
2294
|
|
2265
|
-
<li class="covered" data-hits="45" data-linenumber="
|
2295
|
+
<li class="covered" data-hits="45" data-linenumber="94">
|
2266
2296
|
<span class="hits">45</span>
|
2267
2297
|
|
2268
2298
|
<code class="ruby"> group_id = nil # init</code>
|
2269
2299
|
</li>
|
2270
2300
|
|
2271
|
-
<li class="covered" data-hits="45" data-linenumber="
|
2301
|
+
<li class="covered" data-hits="45" data-linenumber="95">
|
2272
2302
|
<span class="hits">45</span>
|
2273
2303
|
|
2274
2304
|
<code class="ruby"> rest_of_string.match(/\A(\?)?(:|!|=|<(!|=|[^!=][^>]*))?/) do |match|</code>
|
2275
2305
|
</li>
|
2276
2306
|
|
2277
|
-
<li class="never" data-hits="" data-linenumber="
|
2307
|
+
<li class="never" data-hits="" data-linenumber="96">
|
2278
2308
|
|
2279
2309
|
|
2280
2310
|
<code class="ruby"> case</code>
|
2281
2311
|
</li>
|
2282
2312
|
|
2283
|
-
<li class="never" data-hits="" data-linenumber="
|
2313
|
+
<li class="never" data-hits="" data-linenumber="97">
|
2284
2314
|
|
2285
2315
|
|
2286
2316
|
<code class="ruby"> when match[1].nil? # e.g. /(normal)/</code>
|
2287
2317
|
</li>
|
2288
2318
|
|
2289
|
-
<li class="covered" data-hits="38" data-linenumber="
|
2319
|
+
<li class="covered" data-hits="38" data-linenumber="98">
|
2290
2320
|
<span class="hits">38</span>
|
2291
2321
|
|
2292
2322
|
<code class="ruby"> group_id = @num_groups.to_s</code>
|
2293
2323
|
</li>
|
2294
2324
|
|
2295
|
-
<li class="never" data-hits="" data-linenumber="
|
2325
|
+
<li class="never" data-hits="" data-linenumber="99">
|
2296
2326
|
|
2297
2327
|
|
2298
2328
|
<code class="ruby"> when match[2] == ':' # e.g. /(?:nocapture)/</code>
|
2299
2329
|
</li>
|
2300
2330
|
|
2301
|
-
<li class="covered" data-hits="1" data-linenumber="
|
2331
|
+
<li class="covered" data-hits="1" data-linenumber="100">
|
2302
2332
|
<span class="hits">1</span>
|
2303
2333
|
|
2304
2334
|
<code class="ruby"> @current_position += 2</code>
|
2305
2335
|
</li>
|
2306
2336
|
|
2307
|
-
<li class="covered" data-hits="1" data-linenumber="
|
2337
|
+
<li class="covered" data-hits="1" data-linenumber="101">
|
2308
2338
|
<span class="hits">1</span>
|
2309
2339
|
|
2310
2340
|
<code class="ruby"> group_id = nil</code>
|
2311
2341
|
</li>
|
2312
2342
|
|
2313
|
-
<li class="never" data-hits="" data-linenumber="
|
2343
|
+
<li class="never" data-hits="" data-linenumber="102">
|
2314
2344
|
|
2315
2345
|
|
2316
2346
|
<code class="ruby"> when %w(! =).include?(match[2]) # e.g. /(?=lookahead)/, /(?!neglookahead)/</code>
|
2317
2347
|
</li>
|
2318
2348
|
|
2319
|
-
<li class="covered" data-hits="2" data-linenumber="
|
2349
|
+
<li class="covered" data-hits="2" data-linenumber="103">
|
2320
2350
|
<span class="hits">2</span>
|
2321
2351
|
|
2322
2352
|
<code class="ruby"> raise IllegalSyntaxError, "Lookaheads are not regular; cannot generate examples"</code>
|
2323
2353
|
</li>
|
2324
2354
|
|
2325
|
-
<li class="never" data-hits="" data-linenumber="
|
2355
|
+
<li class="never" data-hits="" data-linenumber="104">
|
2326
2356
|
|
2327
2357
|
|
2328
2358
|
<code class="ruby"> when %w(! =).include?(match[3]) # e.g. /(?<=lookbehind)/, /(?<!neglookbehind)/</code>
|
2329
2359
|
</li>
|
2330
2360
|
|
2331
|
-
<li class="covered" data-hits="2" data-linenumber="
|
2361
|
+
<li class="covered" data-hits="2" data-linenumber="105">
|
2332
2362
|
<span class="hits">2</span>
|
2333
2363
|
|
2334
2364
|
<code class="ruby"> raise IllegalSyntaxError, "Lookbehinds are not regular; cannot generate examples"</code>
|
2335
2365
|
</li>
|
2336
2366
|
|
2337
|
-
<li class="never" data-hits="" data-linenumber="
|
2367
|
+
<li class="never" data-hits="" data-linenumber="106">
|
2338
2368
|
|
2339
2369
|
|
2340
2370
|
<code class="ruby"> else # e.g. /(?<name>namedgroup)/</code>
|
2341
2371
|
</li>
|
2342
2372
|
|
2343
|
-
<li class="covered" data-hits="2" data-linenumber="
|
2373
|
+
<li class="covered" data-hits="2" data-linenumber="107">
|
2344
2374
|
<span class="hits">2</span>
|
2345
2375
|
|
2346
2376
|
<code class="ruby"> @current_position += (match[3].length + 3)</code>
|
2347
2377
|
</li>
|
2348
2378
|
|
2349
|
-
<li class="covered" data-hits="2" data-linenumber="
|
2379
|
+
<li class="covered" data-hits="2" data-linenumber="108">
|
2350
2380
|
<span class="hits">2</span>
|
2351
2381
|
|
2352
2382
|
<code class="ruby"> group_id = match[3]</code>
|
2353
2383
|
</li>
|
2354
2384
|
|
2355
|
-
<li class="covered" data-hits="45" data-linenumber="
|
2385
|
+
<li class="covered" data-hits="45" data-linenumber="109">
|
2356
2386
|
<span class="hits">45</span>
|
2357
2387
|
|
2358
2388
|
<code class="ruby"> end</code>
|
2359
2389
|
</li>
|
2360
2390
|
|
2361
|
-
<li class="never" data-hits="" data-linenumber="
|
2391
|
+
<li class="never" data-hits="" data-linenumber="110">
|
2362
2392
|
|
2363
2393
|
|
2364
2394
|
<code class="ruby"> end</code>
|
2365
2395
|
</li>
|
2366
2396
|
|
2367
|
-
<li class="covered" data-hits="41" data-linenumber="
|
2397
|
+
<li class="covered" data-hits="41" data-linenumber="111">
|
2368
2398
|
<span class="hits">41</span>
|
2369
2399
|
|
2370
2400
|
<code class="ruby"> groups = parse</code>
|
2371
2401
|
</li>
|
2372
2402
|
|
2373
|
-
<li class="covered" data-hits="41" data-linenumber="
|
2403
|
+
<li class="covered" data-hits="41" data-linenumber="112">
|
2374
2404
|
<span class="hits">41</span>
|
2375
2405
|
|
2376
2406
|
<code class="ruby"> MultiGroup.new(groups, group_id)</code>
|
2377
2407
|
</li>
|
2378
2408
|
|
2379
|
-
<li class="never" data-hits="" data-linenumber="
|
2409
|
+
<li class="never" data-hits="" data-linenumber="113">
|
2380
2410
|
|
2381
2411
|
|
2382
2412
|
<code class="ruby"> end</code>
|
2383
2413
|
</li>
|
2384
2414
|
|
2385
|
-
<li class="never" data-hits="" data-linenumber="
|
2415
|
+
<li class="never" data-hits="" data-linenumber="114">
|
2386
2416
|
|
2387
2417
|
|
2388
2418
|
<code class="ruby"></code>
|
2389
2419
|
</li>
|
2390
2420
|
|
2391
|
-
<li class="covered" data-hits="1" data-linenumber="
|
2421
|
+
<li class="covered" data-hits="1" data-linenumber="115">
|
2392
2422
|
<span class="hits">1</span>
|
2393
2423
|
|
2394
2424
|
<code class="ruby"> def parse_multi_end_group</code>
|
2395
2425
|
</li>
|
2396
2426
|
|
2397
|
-
<li class="covered" data-hits="41" data-linenumber="
|
2427
|
+
<li class="covered" data-hits="41" data-linenumber="116">
|
2398
2428
|
<span class="hits">41</span>
|
2399
2429
|
|
2400
2430
|
<code class="ruby"> MultiGroupEnd.new</code>
|
2401
2431
|
</li>
|
2402
2432
|
|
2403
|
-
<li class="never" data-hits="" data-linenumber="
|
2433
|
+
<li class="never" data-hits="" data-linenumber="117">
|
2404
2434
|
|
2405
2435
|
|
2406
2436
|
<code class="ruby"> end</code>
|
2407
2437
|
</li>
|
2408
2438
|
|
2409
|
-
<li class="never" data-hits="" data-linenumber="
|
2439
|
+
<li class="never" data-hits="" data-linenumber="118">
|
2410
2440
|
|
2411
2441
|
|
2412
2442
|
<code class="ruby"></code>
|
2413
2443
|
</li>
|
2414
2444
|
|
2415
|
-
<li class="covered" data-hits="1" data-linenumber="
|
2445
|
+
<li class="covered" data-hits="1" data-linenumber="119">
|
2416
2446
|
<span class="hits">1</span>
|
2417
2447
|
|
2418
2448
|
<code class="ruby"> def parse_char_group</code>
|
2419
2449
|
</li>
|
2420
2450
|
|
2421
|
-
<li class="covered" data-hits="14" data-linenumber="
|
2451
|
+
<li class="covered" data-hits="14" data-linenumber="120">
|
2422
2452
|
<span class="hits">14</span>
|
2423
2453
|
|
2424
2454
|
<code class="ruby"> chars = []</code>
|
2425
2455
|
</li>
|
2426
2456
|
|
2427
|
-
<li class="covered" data-hits="14" data-linenumber="
|
2457
|
+
<li class="covered" data-hits="14" data-linenumber="121">
|
2428
2458
|
<span class="hits">14</span>
|
2429
2459
|
|
2430
2460
|
<code class="ruby"> @current_position += 1</code>
|
2431
2461
|
</li>
|
2432
2462
|
|
2433
|
-
<li class="covered" data-hits="14" data-linenumber="
|
2463
|
+
<li class="covered" data-hits="14" data-linenumber="122">
|
2434
2464
|
<span class="hits">14</span>
|
2435
2465
|
|
2436
2466
|
<code class="ruby"> if regexp_string[@current_position] == ']'</code>
|
2437
2467
|
</li>
|
2438
2468
|
|
2439
|
-
<li class="never" data-hits="" data-linenumber="
|
2469
|
+
<li class="never" data-hits="" data-linenumber="123">
|
2440
2470
|
|
2441
2471
|
|
2442
2472
|
<code class="ruby"> # Beware of the sneaky edge case:</code>
|
2443
2473
|
</li>
|
2444
2474
|
|
2445
|
-
<li class="never" data-hits="" data-linenumber="
|
2475
|
+
<li class="never" data-hits="" data-linenumber="124">
|
2446
2476
|
|
2447
2477
|
|
2448
2478
|
<code class="ruby"> # /[]]/ (match "]")</code>
|
2449
2479
|
</li>
|
2450
2480
|
|
2451
|
-
<li class="covered" data-hits="1" data-linenumber="
|
2481
|
+
<li class="covered" data-hits="1" data-linenumber="125">
|
2452
2482
|
<span class="hits">1</span>
|
2453
2483
|
|
2454
2484
|
<code class="ruby"> chars << ']'</code>
|
2455
2485
|
</li>
|
2456
2486
|
|
2457
|
-
<li class="covered" data-hits="1" data-linenumber="
|
2487
|
+
<li class="covered" data-hits="1" data-linenumber="126">
|
2458
2488
|
<span class="hits">1</span>
|
2459
2489
|
|
2460
2490
|
<code class="ruby"> @current_position += 1</code>
|
2461
2491
|
</li>
|
2462
2492
|
|
2463
|
-
<li class="never" data-hits="" data-linenumber="
|
2493
|
+
<li class="never" data-hits="" data-linenumber="127">
|
2464
2494
|
|
2465
2495
|
|
2466
2496
|
<code class="ruby"> end</code>
|
2467
2497
|
</li>
|
2468
2498
|
|
2469
|
-
<li class="never" data-hits="" data-linenumber="
|
2499
|
+
<li class="never" data-hits="" data-linenumber="128">
|
2470
2500
|
|
2471
2501
|
|
2472
2502
|
<code class="ruby"> until regexp_string[@current_position] == ']' \</code>
|
2473
2503
|
</li>
|
2474
2504
|
|
2475
|
-
<li class="covered" data-hits="14" data-linenumber="
|
2505
|
+
<li class="covered" data-hits="14" data-linenumber="129">
|
2476
2506
|
<span class="hits">14</span>
|
2477
2507
|
|
2478
2508
|
<code class="ruby"> && !regexp_string[0..@current_position-1].match(/[^\\](\\{2})*\\\z/)</code>
|
2479
2509
|
</li>
|
2480
2510
|
|
2481
|
-
<li class="never" data-hits="" data-linenumber="
|
2511
|
+
<li class="never" data-hits="" data-linenumber="130">
|
2482
2512
|
|
2483
2513
|
|
2484
2514
|
<code class="ruby"> # Beware of having an ODD number of "\" before the "]", e.g.</code>
|
2485
2515
|
</li>
|
2486
2516
|
|
2487
|
-
<li class="never" data-hits="" data-linenumber="
|
2517
|
+
<li class="never" data-hits="" data-linenumber="131">
|
2488
2518
|
|
2489
2519
|
|
2490
2520
|
<code class="ruby"> # /[\]]/ (match "]")</code>
|
2491
2521
|
</li>
|
2492
2522
|
|
2493
|
-
<li class="never" data-hits="" data-linenumber="
|
2523
|
+
<li class="never" data-hits="" data-linenumber="132">
|
2494
2524
|
|
2495
2525
|
|
2496
2526
|
<code class="ruby"> # /[\\]/ (match "\")</code>
|
2497
2527
|
</li>
|
2498
2528
|
|
2499
|
-
<li class="never" data-hits="" data-linenumber="
|
2529
|
+
<li class="never" data-hits="" data-linenumber="133">
|
2500
2530
|
|
2501
2531
|
|
2502
2532
|
<code class="ruby"> # /[\\\]]/ (match "\" or "]")</code>
|
2503
2533
|
</li>
|
2504
2534
|
|
2505
|
-
<li class="covered" data-hits="41" data-linenumber="
|
2535
|
+
<li class="covered" data-hits="41" data-linenumber="134">
|
2506
2536
|
<span class="hits">41</span>
|
2507
2537
|
|
2508
2538
|
<code class="ruby"> chars << regexp_string[@current_position]</code>
|
2509
2539
|
</li>
|
2510
2540
|
|
2511
|
-
<li class="covered" data-hits="41" data-linenumber="
|
2541
|
+
<li class="covered" data-hits="41" data-linenumber="135">
|
2512
2542
|
<span class="hits">41</span>
|
2513
2543
|
|
2514
2544
|
<code class="ruby"> @current_position += 1</code>
|
2515
2545
|
</li>
|
2516
2546
|
|
2517
|
-
<li class="never" data-hits="" data-linenumber="
|
2547
|
+
<li class="never" data-hits="" data-linenumber="136">
|
2518
2548
|
|
2519
2549
|
|
2520
2550
|
<code class="ruby"> end</code>
|
2521
2551
|
</li>
|
2522
2552
|
|
2523
|
-
<li class="covered" data-hits="14" data-linenumber="
|
2553
|
+
<li class="covered" data-hits="14" data-linenumber="137">
|
2524
2554
|
<span class="hits">14</span>
|
2525
2555
|
|
2526
2556
|
<code class="ruby"> CharGroup.new(chars)</code>
|
2527
2557
|
</li>
|
2528
2558
|
|
2529
|
-
<li class="never" data-hits="" data-linenumber="
|
2559
|
+
<li class="never" data-hits="" data-linenumber="138">
|
2530
2560
|
|
2531
2561
|
|
2532
2562
|
<code class="ruby"> end</code>
|
2533
2563
|
</li>
|
2534
2564
|
|
2535
|
-
<li class="never" data-hits="" data-linenumber="
|
2565
|
+
<li class="never" data-hits="" data-linenumber="139">
|
2536
2566
|
|
2537
2567
|
|
2538
2568
|
<code class="ruby"></code>
|
2539
2569
|
</li>
|
2540
2570
|
|
2541
|
-
<li class="covered" data-hits="1" data-linenumber="
|
2571
|
+
<li class="covered" data-hits="1" data-linenumber="140">
|
2542
2572
|
<span class="hits">1</span>
|
2543
2573
|
|
2544
2574
|
<code class="ruby"> def parse_dot_group</code>
|
2545
2575
|
</li>
|
2546
2576
|
|
2547
|
-
<li class="covered" data-hits="1" data-linenumber="
|
2577
|
+
<li class="covered" data-hits="1" data-linenumber="141">
|
2548
2578
|
<span class="hits">1</span>
|
2549
2579
|
|
2550
2580
|
<code class="ruby"> DotGroup.new</code>
|
2551
2581
|
</li>
|
2552
2582
|
|
2553
|
-
<li class="never" data-hits="" data-linenumber="
|
2583
|
+
<li class="never" data-hits="" data-linenumber="142">
|
2554
2584
|
|
2555
2585
|
|
2556
2586
|
<code class="ruby"> end</code>
|
2557
2587
|
</li>
|
2558
2588
|
|
2559
|
-
<li class="never" data-hits="" data-linenumber="
|
2589
|
+
<li class="never" data-hits="" data-linenumber="143">
|
2560
2590
|
|
2561
2591
|
|
2562
2592
|
<code class="ruby"></code>
|
2563
2593
|
</li>
|
2564
2594
|
|
2565
|
-
<li class="covered" data-hits="1" data-linenumber="
|
2595
|
+
<li class="covered" data-hits="1" data-linenumber="144">
|
2566
2596
|
<span class="hits">1</span>
|
2567
2597
|
|
2568
2598
|
<code class="ruby"> def parse_or_group(left_repeaters)</code>
|
2569
2599
|
</li>
|
2570
2600
|
|
2571
|
-
<li class="covered" data-hits="6" data-linenumber="
|
2601
|
+
<li class="covered" data-hits="6" data-linenumber="145">
|
2572
2602
|
<span class="hits">6</span>
|
2573
2603
|
|
2574
2604
|
<code class="ruby"> @current_position += 1</code>
|
2575
2605
|
</li>
|
2576
2606
|
|
2577
|
-
<li class="covered" data-hits="6" data-linenumber="
|
2607
|
+
<li class="covered" data-hits="6" data-linenumber="146">
|
2578
2608
|
<span class="hits">6</span>
|
2579
2609
|
|
2580
2610
|
<code class="ruby"> right_repeaters = parse</code>
|
2581
2611
|
</li>
|
2582
2612
|
|
2583
|
-
<li class="covered" data-hits="6" data-linenumber="
|
2613
|
+
<li class="covered" data-hits="6" data-linenumber="147">
|
2584
2614
|
<span class="hits">6</span>
|
2585
2615
|
|
2586
2616
|
<code class="ruby"> OrGroup.new(left_repeaters, right_repeaters)</code>
|
2587
2617
|
</li>
|
2588
2618
|
|
2589
|
-
<li class="never" data-hits="" data-linenumber="
|
2619
|
+
<li class="never" data-hits="" data-linenumber="148">
|
2590
2620
|
|
2591
2621
|
|
2592
2622
|
<code class="ruby"> end</code>
|
2593
2623
|
</li>
|
2594
2624
|
|
2595
|
-
<li class="never" data-hits="" data-linenumber="
|
2625
|
+
<li class="never" data-hits="" data-linenumber="149">
|
2596
2626
|
|
2597
2627
|
|
2598
2628
|
<code class="ruby"></code>
|
2599
2629
|
</li>
|
2600
2630
|
|
2601
|
-
<li class="never" data-hits="" data-linenumber="
|
2631
|
+
<li class="never" data-hits="" data-linenumber="150">
|
2602
2632
|
|
2603
2633
|
|
2604
2634
|
<code class="ruby"></code>
|
2605
2635
|
</li>
|
2606
2636
|
|
2607
|
-
<li class="covered" data-hits="1" data-linenumber="
|
2637
|
+
<li class="covered" data-hits="1" data-linenumber="151">
|
2608
2638
|
<span class="hits">1</span>
|
2609
2639
|
|
2610
2640
|
<code class="ruby"> def parse_single_char_group(char)</code>
|
2611
2641
|
</li>
|
2612
2642
|
|
2613
|
-
<li class="covered" data-hits="
|
2614
|
-
<span class="hits">
|
2643
|
+
<li class="covered" data-hits="194" data-linenumber="152">
|
2644
|
+
<span class="hits">194</span>
|
2615
2645
|
|
2616
2646
|
<code class="ruby"> SingleCharGroup.new(char)</code>
|
2617
2647
|
</li>
|
2618
2648
|
|
2619
|
-
<li class="never" data-hits="" data-linenumber="
|
2649
|
+
<li class="never" data-hits="" data-linenumber="153">
|
2620
2650
|
|
2621
2651
|
|
2622
2652
|
<code class="ruby"> end</code>
|
2623
2653
|
</li>
|
2624
2654
|
|
2625
|
-
<li class="never" data-hits="" data-linenumber="
|
2655
|
+
<li class="never" data-hits="" data-linenumber="154">
|
2626
2656
|
|
2627
2657
|
|
2628
2658
|
<code class="ruby"></code>
|
2629
2659
|
</li>
|
2630
2660
|
|
2631
|
-
<li class="covered" data-hits="1" data-linenumber="
|
2661
|
+
<li class="covered" data-hits="1" data-linenumber="155">
|
2632
2662
|
<span class="hits">1</span>
|
2633
2663
|
|
2634
2664
|
<code class="ruby"> def parse_backreference_group(match)</code>
|
2635
2665
|
</li>
|
2636
2666
|
|
2637
|
-
<li class="covered" data-hits="20" data-linenumber="
|
2667
|
+
<li class="covered" data-hits="20" data-linenumber="156">
|
2638
2668
|
<span class="hits">20</span>
|
2639
2669
|
|
2640
2670
|
<code class="ruby"> BackReferenceGroup.new(match)</code>
|
2641
2671
|
</li>
|
2642
2672
|
|
2643
|
-
<li class="never" data-hits="" data-linenumber="
|
2673
|
+
<li class="never" data-hits="" data-linenumber="157">
|
2644
2674
|
|
2645
2675
|
|
2646
2676
|
<code class="ruby"> end</code>
|
2647
2677
|
</li>
|
2648
2678
|
|
2649
|
-
<li class="never" data-hits="" data-linenumber="
|
2679
|
+
<li class="never" data-hits="" data-linenumber="158">
|
2650
2680
|
|
2651
2681
|
|
2652
2682
|
<code class="ruby"></code>
|
2653
2683
|
</li>
|
2654
2684
|
|
2655
|
-
<li class="covered" data-hits="1" data-linenumber="
|
2685
|
+
<li class="covered" data-hits="1" data-linenumber="159">
|
2656
2686
|
<span class="hits">1</span>
|
2657
2687
|
|
2658
2688
|
<code class="ruby"> def parse_control_character(char)</code>
|
2659
2689
|
</li>
|
2660
2690
|
|
2661
|
-
<li class="
|
2691
|
+
<li class="covered" data-hits="8" data-linenumber="160">
|
2692
|
+
<span class="hits">8</span>
|
2693
|
+
|
2694
|
+
<code class="ruby"> (char.ord % 32).chr # Black magic!</code>
|
2695
|
+
</li>
|
2696
|
+
|
2697
|
+
<li class="never" data-hits="" data-linenumber="161">
|
2698
|
+
|
2662
2699
|
|
2700
|
+
<code class="ruby"> # eval "?\\C-#{char.chr}" # Doesn't work for e.g. char = "?"</code>
|
2701
|
+
</li>
|
2702
|
+
|
2703
|
+
<li class="never" data-hits="" data-linenumber="162">
|
2663
2704
|
|
2664
|
-
|
2705
|
+
|
2706
|
+
<code class="ruby"> end</code>
|
2665
2707
|
</li>
|
2666
2708
|
|
2667
|
-
<li class="
|
2668
|
-
|
2709
|
+
<li class="never" data-hits="" data-linenumber="163">
|
2710
|
+
|
2669
2711
|
|
2670
|
-
<code class="ruby"
|
2712
|
+
<code class="ruby"></code>
|
2671
2713
|
</li>
|
2672
2714
|
|
2673
|
-
<li class="
|
2715
|
+
<li class="covered" data-hits="1" data-linenumber="164">
|
2716
|
+
<span class="hits">1</span>
|
2717
|
+
|
2718
|
+
<code class="ruby"> def parse_escape_sequence(match)</code>
|
2719
|
+
</li>
|
2720
|
+
|
2721
|
+
<li class="covered" data-hits="3" data-linenumber="165">
|
2722
|
+
<span class="hits">3</span>
|
2723
|
+
|
2724
|
+
<code class="ruby"> eval "?\\x#{match}"</code>
|
2725
|
+
</li>
|
2726
|
+
|
2727
|
+
<li class="never" data-hits="" data-linenumber="166">
|
2674
2728
|
|
2675
2729
|
|
2676
2730
|
<code class="ruby"> end</code>
|
2677
2731
|
</li>
|
2678
2732
|
|
2679
|
-
<li class="never" data-hits="" data-linenumber="
|
2733
|
+
<li class="never" data-hits="" data-linenumber="167">
|
2680
2734
|
|
2681
2735
|
|
2682
2736
|
<code class="ruby"></code>
|
2683
2737
|
</li>
|
2684
2738
|
|
2685
|
-
<li class="covered" data-hits="1" data-linenumber="
|
2739
|
+
<li class="covered" data-hits="1" data-linenumber="168">
|
2740
|
+
<span class="hits">1</span>
|
2741
|
+
|
2742
|
+
<code class="ruby"> def parse_unicode_sequence(match)</code>
|
2743
|
+
</li>
|
2744
|
+
|
2745
|
+
<li class="covered" data-hits="2" data-linenumber="169">
|
2746
|
+
<span class="hits">2</span>
|
2747
|
+
|
2748
|
+
<code class="ruby"> eval "?\\u#{match}"</code>
|
2749
|
+
</li>
|
2750
|
+
|
2751
|
+
<li class="never" data-hits="" data-linenumber="170">
|
2752
|
+
|
2753
|
+
|
2754
|
+
<code class="ruby"> end</code>
|
2755
|
+
</li>
|
2756
|
+
|
2757
|
+
<li class="never" data-hits="" data-linenumber="171">
|
2758
|
+
|
2759
|
+
|
2760
|
+
<code class="ruby"></code>
|
2761
|
+
</li>
|
2762
|
+
|
2763
|
+
<li class="covered" data-hits="1" data-linenumber="172">
|
2686
2764
|
<span class="hits">1</span>
|
2687
2765
|
|
2688
2766
|
<code class="ruby"> def parse_star_repeater(group)</code>
|
2689
2767
|
</li>
|
2690
2768
|
|
2691
|
-
<li class="covered" data-hits="5" data-linenumber="
|
2769
|
+
<li class="covered" data-hits="5" data-linenumber="173">
|
2692
2770
|
<span class="hits">5</span>
|
2693
2771
|
|
2694
2772
|
<code class="ruby"> @current_position += 1</code>
|
2695
2773
|
</li>
|
2696
2774
|
|
2697
|
-
<li class="covered" data-hits="5" data-linenumber="
|
2775
|
+
<li class="covered" data-hits="5" data-linenumber="174">
|
2698
2776
|
<span class="hits">5</span>
|
2699
2777
|
|
2700
2778
|
<code class="ruby"> StarRepeater.new(group)</code>
|
2701
2779
|
</li>
|
2702
2780
|
|
2703
|
-
<li class="never" data-hits="" data-linenumber="
|
2781
|
+
<li class="never" data-hits="" data-linenumber="175">
|
2704
2782
|
|
2705
2783
|
|
2706
2784
|
<code class="ruby"> end</code>
|
2707
2785
|
</li>
|
2708
2786
|
|
2709
|
-
<li class="never" data-hits="" data-linenumber="
|
2787
|
+
<li class="never" data-hits="" data-linenumber="176">
|
2710
2788
|
|
2711
2789
|
|
2712
2790
|
<code class="ruby"></code>
|
2713
2791
|
</li>
|
2714
2792
|
|
2715
|
-
<li class="covered" data-hits="1" data-linenumber="
|
2793
|
+
<li class="covered" data-hits="1" data-linenumber="177">
|
2716
2794
|
<span class="hits">1</span>
|
2717
2795
|
|
2718
2796
|
<code class="ruby"> def parse_plus_repeater(group)</code>
|
2719
2797
|
</li>
|
2720
2798
|
|
2721
|
-
<li class="covered" data-hits="4" data-linenumber="
|
2799
|
+
<li class="covered" data-hits="4" data-linenumber="178">
|
2722
2800
|
<span class="hits">4</span>
|
2723
2801
|
|
2724
2802
|
<code class="ruby"> @current_position += 1</code>
|
2725
2803
|
</li>
|
2726
2804
|
|
2727
|
-
<li class="covered" data-hits="4" data-linenumber="
|
2805
|
+
<li class="covered" data-hits="4" data-linenumber="179">
|
2728
2806
|
<span class="hits">4</span>
|
2729
2807
|
|
2730
2808
|
<code class="ruby"> PlusRepeater.new(group)</code>
|
2731
2809
|
</li>
|
2732
2810
|
|
2733
|
-
<li class="never" data-hits="" data-linenumber="
|
2811
|
+
<li class="never" data-hits="" data-linenumber="180">
|
2734
2812
|
|
2735
2813
|
|
2736
2814
|
<code class="ruby"> end</code>
|
2737
2815
|
</li>
|
2738
2816
|
|
2739
|
-
<li class="never" data-hits="" data-linenumber="
|
2817
|
+
<li class="never" data-hits="" data-linenumber="181">
|
2740
2818
|
|
2741
2819
|
|
2742
2820
|
<code class="ruby"></code>
|
2743
2821
|
</li>
|
2744
2822
|
|
2745
|
-
<li class="covered" data-hits="1" data-linenumber="
|
2823
|
+
<li class="covered" data-hits="1" data-linenumber="182">
|
2746
2824
|
<span class="hits">1</span>
|
2747
2825
|
|
2748
2826
|
<code class="ruby"> def parse_question_mark_repeater(group)</code>
|
2749
2827
|
</li>
|
2750
2828
|
|
2751
|
-
<li class="covered" data-hits="11" data-linenumber="
|
2829
|
+
<li class="covered" data-hits="11" data-linenumber="183">
|
2752
2830
|
<span class="hits">11</span>
|
2753
2831
|
|
2754
2832
|
<code class="ruby"> @current_position += 1</code>
|
2755
2833
|
</li>
|
2756
2834
|
|
2757
|
-
<li class="covered" data-hits="11" data-linenumber="
|
2835
|
+
<li class="covered" data-hits="11" data-linenumber="184">
|
2758
2836
|
<span class="hits">11</span>
|
2759
2837
|
|
2760
2838
|
<code class="ruby"> QuestionMarkRepeater.new(group)</code>
|
2761
2839
|
</li>
|
2762
2840
|
|
2763
|
-
<li class="never" data-hits="" data-linenumber="
|
2841
|
+
<li class="never" data-hits="" data-linenumber="185">
|
2764
2842
|
|
2765
2843
|
|
2766
2844
|
<code class="ruby"> end</code>
|
2767
2845
|
</li>
|
2768
2846
|
|
2769
|
-
<li class="never" data-hits="" data-linenumber="
|
2847
|
+
<li class="never" data-hits="" data-linenumber="186">
|
2770
2848
|
|
2771
2849
|
|
2772
2850
|
<code class="ruby"></code>
|
2773
2851
|
</li>
|
2774
2852
|
|
2775
|
-
<li class="covered" data-hits="1" data-linenumber="
|
2853
|
+
<li class="covered" data-hits="1" data-linenumber="187">
|
2776
2854
|
<span class="hits">1</span>
|
2777
2855
|
|
2778
2856
|
<code class="ruby"> def parse_range_repeater(group)</code>
|
2779
2857
|
</li>
|
2780
2858
|
|
2781
|
-
<li class="covered" data-hits="5" data-linenumber="
|
2859
|
+
<li class="covered" data-hits="5" data-linenumber="188">
|
2782
2860
|
<span class="hits">5</span>
|
2783
2861
|
|
2784
2862
|
<code class="ruby"> match = rest_of_string.match(/\A\{(\d+)?(,)?(\d+)?\}/)</code>
|
2785
2863
|
</li>
|
2786
2864
|
|
2787
|
-
<li class="covered" data-hits="5" data-linenumber="
|
2865
|
+
<li class="covered" data-hits="5" data-linenumber="189">
|
2788
2866
|
<span class="hits">5</span>
|
2789
2867
|
|
2790
2868
|
<code class="ruby"> @current_position += match[0].size</code>
|
2791
2869
|
</li>
|
2792
2870
|
|
2793
|
-
<li class="covered" data-hits="5" data-linenumber="
|
2871
|
+
<li class="covered" data-hits="5" data-linenumber="190">
|
2794
2872
|
<span class="hits">5</span>
|
2795
2873
|
|
2796
2874
|
<code class="ruby"> min = match[1].to_i if match[1]</code>
|
2797
2875
|
</li>
|
2798
2876
|
|
2799
|
-
<li class="covered" data-hits="5" data-linenumber="
|
2877
|
+
<li class="covered" data-hits="5" data-linenumber="191">
|
2800
2878
|
<span class="hits">5</span>
|
2801
2879
|
|
2802
2880
|
<code class="ruby"> has_comma = !match[2].nil?</code>
|
2803
2881
|
</li>
|
2804
2882
|
|
2805
|
-
<li class="covered" data-hits="5" data-linenumber="
|
2883
|
+
<li class="covered" data-hits="5" data-linenumber="192">
|
2806
2884
|
<span class="hits">5</span>
|
2807
2885
|
|
2808
2886
|
<code class="ruby"> max = match[3].to_i if match[3]</code>
|
2809
2887
|
</li>
|
2810
2888
|
|
2811
|
-
<li class="covered" data-hits="5" data-linenumber="
|
2889
|
+
<li class="covered" data-hits="5" data-linenumber="193">
|
2812
2890
|
<span class="hits">5</span>
|
2813
2891
|
|
2814
2892
|
<code class="ruby"> RangeRepeater.new(group, min, has_comma, max)</code>
|
2815
2893
|
</li>
|
2816
2894
|
|
2817
|
-
<li class="never" data-hits="" data-linenumber="
|
2895
|
+
<li class="never" data-hits="" data-linenumber="194">
|
2818
2896
|
|
2819
2897
|
|
2820
2898
|
<code class="ruby"> end</code>
|
2821
2899
|
</li>
|
2822
2900
|
|
2823
|
-
<li class="never" data-hits="" data-linenumber="
|
2901
|
+
<li class="never" data-hits="" data-linenumber="195">
|
2824
2902
|
|
2825
2903
|
|
2826
2904
|
<code class="ruby"></code>
|
2827
2905
|
</li>
|
2828
2906
|
|
2829
|
-
<li class="covered" data-hits="1" data-linenumber="
|
2907
|
+
<li class="covered" data-hits="1" data-linenumber="196">
|
2830
2908
|
<span class="hits">1</span>
|
2831
2909
|
|
2832
2910
|
<code class="ruby"> def parse_one_time_repeater(group)</code>
|
2833
2911
|
</li>
|
2834
2912
|
|
2835
|
-
<li class="covered" data-hits="
|
2836
|
-
<span class="hits">
|
2913
|
+
<li class="covered" data-hits="265" data-linenumber="197">
|
2914
|
+
<span class="hits">265</span>
|
2837
2915
|
|
2838
2916
|
<code class="ruby"> OneTimeRepeater.new(group)</code>
|
2839
2917
|
</li>
|
2840
2918
|
|
2841
|
-
<li class="never" data-hits="" data-linenumber="
|
2919
|
+
<li class="never" data-hits="" data-linenumber="198">
|
2842
2920
|
|
2843
2921
|
|
2844
2922
|
<code class="ruby"> end</code>
|
2845
2923
|
</li>
|
2846
2924
|
|
2847
|
-
<li class="never" data-hits="" data-linenumber="
|
2925
|
+
<li class="never" data-hits="" data-linenumber="199">
|
2848
2926
|
|
2849
2927
|
|
2850
2928
|
<code class="ruby"></code>
|
2851
2929
|
</li>
|
2852
2930
|
|
2853
|
-
<li class="covered" data-hits="1" data-linenumber="
|
2931
|
+
<li class="covered" data-hits="1" data-linenumber="200">
|
2854
2932
|
<span class="hits">1</span>
|
2855
2933
|
|
2856
2934
|
<code class="ruby"> def rest_of_string</code>
|
2857
2935
|
</li>
|
2858
2936
|
|
2859
|
-
<li class="covered" data-hits="
|
2860
|
-
<span class="hits">
|
2937
|
+
<li class="covered" data-hits="155" data-linenumber="201">
|
2938
|
+
<span class="hits">155</span>
|
2861
2939
|
|
2862
2940
|
<code class="ruby"> regexp_string[@current_position..-1]</code>
|
2863
2941
|
</li>
|
2864
2942
|
|
2865
|
-
<li class="never" data-hits="" data-linenumber="
|
2943
|
+
<li class="never" data-hits="" data-linenumber="202">
|
2866
2944
|
|
2867
2945
|
|
2868
2946
|
<code class="ruby"> end</code>
|
2869
2947
|
</li>
|
2870
2948
|
|
2871
|
-
<li class="never" data-hits="" data-linenumber="
|
2949
|
+
<li class="never" data-hits="" data-linenumber="203">
|
2872
2950
|
|
2873
2951
|
|
2874
2952
|
<code class="ruby"> end</code>
|
2875
2953
|
</li>
|
2876
2954
|
|
2877
|
-
<li class="never" data-hits="" data-linenumber="
|
2955
|
+
<li class="never" data-hits="" data-linenumber="204">
|
2878
2956
|
|
2879
2957
|
|
2880
2958
|
<code class="ruby">end</code>
|
2881
2959
|
</li>
|
2882
2960
|
|
2883
|
-
<li class="never" data-hits="" data-linenumber="
|
2961
|
+
<li class="never" data-hits="" data-linenumber="205">
|
2884
2962
|
|
2885
2963
|
|
2886
2964
|
<code class="ruby"></code>
|
@@ -2890,7 +2968,7 @@
|
|
2890
2968
|
</pre>
|
2891
2969
|
</div>
|
2892
2970
|
|
2893
|
-
<div class="source_table" id="
|
2971
|
+
<div class="source_table" id="7f62a530f44ef896b613d357fee92d31ffb7ede8">
|
2894
2972
|
<div class="header">
|
2895
2973
|
<h3>lib/regexp-examples/regexp_extensions.rb</h3>
|
2896
2974
|
<h4><span class="green">100.0 %</span> covered</h4>
|
@@ -2922,8 +3000,8 @@
|
|
2922
3000
|
<code class="ruby"> def examples</code>
|
2923
3001
|
</li>
|
2924
3002
|
|
2925
|
-
<li class="covered" data-hits="
|
2926
|
-
<span class="hits">
|
3003
|
+
<li class="covered" data-hits="73" data-linenumber="4">
|
3004
|
+
<span class="hits">73</span>
|
2927
3005
|
|
2928
3006
|
<code class="ruby"> partial_examples =</code>
|
2929
3007
|
</li>
|
@@ -2940,20 +3018,20 @@
|
|
2940
3018
|
<code class="ruby"> .parse</code>
|
2941
3019
|
</li>
|
2942
3020
|
|
2943
|
-
<li class="covered" data-hits="
|
2944
|
-
<span class="hits">
|
3021
|
+
<li class="covered" data-hits="133" data-linenumber="7">
|
3022
|
+
<span class="hits">133</span>
|
2945
3023
|
|
2946
3024
|
<code class="ruby"> .map {|repeater| repeater.result}</code>
|
2947
3025
|
</li>
|
2948
3026
|
|
2949
|
-
<li class="covered" data-hits="
|
2950
|
-
<span class="hits">
|
3027
|
+
<li class="covered" data-hits="69" data-linenumber="8">
|
3028
|
+
<span class="hits">69</span>
|
2951
3029
|
|
2952
3030
|
<code class="ruby"> full_examples = RegexpExamples::permutations_of_strings(partial_examples)</code>
|
2953
3031
|
</li>
|
2954
3032
|
|
2955
|
-
<li class="covered" data-hits="
|
2956
|
-
<span class="hits">
|
3033
|
+
<li class="covered" data-hits="69" data-linenumber="9">
|
3034
|
+
<span class="hits">69</span>
|
2957
3035
|
|
2958
3036
|
<code class="ruby"> RegexpExamples::BackReferenceReplacer.new.substitute_backreferences(full_examples)</code>
|
2959
3037
|
</li>
|
@@ -2992,7 +3070,7 @@
|
|
2992
3070
|
</pre>
|
2993
3071
|
</div>
|
2994
3072
|
|
2995
|
-
<div class="source_table" id="
|
3073
|
+
<div class="source_table" id="0688fc9c3b085e9a6444775c61767c9c5742fb69">
|
2996
3074
|
<div class="header">
|
2997
3075
|
<h3>lib/regexp-examples/repeaters.rb</h3>
|
2998
3076
|
<h4><span class="green">100.0 %</span> covered</h4>
|
@@ -3030,8 +3108,8 @@
|
|
3030
3108
|
<code class="ruby"> def initialize(group)</code>
|
3031
3109
|
</li>
|
3032
3110
|
|
3033
|
-
<li class="covered" data-hits="
|
3034
|
-
<span class="hits">
|
3111
|
+
<li class="covered" data-hits="290" data-linenumber="5">
|
3112
|
+
<span class="hits">290</span>
|
3035
3113
|
|
3036
3114
|
<code class="ruby"> @group = group</code>
|
3037
3115
|
</li>
|
@@ -3054,32 +3132,32 @@
|
|
3054
3132
|
<code class="ruby"> def result(min_repeats, max_repeats)</code>
|
3055
3133
|
</li>
|
3056
3134
|
|
3057
|
-
<li class="covered" data-hits="
|
3058
|
-
<span class="hits">
|
3135
|
+
<li class="covered" data-hits="290" data-linenumber="9">
|
3136
|
+
<span class="hits">290</span>
|
3059
3137
|
|
3060
3138
|
<code class="ruby"> group_results = @group.result[0 .. MaxGroupResults-1]</code>
|
3061
3139
|
</li>
|
3062
3140
|
|
3063
|
-
<li class="covered" data-hits="
|
3064
|
-
<span class="hits">
|
3141
|
+
<li class="covered" data-hits="290" data-linenumber="10">
|
3142
|
+
<span class="hits">290</span>
|
3065
3143
|
|
3066
3144
|
<code class="ruby"> results = []</code>
|
3067
3145
|
</li>
|
3068
3146
|
|
3069
|
-
<li class="covered" data-hits="
|
3070
|
-
<span class="hits">
|
3147
|
+
<li class="covered" data-hits="290" data-linenumber="11">
|
3148
|
+
<span class="hits">290</span>
|
3071
3149
|
|
3072
3150
|
<code class="ruby"> min_repeats.upto(max_repeats) do |repeats|</code>
|
3073
3151
|
</li>
|
3074
3152
|
|
3075
|
-
<li class="covered" data-hits="
|
3076
|
-
<span class="hits">
|
3153
|
+
<li class="covered" data-hits="320" data-linenumber="12">
|
3154
|
+
<span class="hits">320</span>
|
3077
3155
|
|
3078
3156
|
<code class="ruby"> group_results.each do |group_result|</code>
|
3079
3157
|
</li>
|
3080
3158
|
|
3081
|
-
<li class="covered" data-hits="
|
3082
|
-
<span class="hits">
|
3159
|
+
<li class="covered" data-hits="434" data-linenumber="13">
|
3160
|
+
<span class="hits">434</span>
|
3083
3161
|
|
3084
3162
|
<code class="ruby"> results << group_result * repeats</code>
|
3085
3163
|
</li>
|
@@ -3096,8 +3174,8 @@
|
|
3096
3174
|
<code class="ruby"> end</code>
|
3097
3175
|
</li>
|
3098
3176
|
|
3099
|
-
<li class="covered" data-hits="
|
3100
|
-
<span class="hits">
|
3177
|
+
<li class="covered" data-hits="290" data-linenumber="16">
|
3178
|
+
<span class="hits">290</span>
|
3101
3179
|
|
3102
3180
|
<code class="ruby"> results.uniq</code>
|
3103
3181
|
</li>
|
@@ -3132,8 +3210,8 @@
|
|
3132
3210
|
<code class="ruby"> def initialize(group)</code>
|
3133
3211
|
</li>
|
3134
3212
|
|
3135
|
-
<li class="covered" data-hits="
|
3136
|
-
<span class="hits">
|
3213
|
+
<li class="covered" data-hits="265" data-linenumber="22">
|
3214
|
+
<span class="hits">265</span>
|
3137
3215
|
|
3138
3216
|
<code class="ruby"> super</code>
|
3139
3217
|
</li>
|
@@ -3156,8 +3234,8 @@
|
|
3156
3234
|
<code class="ruby"> def result</code>
|
3157
3235
|
</li>
|
3158
3236
|
|
3159
|
-
<li class="covered" data-hits="
|
3160
|
-
<span class="hits">
|
3237
|
+
<li class="covered" data-hits="265" data-linenumber="26">
|
3238
|
+
<span class="hits">265</span>
|
3161
3239
|
|
3162
3240
|
<code class="ruby"> super(1, 1)</code>
|
3163
3241
|
</li>
|
@@ -3478,13 +3556,13 @@
|
|
3478
3556
|
</pre>
|
3479
3557
|
</div>
|
3480
3558
|
|
3481
|
-
<div class="source_table" id="
|
3559
|
+
<div class="source_table" id="953f94f8f5f8bad7e1fa800f942a74b781f8fa1c">
|
3482
3560
|
<div class="header">
|
3483
3561
|
<h3>spec/regexp-examples_spec.rb</h3>
|
3484
3562
|
<h4><span class="green">100.0 %</span> covered</h4>
|
3485
3563
|
<div>
|
3486
|
-
<b>
|
3487
|
-
<span class="green"><b>
|
3564
|
+
<b>34</b> relevant lines.
|
3565
|
+
<span class="green"><b>34</b> lines covered</span> and
|
3488
3566
|
<span class="red"><b>0</b> lines missed.</span>
|
3489
3567
|
</div>
|
3490
3568
|
</div>
|
@@ -3504,32 +3582,32 @@
|
|
3504
3582
|
<code class="ruby"> def self.examples_exist_and_match(*regexps)</code>
|
3505
3583
|
</li>
|
3506
3584
|
|
3507
|
-
<li class="covered" data-hits="
|
3508
|
-
<span class="hits">
|
3585
|
+
<li class="covered" data-hits="10" data-linenumber="3">
|
3586
|
+
<span class="hits">10</span>
|
3509
3587
|
|
3510
3588
|
<code class="ruby"> regexps.each do |regexp|</code>
|
3511
3589
|
</li>
|
3512
3590
|
|
3513
|
-
<li class="covered" data-hits="
|
3514
|
-
<span class="hits">
|
3591
|
+
<li class="covered" data-hits="69" data-linenumber="4">
|
3592
|
+
<span class="hits">69</span>
|
3515
3593
|
|
3516
3594
|
<code class="ruby"> it do</code>
|
3517
3595
|
</li>
|
3518
3596
|
|
3519
|
-
<li class="covered" data-hits="
|
3520
|
-
<span class="hits">
|
3597
|
+
<li class="covered" data-hits="69" data-linenumber="5">
|
3598
|
+
<span class="hits">69</span>
|
3521
3599
|
|
3522
3600
|
<code class="ruby"> regexp_examples = regexp.examples</code>
|
3523
3601
|
</li>
|
3524
3602
|
|
3525
|
-
<li class="covered" data-hits="
|
3526
|
-
<span class="hits">
|
3603
|
+
<li class="covered" data-hits="69" data-linenumber="6">
|
3604
|
+
<span class="hits">69</span>
|
3527
3605
|
|
3528
3606
|
<code class="ruby"> expect(regexp_examples).not_to be_empty</code>
|
3529
3607
|
</li>
|
3530
3608
|
|
3531
|
-
<li class="covered" data-hits="
|
3532
|
-
<span class="hits">
|
3609
|
+
<li class="covered" data-hits="234" data-linenumber="7">
|
3610
|
+
<span class="hits">234</span>
|
3533
3611
|
|
3534
3612
|
<code class="ruby"> regexp_examples.each { |example| expect(example).to match(/\A(?:#{regexp.source})\z/) }</code>
|
3535
3613
|
</li>
|
@@ -4281,30 +4359,144 @@
|
|
4281
4359
|
<li class="never" data-hits="" data-linenumber="132">
|
4282
4360
|
|
4283
4361
|
|
4284
|
-
<code class="ruby"> /\c
|
4362
|
+
<code class="ruby"> /\c?/,</code>
|
4285
4363
|
</li>
|
4286
4364
|
|
4287
4365
|
<li class="never" data-hits="" data-linenumber="133">
|
4288
4366
|
|
4289
4367
|
|
4290
|
-
<code class="ruby">
|
4368
|
+
<code class="ruby"> /\C-a/,</code>
|
4291
4369
|
</li>
|
4292
4370
|
|
4293
4371
|
<li class="never" data-hits="" data-linenumber="134">
|
4294
4372
|
|
4295
4373
|
|
4296
|
-
<code class="ruby">
|
4374
|
+
<code class="ruby"> /\C-&/</code>
|
4297
4375
|
</li>
|
4298
4376
|
|
4299
4377
|
<li class="never" data-hits="" data-linenumber="135">
|
4300
4378
|
|
4301
4379
|
|
4302
|
-
<code class="ruby">
|
4380
|
+
<code class="ruby"> )</code>
|
4303
4381
|
</li>
|
4304
4382
|
|
4305
4383
|
<li class="never" data-hits="" data-linenumber="136">
|
4306
4384
|
|
4307
4385
|
|
4386
|
+
<code class="ruby"> end</code>
|
4387
|
+
</li>
|
4388
|
+
|
4389
|
+
<li class="never" data-hits="" data-linenumber="137">
|
4390
|
+
|
4391
|
+
|
4392
|
+
<code class="ruby"></code>
|
4393
|
+
</li>
|
4394
|
+
|
4395
|
+
<li class="covered" data-hits="1" data-linenumber="138">
|
4396
|
+
<span class="hits">1</span>
|
4397
|
+
|
4398
|
+
<code class="ruby"> context "for escape sequences" do</code>
|
4399
|
+
</li>
|
4400
|
+
|
4401
|
+
<li class="covered" data-hits="1" data-linenumber="139">
|
4402
|
+
<span class="hits">1</span>
|
4403
|
+
|
4404
|
+
<code class="ruby"> examples_exist_and_match(</code>
|
4405
|
+
</li>
|
4406
|
+
|
4407
|
+
<li class="never" data-hits="" data-linenumber="140">
|
4408
|
+
|
4409
|
+
|
4410
|
+
<code class="ruby"> /\x42/,</code>
|
4411
|
+
</li>
|
4412
|
+
|
4413
|
+
<li class="never" data-hits="" data-linenumber="141">
|
4414
|
+
|
4415
|
+
|
4416
|
+
<code class="ruby"> /\x1D/,</code>
|
4417
|
+
</li>
|
4418
|
+
|
4419
|
+
<li class="never" data-hits="" data-linenumber="142">
|
4420
|
+
|
4421
|
+
|
4422
|
+
<code class="ruby"> /\x3word/,</code>
|
4423
|
+
</li>
|
4424
|
+
|
4425
|
+
<li class="never" data-hits="" data-linenumber="143">
|
4426
|
+
|
4427
|
+
|
4428
|
+
<code class="ruby"> /#{"\x80".force_encoding("ASCII-8BIT")}/</code>
|
4429
|
+
</li>
|
4430
|
+
|
4431
|
+
<li class="never" data-hits="" data-linenumber="144">
|
4432
|
+
|
4433
|
+
|
4434
|
+
<code class="ruby"> )</code>
|
4435
|
+
</li>
|
4436
|
+
|
4437
|
+
<li class="never" data-hits="" data-linenumber="145">
|
4438
|
+
|
4439
|
+
|
4440
|
+
<code class="ruby"> end</code>
|
4441
|
+
</li>
|
4442
|
+
|
4443
|
+
<li class="never" data-hits="" data-linenumber="146">
|
4444
|
+
|
4445
|
+
|
4446
|
+
<code class="ruby"></code>
|
4447
|
+
</li>
|
4448
|
+
|
4449
|
+
<li class="covered" data-hits="1" data-linenumber="147">
|
4450
|
+
<span class="hits">1</span>
|
4451
|
+
|
4452
|
+
<code class="ruby"> context "for unicode sequences" do</code>
|
4453
|
+
</li>
|
4454
|
+
|
4455
|
+
<li class="covered" data-hits="1" data-linenumber="148">
|
4456
|
+
<span class="hits">1</span>
|
4457
|
+
|
4458
|
+
<code class="ruby"> examples_exist_and_match(</code>
|
4459
|
+
</li>
|
4460
|
+
|
4461
|
+
<li class="never" data-hits="" data-linenumber="149">
|
4462
|
+
|
4463
|
+
|
4464
|
+
<code class="ruby"> /\u6829/,</code>
|
4465
|
+
</li>
|
4466
|
+
|
4467
|
+
<li class="never" data-hits="" data-linenumber="150">
|
4468
|
+
|
4469
|
+
|
4470
|
+
<code class="ruby"> /\uabcd/</code>
|
4471
|
+
</li>
|
4472
|
+
|
4473
|
+
<li class="never" data-hits="" data-linenumber="151">
|
4474
|
+
|
4475
|
+
|
4476
|
+
<code class="ruby"> )</code>
|
4477
|
+
</li>
|
4478
|
+
|
4479
|
+
<li class="never" data-hits="" data-linenumber="152">
|
4480
|
+
|
4481
|
+
|
4482
|
+
<code class="ruby"> end</code>
|
4483
|
+
</li>
|
4484
|
+
|
4485
|
+
<li class="never" data-hits="" data-linenumber="153">
|
4486
|
+
|
4487
|
+
|
4488
|
+
<code class="ruby"></code>
|
4489
|
+
</li>
|
4490
|
+
|
4491
|
+
<li class="never" data-hits="" data-linenumber="154">
|
4492
|
+
|
4493
|
+
|
4494
|
+
<code class="ruby"> end</code>
|
4495
|
+
</li>
|
4496
|
+
|
4497
|
+
<li class="never" data-hits="" data-linenumber="155">
|
4498
|
+
|
4499
|
+
|
4308
4500
|
<code class="ruby">end</code>
|
4309
4501
|
</li>
|
4310
4502
|
|