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.
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