regexp-examples 0.2.3 → 0.2.4

Sign up to get free protection for your applications and to get access to all the features.
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-16T17:34:09+00:00">2015-01-16T17:34:09+00:00</abbr></div>
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
- 75.85
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>304</b> relevant lines.
36
- <span class="green"><b>304</b> lines covered</span> and
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="#2803e22e3c56b48da477c2353232f0bc6e406a58" class="src_link" title="lib/regexp-examples.rb">lib/regexp-examples.rb</a></td>
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="#29a2a933bc8a3e2979023518566420381fb495fb" class="src_link" title="lib/regexp-examples/backreferences.rb">lib/regexp-examples/backreferences.rb</a></td>
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>46.5</td>
70
+ <td>48.7</td>
71
71
  </tr>
72
72
 
73
73
  <tr>
74
- <td class="strong"><a href="#e85042a89399d7715f4d8400e118fda97215b72c" class="src_link" title="lib/regexp-examples/constants.rb">lib/regexp-examples/constants.rb</a></td>
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="#1e3a4050d8206287a142d9723d2991d09a3f7a81" class="src_link" title="lib/regexp-examples/exceptions.rb">lib/regexp-examples/exceptions.rb</a></td>
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="#00d77fb2e4e21451442e29891ddf88bd05f0fbd7" class="src_link" title="lib/regexp-examples/groups.rb">lib/regexp-examples/groups.rb</a></td>
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>147.4</td>
100
+ <td>149.5</td>
101
101
  </tr>
102
102
 
103
103
  <tr>
104
- <td class="strong"><a href="#dad3c4bb6458db3261442a9292e1345b41afd730" class="src_link" title="lib/regexp-examples/helpers.rb">lib/regexp-examples/helpers.rb</a></td>
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>167.1</td>
110
+ <td>171.5</td>
111
111
  </tr>
112
112
 
113
113
  <tr>
114
- <td class="strong"><a href="#e013406b8d61f5ad15d0a3ad7ea7e8e96b6d7254" class="src_link" title="lib/regexp-examples/parser.rb">lib/regexp-examples/parser.rb</a></td>
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>192</td>
117
- <td>108</td>
118
- <td>108</td>
116
+ <td>205</td>
117
+ <td>116</td>
118
+ <td>116</td>
119
119
  <td>0</td>
120
- <td>55.2</td>
120
+ <td>53.0</td>
121
121
  </tr>
122
122
 
123
123
  <tr>
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>
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>39.0</td>
130
+ <td>43.5</td>
131
131
  </tr>
132
132
 
133
133
  <tr>
134
- <td class="strong"><a href="#430477f0c86b2d77a18fe51e32b818d48ab7e74b" class="src_link" title="lib/regexp-examples/repeaters.rb">lib/regexp-examples/repeaters.rb</a></td>
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>63.1</td>
140
+ <td>65.6</td>
141
141
  </tr>
142
142
 
143
143
  <tr>
144
- <td class="strong"><a href="#73ece59f571550448cda013ec330081f40e82321" class="src_link" title="spec/regexp-examples_spec.rb">spec/regexp-examples_spec.rb</a></td>
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>136</td>
147
- <td>30</td>
148
- <td>30</td>
146
+ <td>155</td>
147
+ <td>34</td>
148
+ <td>34</td>
149
149
  <td>0</td>
150
- <td>14.8</td>
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="2803e22e3c56b48da477c2353232f0bc6e406a58">
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="29a2a933bc8a3e2979023518566420381fb495fb">
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="61" data-linenumber="4">
232
- <span class="hits">61</span>
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="157" data-linenumber="5">
238
- <span class="hits">157</span>
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="157" data-linenumber="8">
256
- <span class="hits">157</span>
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="e85042a89399d7715f4d8400e118fda97215b72c">
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="1e3a4050d8206287a142d9723d2991d09a3f7a81">
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="00d77fb2e4e21451442e29891ddf88bd05f0fbd7">
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="1649" data-linenumber="8">
718
- <span class="hits">1649</span>
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="1649" data-linenumber="9">
724
- <span class="hits">1649</span>
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="1649" data-linenumber="10">
730
- <span class="hits">1649</span>
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="1649" data-linenumber="13">
748
- <span class="hits">1649</span>
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="1667" data-linenumber="17">
772
- <span class="hits">1667</span>
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="422" data-linenumber="23">
808
- <span class="hits">422</span>
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="182" data-linenumber="29">
844
- <span class="hits">182</span>
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="182" data-linenumber="32">
862
- <span class="hits">182</span>
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="dad3c4bb6458db3261442a9292e1345b41afd730">
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="278" data-linenumber="11">
1624
- <span class="hits">278</span>
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="278" data-linenumber="12">
1630
- <span class="hits">278</span>
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="164" data-linenumber="13">
1636
- <span class="hits">164</span>
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="237" data-linenumber="14">
1642
- <span class="hits">237</span>
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="237" data-linenumber="19">
1672
- <span class="hits">237</span>
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="237" data-linenumber="20">
1678
- <span class="hits">237</span>
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="237" data-linenumber="23">
1696
- <span class="hits">237</span>
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="e013406b8d61f5ad15d0a3ad7ea7e8e96b6d7254">
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>108</b> relevant lines.
1729
- <span class="green"><b>108</b> lines covered</span> and
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="65" data-linenumber="5">
1762
- <span class="hits">65</span>
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="65" data-linenumber="6">
1768
- <span class="hits">65</span>
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="65" data-linenumber="7">
1774
- <span class="hits">65</span>
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="112" data-linenumber="11">
1798
- <span class="hits">112</span>
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="112" data-linenumber="12">
1804
- <span class="hits">112</span>
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 &lt; regexp_string.length</code>
1807
1807
  </li>
1808
1808
 
1809
- <li class="covered" data-hits="323" data-linenumber="13">
1810
- <span class="hits">323</span>
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="319" data-linenumber="14">
1816
- <span class="hits">319</span>
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="278" data-linenumber="15">
1822
- <span class="hits">278</span>
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="278" data-linenumber="16">
1828
- <span class="hits">278</span>
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="278" data-linenumber="17">
1834
- <span class="hits">278</span>
1833
+ <li class="covered" data-hits="290" data-linenumber="17">
1834
+ <span class="hits">290</span>
1835
1835
 
1836
1836
  <code class="ruby"> repeaters &lt;&lt; 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="108" data-linenumber="19">
1846
- <span class="hits">108</span>
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="323" data-linenumber="25">
1882
- <span class="hits">323</span>
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="323" data-linenumber="26">
1888
- <span class="hits">323</span>
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 &#39;\\&#39;</code>
1957
1957
  </li>
1958
1958
 
1959
- <li class="covered" data-hits="42" data-linenumber="38">
1960
- <span class="hits">42</span>
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="174" data-linenumber="40">
1972
- <span class="hits">174</span>
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="319" data-linenumber="42">
1984
- <span class="hits">319</span>
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="42" data-linenumber="46">
2008
- <span class="hits">42</span>
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 =~ /\Ac(.)/ # Control character</code>
2076
+ <code class="ruby"> when rest_of_string =~ /\A(c|C-)(.)/ # Control character</code>
2077
2077
  </li>
2078
2078
 
2079
- <li class="covered" data-hits="6" data-linenumber="58">
2080
- <span class="hits">6</span>
2079
+ <li class="never" data-hits="" data-linenumber="58">
2081
2080
 
2082
- <code class="ruby"> @current_position += 1</code>
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="6" data-linenumber="59">
2086
- <span class="hits">6</span>
2085
+ <li class="covered" data-hits="8" data-linenumber="59">
2086
+ <span class="hits">8</span>
2087
2087
 
2088
- <code class="ruby"> group = parse_single_char_group( parse_control_character($1) )</code>
2088
+ <code class="ruby"> @current_position += $1.length</code>
2089
2089
  </li>
2090
2090
 
2091
- <li class="never" data-hits="" data-linenumber="60">
2092
-
2091
+ <li class="covered" data-hits="8" data-linenumber="60">
2092
+ <span class="hits">8</span>
2093
2093
 
2094
- <code class="ruby"> # TODO: There are also a bunch of multi-char matches to watch out for:</code>
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"> # http://en.wikibooks.org/wiki/Ruby_Programming/Syntax/Literals</code>
2100
+ <code class="ruby"> when rest_of_string =~ /\Ax(\h{1,2})/ # Escape sequence</code>
2101
2101
  </li>
2102
2102
 
2103
- <li class="never" data-hits="" data-linenumber="62">
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="63">
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="64">
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="42" data-linenumber="65">
2122
- <span class="hits">42</span>
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="42" data-linenumber="66">
2128
- <span class="hits">42</span>
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="67">
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="68">
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="69">
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="278" data-linenumber="70">
2152
- <span class="hits">278</span>
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="278" data-linenumber="71">
2158
- <span class="hits">278</span>
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="72">
2193
+ <li class="never" data-hits="" data-linenumber="77">
2164
2194
 
2165
2195
 
2166
2196
  <code class="ruby"> when &#39;*&#39;</code>
2167
2197
  </li>
2168
2198
 
2169
- <li class="covered" data-hits="5" data-linenumber="73">
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="74">
2205
+ <li class="never" data-hits="" data-linenumber="79">
2176
2206
 
2177
2207
 
2178
2208
  <code class="ruby"> when &#39;+&#39;</code>
2179
2209
  </li>
2180
2210
 
2181
- <li class="covered" data-hits="4" data-linenumber="75">
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="76">
2217
+ <li class="never" data-hits="" data-linenumber="81">
2188
2218
 
2189
2219
 
2190
2220
  <code class="ruby"> when &#39;?&#39;</code>
2191
2221
  </li>
2192
2222
 
2193
- <li class="covered" data-hits="11" data-linenumber="77">
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="78">
2229
+ <li class="never" data-hits="" data-linenumber="83">
2200
2230
 
2201
2231
 
2202
2232
  <code class="ruby"> when &#39;{&#39;</code>
2203
2233
  </li>
2204
2234
 
2205
- <li class="covered" data-hits="5" data-linenumber="79">
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="80">
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="253" data-linenumber="81">
2218
- <span class="hits">253</span>
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="82">
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="278" data-linenumber="83">
2230
- <span class="hits">278</span>
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="84">
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="85">
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="86">
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="87">
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="88">
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="89">
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="90">
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(\?)?(:|!|=|&lt;(!|=|[^!=][^&gt;]*))?/) do |match|</code>
2275
2305
  </li>
2276
2306
 
2277
- <li class="never" data-hits="" data-linenumber="91">
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="92">
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="93">
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="94">
2325
+ <li class="never" data-hits="" data-linenumber="99">
2296
2326
 
2297
2327
 
2298
2328
  <code class="ruby"> when match[2] == &#39;:&#39; # e.g. /(?:nocapture)/</code>
2299
2329
  </li>
2300
2330
 
2301
- <li class="covered" data-hits="1" data-linenumber="95">
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="96">
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="97">
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="98">
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, &quot;Lookaheads are not regular; cannot generate examples&quot;</code>
2323
2353
  </li>
2324
2354
 
2325
- <li class="never" data-hits="" data-linenumber="99">
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. /(?&lt;=lookbehind)/, /(?&lt;!neglookbehind)/</code>
2329
2359
  </li>
2330
2360
 
2331
- <li class="covered" data-hits="2" data-linenumber="100">
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, &quot;Lookbehinds are not regular; cannot generate examples&quot;</code>
2335
2365
  </li>
2336
2366
 
2337
- <li class="never" data-hits="" data-linenumber="101">
2367
+ <li class="never" data-hits="" data-linenumber="106">
2338
2368
 
2339
2369
 
2340
2370
  <code class="ruby"> else # e.g. /(?&lt;name&gt;namedgroup)/</code>
2341
2371
  </li>
2342
2372
 
2343
- <li class="covered" data-hits="2" data-linenumber="102">
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="103">
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="104">
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="105">
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="106">
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="107">
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="108">
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="109">
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="110">
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="111">
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="112">
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="113">
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="114">
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="115">
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="116">
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="117">
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] == &#39;]&#39;</code>
2437
2467
  </li>
2438
2468
 
2439
- <li class="never" data-hits="" data-linenumber="118">
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="119">
2475
+ <li class="never" data-hits="" data-linenumber="124">
2446
2476
 
2447
2477
 
2448
2478
  <code class="ruby"> # /[]]/ (match &quot;]&quot;)</code>
2449
2479
  </li>
2450
2480
 
2451
- <li class="covered" data-hits="1" data-linenumber="120">
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 &lt;&lt; &#39;]&#39;</code>
2455
2485
  </li>
2456
2486
 
2457
- <li class="covered" data-hits="1" data-linenumber="121">
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="122">
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="123">
2499
+ <li class="never" data-hits="" data-linenumber="128">
2470
2500
 
2471
2501
 
2472
2502
  <code class="ruby"> until regexp_string[@current_position] == &#39;]&#39; \</code>
2473
2503
  </li>
2474
2504
 
2475
- <li class="covered" data-hits="14" data-linenumber="124">
2505
+ <li class="covered" data-hits="14" data-linenumber="129">
2476
2506
  <span class="hits">14</span>
2477
2507
 
2478
2508
  <code class="ruby"> &amp;&amp; !regexp_string[0..@current_position-1].match(/[^\\](\\{2})*\\\z/)</code>
2479
2509
  </li>
2480
2510
 
2481
- <li class="never" data-hits="" data-linenumber="125">
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 &quot;\&quot; before the &quot;]&quot;, e.g.</code>
2485
2515
  </li>
2486
2516
 
2487
- <li class="never" data-hits="" data-linenumber="126">
2517
+ <li class="never" data-hits="" data-linenumber="131">
2488
2518
 
2489
2519
 
2490
2520
  <code class="ruby"> # /[\]]/ (match &quot;]&quot;)</code>
2491
2521
  </li>
2492
2522
 
2493
- <li class="never" data-hits="" data-linenumber="127">
2523
+ <li class="never" data-hits="" data-linenumber="132">
2494
2524
 
2495
2525
 
2496
2526
  <code class="ruby"> # /[\\]/ (match &quot;\&quot;)</code>
2497
2527
  </li>
2498
2528
 
2499
- <li class="never" data-hits="" data-linenumber="128">
2529
+ <li class="never" data-hits="" data-linenumber="133">
2500
2530
 
2501
2531
 
2502
2532
  <code class="ruby"> # /[\\\]]/ (match &quot;\&quot; or &quot;]&quot;)</code>
2503
2533
  </li>
2504
2534
 
2505
- <li class="covered" data-hits="41" data-linenumber="129">
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 &lt;&lt; regexp_string[@current_position]</code>
2509
2539
  </li>
2510
2540
 
2511
- <li class="covered" data-hits="41" data-linenumber="130">
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="131">
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="132">
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="133">
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="134">
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="135">
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="136">
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="137">
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="138">
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="139">
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="140">
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="141">
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="142">
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="143">
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="144">
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="145">
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="146">
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="182" data-linenumber="147">
2614
- <span class="hits">182</span>
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="148">
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="149">
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="150">
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="151">
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="152">
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="153">
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="154">
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="never" data-hits="" data-linenumber="155">
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 &quot;?\\C-#{char.chr}&quot; # Doesn&#39;t work for e.g. char = &quot;?&quot;</code>
2701
+ </li>
2702
+
2703
+ <li class="never" data-hits="" data-linenumber="162">
2663
2704
 
2664
- <code class="ruby"> # TODO: Is there a better way of doing this? I.e. not just brute-force</code>
2705
+
2706
+ <code class="ruby"> end</code>
2665
2707
  </li>
2666
2708
 
2667
- <li class="covered" data-hits="125" data-linenumber="156">
2668
- <span class="hits">125</span>
2709
+ <li class="never" data-hits="" data-linenumber="163">
2710
+
2669
2711
 
2670
- <code class="ruby"> (0..255).detect { |x| x.chr =~ Regexp.new(&quot;\\c#{char}&quot;) }.chr</code>
2712
+ <code class="ruby"></code>
2671
2713
  </li>
2672
2714
 
2673
- <li class="never" data-hits="" data-linenumber="157">
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 &quot;?\\x#{match}&quot;</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="158">
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="159">
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 &quot;?\\u#{match}&quot;</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="160">
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="161">
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="162">
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="163">
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="164">
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="165">
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="166">
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="167">
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="168">
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="169">
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="170">
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="171">
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="172">
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="173">
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="174">
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="175">
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="176">
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="177">
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="178">
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="179">
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="180">
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="181">
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="182">
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="183">
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="253" data-linenumber="184">
2836
- <span class="hits">253</span>
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="185">
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="186">
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="187">
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="123" data-linenumber="188">
2860
- <span class="hits">123</span>
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="189">
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="190">
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="191">
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="192">
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="0dc204f32cb2876d2238a2aae7dea86ad7f9e679">
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="65" data-linenumber="4">
2926
- <span class="hits">65</span>
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="121" data-linenumber="7">
2944
- <span class="hits">121</span>
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="61" data-linenumber="8">
2950
- <span class="hits">61</span>
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="61" data-linenumber="9">
2956
- <span class="hits">61</span>
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="430477f0c86b2d77a18fe51e32b818d48ab7e74b">
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="278" data-linenumber="5">
3034
- <span class="hits">278</span>
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="278" data-linenumber="9">
3058
- <span class="hits">278</span>
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="278" data-linenumber="10">
3064
- <span class="hits">278</span>
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="278" data-linenumber="11">
3070
- <span class="hits">278</span>
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="308" data-linenumber="12">
3076
- <span class="hits">308</span>
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="422" data-linenumber="13">
3082
- <span class="hits">422</span>
3159
+ <li class="covered" data-hits="434" data-linenumber="13">
3160
+ <span class="hits">434</span>
3083
3161
 
3084
3162
  <code class="ruby"> results &lt;&lt; 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="278" data-linenumber="16">
3100
- <span class="hits">278</span>
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="253" data-linenumber="22">
3136
- <span class="hits">253</span>
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="253" data-linenumber="26">
3160
- <span class="hits">253</span>
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="73ece59f571550448cda013ec330081f40e82321">
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>30</b> relevant lines.
3487
- <span class="green"><b>30</b> lines covered</span> and
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="8" data-linenumber="3">
3508
- <span class="hits">8</span>
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="61" data-linenumber="4">
3514
- <span class="hits">61</span>
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="61" data-linenumber="5">
3520
- <span class="hits">61</span>
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="61" data-linenumber="6">
3526
- <span class="hits">61</span>
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="218" data-linenumber="7">
3532
- <span class="hits">218</span>
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?/</code>
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"> )</code>
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"> end</code>
4374
+ <code class="ruby"> /\C-&amp;/</code>
4297
4375
  </li>
4298
4376
 
4299
4377
  <li class="never" data-hits="" data-linenumber="135">
4300
4378
 
4301
4379
 
4302
- <code class="ruby"> end</code>
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 &quot;for escape sequences&quot; 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"> /#{&quot;\x80&quot;.force_encoding(&quot;ASCII-8BIT&quot;)}/</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 &quot;for unicode sequences&quot; 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