coverage/index.html in regexp-examples-0.2.3 vs coverage/index.html in regexp-examples-0.2.4
- old
+ new
@@ -12,30 +12,30 @@
<body>
<div id="loading">
<img src="./assets/0.8.0/loading.gif" alt="loading"/>
</div>
<div id="wrapper" style="display:none;">
- <div class="timestamp">Generated <abbr class="timeago" title="2015-01-16T17:34:09+00:00">2015-01-16T17:34:09+00:00</abbr></div>
+ <div class="timestamp">Generated <abbr class="timeago" title="2015-01-17T16:37:30+00:00">2015-01-17T16:37:30+00:00</abbr></div>
<ul class="group_tabs"></ul>
<div id="content">
<div class="file_list_container" id="AllFiles">
<h2>
<span class="group_name">All Files</span>
(<span class="covered_percent"><span class="green">100.0%</span></span>
covered at
<span class="covered_strength">
<span class="green">
- 75.85
+ 74.89
</span>
</span> hits/line)
</h2>
<a name="AllFiles"></a>
<div>
<b>10</b> files in total.
- <b>304</b> relevant lines.
- <span class="green"><b>304</b> lines covered</span> and
+ <b>316</b> relevant lines.
+ <span class="green"><b>316</b> lines covered</span> and
<span class="red"><b>0</b> lines missed </span>
</div>
<table class="file_list">
<thead>
<tr>
@@ -49,107 +49,107 @@
</tr>
</thead>
<tbody>
<tr>
- <td class="strong"><a href="#2803e22e3c56b48da477c2353232f0bc6e406a58" class="src_link" title="lib/regexp-examples.rb">lib/regexp-examples.rb</a></td>
+ <td class="strong"><a href="#54b5d2a122ff754d8ac3e44ac036a743f275d5cd" class="src_link" title="lib/regexp-examples.rb">lib/regexp-examples.rb</a></td>
<td class="green strong">100.0 %</td>
<td>2</td>
<td>1</td>
<td>1</td>
<td>0</td>
<td>10.0</td>
</tr>
<tr>
- <td class="strong"><a href="#29a2a933bc8a3e2979023518566420381fb495fb" class="src_link" title="lib/regexp-examples/backreferences.rb">lib/regexp-examples/backreferences.rb</a></td>
+ <td class="strong"><a href="#93190cc93d103d3260faf0664b10ff54c6eea083" class="src_link" title="lib/regexp-examples/backreferences.rb">lib/regexp-examples/backreferences.rb</a></td>
<td class="green strong">100.0 %</td>
<td>21</td>
<td>11</td>
<td>11</td>
<td>0</td>
- <td>46.5</td>
+ <td>48.7</td>
</tr>
<tr>
- <td class="strong"><a href="#e85042a89399d7715f4d8400e118fda97215b72c" class="src_link" title="lib/regexp-examples/constants.rb">lib/regexp-examples/constants.rb</a></td>
+ <td class="strong"><a href="#63a4d8bce3d583c95db1448751ea1a5d89880a5c" class="src_link" title="lib/regexp-examples/constants.rb">lib/regexp-examples/constants.rb</a></td>
<td class="green strong">100.0 %</td>
<td>42</td>
<td>12</td>
<td>12</td>
<td>0</td>
<td>6.8</td>
</tr>
<tr>
- <td class="strong"><a href="#1e3a4050d8206287a142d9723d2991d09a3f7a81" class="src_link" title="lib/regexp-examples/exceptions.rb">lib/regexp-examples/exceptions.rb</a></td>
+ <td class="strong"><a href="#1bb4101b0e3c014469af0221a5549cd762b969cb" class="src_link" title="lib/regexp-examples/exceptions.rb">lib/regexp-examples/exceptions.rb</a></td>
<td class="green strong">100.0 %</td>
<td>5</td>
<td>4</td>
<td>4</td>
<td>0</td>
<td>1.0</td>
</tr>
<tr>
- <td class="strong"><a href="#00d77fb2e4e21451442e29891ddf88bd05f0fbd7" class="src_link" title="lib/regexp-examples/groups.rb">lib/regexp-examples/groups.rb</a></td>
+ <td class="strong"><a href="#a6c87537a3f20f2e6e7fc1c61e4c6c791987b6f8" class="src_link" title="lib/regexp-examples/groups.rb">lib/regexp-examples/groups.rb</a></td>
<td class="green strong">100.0 %</td>
<td>145</td>
<td>77</td>
<td>77</td>
<td>0</td>
- <td>147.4</td>
+ <td>149.5</td>
</tr>
<tr>
- <td class="strong"><a href="#dad3c4bb6458db3261442a9292e1345b41afd730" class="src_link" title="lib/regexp-examples/helpers.rb">lib/regexp-examples/helpers.rb</a></td>
+ <td class="strong"><a href="#9ae955cbc95623603c71e3cb5269e0b5572d66bb" class="src_link" title="lib/regexp-examples/helpers.rb">lib/regexp-examples/helpers.rb</a></td>
<td class="green strong">100.0 %</td>
<td>26</td>
<td>10</td>
<td>10</td>
<td>0</td>
- <td>167.1</td>
+ <td>171.5</td>
</tr>
<tr>
- <td class="strong"><a href="#e013406b8d61f5ad15d0a3ad7ea7e8e96b6d7254" class="src_link" title="lib/regexp-examples/parser.rb">lib/regexp-examples/parser.rb</a></td>
+ <td class="strong"><a href="#d0056bbc5aec01e743374a8696b2086c03bae8f0" class="src_link" title="lib/regexp-examples/parser.rb">lib/regexp-examples/parser.rb</a></td>
<td class="green strong">100.0 %</td>
- <td>192</td>
- <td>108</td>
- <td>108</td>
+ <td>205</td>
+ <td>116</td>
+ <td>116</td>
<td>0</td>
- <td>55.2</td>
+ <td>53.0</td>
</tr>
<tr>
- <td class="strong"><a href="#0dc204f32cb2876d2238a2aae7dea86ad7f9e679" class="src_link" title="lib/regexp-examples/regexp_extensions.rb">lib/regexp-examples/regexp_extensions.rb</a></td>
+ <td class="strong"><a href="#7f62a530f44ef896b613d357fee92d31ffb7ede8" class="src_link" title="lib/regexp-examples/regexp_extensions.rb">lib/regexp-examples/regexp_extensions.rb</a></td>
<td class="green strong">100.0 %</td>
<td>14</td>
<td>8</td>
<td>8</td>
<td>0</td>
- <td>39.0</td>
+ <td>43.5</td>
</tr>
<tr>
- <td class="strong"><a href="#430477f0c86b2d77a18fe51e32b818d48ab7e74b" class="src_link" title="lib/regexp-examples/repeaters.rb">lib/regexp-examples/repeaters.rb</a></td>
+ <td class="strong"><a href="#0688fc9c3b085e9a6444775c61767c9c5742fb69" class="src_link" title="lib/regexp-examples/repeaters.rb">lib/regexp-examples/repeaters.rb</a></td>
<td class="green strong">100.0 %</td>
<td>78</td>
<td>43</td>
<td>43</td>
<td>0</td>
- <td>63.1</td>
+ <td>65.6</td>
</tr>
<tr>
- <td class="strong"><a href="#73ece59f571550448cda013ec330081f40e82321" class="src_link" title="spec/regexp-examples_spec.rb">spec/regexp-examples_spec.rb</a></td>
+ <td class="strong"><a href="#953f94f8f5f8bad7e1fa800f942a74b781f8fa1c" class="src_link" title="spec/regexp-examples_spec.rb">spec/regexp-examples_spec.rb</a></td>
<td class="green strong">100.0 %</td>
- <td>136</td>
- <td>30</td>
- <td>30</td>
+ <td>155</td>
+ <td>34</td>
+ <td>34</td>
<td>0</td>
- <td>14.8</td>
+ <td>14.4</td>
</tr>
</tbody>
</table>
</div>
@@ -164,11 +164,11 @@
using RSpec
</div>
<div class="source_files">
- <div class="source_table" id="2803e22e3c56b48da477c2353232f0bc6e406a58">
+ <div class="source_table" id="54b5d2a122ff754d8ac3e44ac036a743f275d5cd">
<div class="header">
<h3>lib/regexp-examples.rb</h3>
<h4><span class="green">100.0 %</span> covered</h4>
<div>
<b>1</b> relevant lines.
@@ -194,11 +194,11 @@
</ol>
</pre>
</div>
- <div class="source_table" id="29a2a933bc8a3e2979023518566420381fb495fb">
+ <div class="source_table" id="93190cc93d103d3260faf0664b10ff54c6eea083">
<div class="header">
<h3>lib/regexp-examples/backreferences.rb</h3>
<h4><span class="green">100.0 %</span> covered</h4>
<div>
<b>11</b> relevant lines.
@@ -226,18 +226,18 @@
<span class="hits">1</span>
<code class="ruby"> def substitute_backreferences(full_examples)</code>
</li>
- <li class="covered" data-hits="61" data-linenumber="4">
- <span class="hits">61</span>
+ <li class="covered" data-hits="69" data-linenumber="4">
+ <span class="hits">69</span>
<code class="ruby"> full_examples.map do |full_example|</code>
</li>
- <li class="covered" data-hits="157" data-linenumber="5">
- <span class="hits">157</span>
+ <li class="covered" data-hits="165" data-linenumber="5">
+ <span class="hits">165</span>
<code class="ruby"> while full_example.match(/__(\w+?)__/)</code>
</li>
<li class="covered" data-hits="28" data-linenumber="6">
@@ -250,12 +250,12 @@
<code class="ruby"> end</code>
</li>
- <li class="covered" data-hits="157" data-linenumber="8">
- <span class="hits">157</span>
+ <li class="covered" data-hits="165" data-linenumber="8">
+ <span class="hits">165</span>
<code class="ruby"> full_example</code>
</li>
<li class="never" data-hits="" data-linenumber="9">
@@ -338,11 +338,11 @@
</ol>
</pre>
</div>
- <div class="source_table" id="e85042a89399d7715f4d8400e118fda97215b72c">
+ <div class="source_table" id="63a4d8bce3d583c95db1448751ea1a5d89880a5c">
<div class="header">
<h3>lib/regexp-examples/constants.rb</h3>
<h4><span class="green">100.0 %</span> covered</h4>
<div>
<b>12</b> relevant lines.
@@ -608,11 +608,11 @@
</ol>
</pre>
</div>
- <div class="source_table" id="1e3a4050d8206287a142d9723d2991d09a3f7a81">
+ <div class="source_table" id="1bb4101b0e3c014469af0221a5549cd762b969cb">
<div class="header">
<h3>lib/regexp-examples/exceptions.rb</h3>
<h4><span class="green">100.0 %</span> covered</h4>
<div>
<b>4</b> relevant lines.
@@ -656,11 +656,11 @@
</ol>
</pre>
</div>
- <div class="source_table" id="00d77fb2e4e21451442e29891ddf88bd05f0fbd7">
+ <div class="source_table" id="a6c87537a3f20f2e6e7fc1c61e4c6c791987b6f8">
<div class="header">
<h3>lib/regexp-examples/groups.rb</h3>
<h4><span class="green">100.0 %</span> covered</h4>
<div>
<b>77</b> relevant lines.
@@ -712,24 +712,24 @@
<span class="hits">1</span>
<code class="ruby"> def initialize(result, group_id = nil, subgroups = [])</code>
</li>
- <li class="covered" data-hits="1649" data-linenumber="8">
- <span class="hits">1649</span>
+ <li class="covered" data-hits="1677" data-linenumber="8">
+ <span class="hits">1677</span>
<code class="ruby"> @group_id = group_id</code>
</li>
- <li class="covered" data-hits="1649" data-linenumber="9">
- <span class="hits">1649</span>
+ <li class="covered" data-hits="1677" data-linenumber="9">
+ <span class="hits">1677</span>
<code class="ruby"> @subgroups = subgroups</code>
</li>
- <li class="covered" data-hits="1649" data-linenumber="10">
- <span class="hits">1649</span>
+ <li class="covered" data-hits="1677" data-linenumber="10">
+ <span class="hits">1677</span>
<code class="ruby"> if result.respond_to?(:group_id)</code>
</li>
<li class="covered" data-hits="122" data-linenumber="11">
@@ -742,12 +742,12 @@
<code class="ruby"> end</code>
</li>
- <li class="covered" data-hits="1649" data-linenumber="13">
- <span class="hits">1649</span>
+ <li class="covered" data-hits="1677" data-linenumber="13">
+ <span class="hits">1677</span>
<code class="ruby"> super(result)</code>
</li>
<li class="never" data-hits="" data-linenumber="14">
@@ -766,12 +766,12 @@
<span class="hits">1</span>
<code class="ruby"> def all_subgroups</code>
</li>
- <li class="covered" data-hits="1667" data-linenumber="17">
- <span class="hits">1667</span>
+ <li class="covered" data-hits="1683" data-linenumber="17">
+ <span class="hits">1683</span>
<code class="ruby"> [self, subgroups].flatten.reject { |subgroup| subgroup.group_id.nil? }</code>
</li>
<li class="never" data-hits="" data-linenumber="18">
@@ -802,12 +802,12 @@
<span class="hits">1</span>
<code class="ruby"> def *(int)</code>
</li>
- <li class="covered" data-hits="422" data-linenumber="23">
- <span class="hits">422</span>
+ <li class="covered" data-hits="434" data-linenumber="23">
+ <span class="hits">434</span>
<code class="ruby"> self.class.new(super.to_s, group_id, subgroups)</code>
</li>
<li class="never" data-hits="" data-linenumber="24">
@@ -838,12 +838,12 @@
<span class="hits">1</span>
<code class="ruby"> def initialize(char)</code>
</li>
- <li class="covered" data-hits="182" data-linenumber="29">
- <span class="hits">182</span>
+ <li class="covered" data-hits="194" data-linenumber="29">
+ <span class="hits">194</span>
<code class="ruby"> @char = char</code>
</li>
<li class="never" data-hits="" data-linenumber="30">
@@ -856,12 +856,12 @@
<span class="hits">1</span>
<code class="ruby"> def result</code>
</li>
- <li class="covered" data-hits="182" data-linenumber="32">
- <span class="hits">182</span>
+ <li class="covered" data-hits="194" data-linenumber="32">
+ <span class="hits">194</span>
<code class="ruby"> [GroupResult.new(@char)]</code>
</li>
<li class="never" data-hits="" data-linenumber="33">
@@ -1544,11 +1544,11 @@
</ol>
</pre>
</div>
- <div class="source_table" id="dad3c4bb6458db3261442a9292e1345b41afd730">
+ <div class="source_table" id="9ae955cbc95623603c71e3cb5269e0b5572d66bb">
<div class="header">
<h3>lib/regexp-examples/helpers.rb</h3>
<h4><span class="green">100.0 %</span> covered</h4>
<div>
<b>10</b> relevant lines.
@@ -1618,30 +1618,30 @@
<span class="hits">1</span>
<code class="ruby"> def self.permutations_of_strings(arrays_of_strings, options={})</code>
</li>
- <li class="covered" data-hits="278" data-linenumber="11">
- <span class="hits">278</span>
+ <li class="covered" data-hits="290" data-linenumber="11">
+ <span class="hits">290</span>
<code class="ruby"> first = arrays_of_strings.shift</code>
</li>
- <li class="covered" data-hits="278" data-linenumber="12">
- <span class="hits">278</span>
+ <li class="covered" data-hits="290" data-linenumber="12">
+ <span class="hits">290</span>
<code class="ruby"> return first if arrays_of_strings.empty?</code>
</li>
- <li class="covered" data-hits="164" data-linenumber="13">
- <span class="hits">164</span>
+ <li class="covered" data-hits="168" data-linenumber="13">
+ <span class="hits">168</span>
<code class="ruby"> first.product( permutations_of_strings(arrays_of_strings, options) ).map do |result|</code>
</li>
- <li class="covered" data-hits="237" data-linenumber="14">
- <span class="hits">237</span>
+ <li class="covered" data-hits="241" data-linenumber="14">
+ <span class="hits">241</span>
<code class="ruby"> join_preserving_capture_groups(result)</code>
</li>
<li class="never" data-hits="" data-linenumber="15">
@@ -1666,18 +1666,18 @@
<span class="hits">1</span>
<code class="ruby"> def self.join_preserving_capture_groups(result)</code>
</li>
- <li class="covered" data-hits="237" data-linenumber="19">
- <span class="hits">237</span>
+ <li class="covered" data-hits="241" data-linenumber="19">
+ <span class="hits">241</span>
<code class="ruby"> result.flatten!</code>
</li>
- <li class="covered" data-hits="237" data-linenumber="20">
- <span class="hits">237</span>
+ <li class="covered" data-hits="241" data-linenumber="20">
+ <span class="hits">241</span>
<code class="ruby"> subgroups = result</code>
</li>
<li class="never" data-hits="" data-linenumber="21">
@@ -1690,12 +1690,12 @@
<code class="ruby"> .flatten</code>
</li>
- <li class="covered" data-hits="237" data-linenumber="23">
- <span class="hits">237</span>
+ <li class="covered" data-hits="241" data-linenumber="23">
+ <span class="hits">241</span>
<code class="ruby"> GroupResult.new(result.join, nil, subgroups)</code>
</li>
<li class="never" data-hits="" data-linenumber="24">
@@ -1718,17 +1718,17 @@
</ol>
</pre>
</div>
- <div class="source_table" id="e013406b8d61f5ad15d0a3ad7ea7e8e96b6d7254">
+ <div class="source_table" id="d0056bbc5aec01e743374a8696b2086c03bae8f0">
<div class="header">
<h3>lib/regexp-examples/parser.rb</h3>
<h4><span class="green">100.0 %</span> covered</h4>
<div>
- <b>108</b> relevant lines.
- <span class="green"><b>108</b> lines covered</span> and
+ <b>116</b> relevant lines.
+ <span class="green"><b>116</b> lines covered</span> and
<span class="red"><b>0</b> lines missed.</span>
</div>
</div>
<pre>
@@ -1756,24 +1756,24 @@
<span class="hits">1</span>
<code class="ruby"> def initialize(regexp_string)</code>
</li>
- <li class="covered" data-hits="65" data-linenumber="5">
- <span class="hits">65</span>
+ <li class="covered" data-hits="73" data-linenumber="5">
+ <span class="hits">73</span>
<code class="ruby"> @regexp_string = regexp_string</code>
</li>
- <li class="covered" data-hits="65" data-linenumber="6">
- <span class="hits">65</span>
+ <li class="covered" data-hits="73" data-linenumber="6">
+ <span class="hits">73</span>
<code class="ruby"> @num_groups = 0</code>
</li>
- <li class="covered" data-hits="65" data-linenumber="7">
- <span class="hits">65</span>
+ <li class="covered" data-hits="73" data-linenumber="7">
+ <span class="hits">73</span>
<code class="ruby"> @current_position = 0</code>
</li>
<li class="never" data-hits="" data-linenumber="8">
@@ -1792,60 +1792,60 @@
<span class="hits">1</span>
<code class="ruby"> def parse</code>
</li>
- <li class="covered" data-hits="112" data-linenumber="11">
- <span class="hits">112</span>
+ <li class="covered" data-hits="120" data-linenumber="11">
+ <span class="hits">120</span>
<code class="ruby"> repeaters = []</code>
</li>
- <li class="covered" data-hits="112" data-linenumber="12">
- <span class="hits">112</span>
+ <li class="covered" data-hits="120" data-linenumber="12">
+ <span class="hits">120</span>
<code class="ruby"> while @current_position < regexp_string.length</code>
</li>
- <li class="covered" data-hits="323" data-linenumber="13">
- <span class="hits">323</span>
+ <li class="covered" data-hits="335" data-linenumber="13">
+ <span class="hits">335</span>
<code class="ruby"> group = parse_group(repeaters)</code>
</li>
- <li class="covered" data-hits="319" data-linenumber="14">
- <span class="hits">319</span>
+ <li class="covered" data-hits="331" data-linenumber="14">
+ <span class="hits">331</span>
<code class="ruby"> break if group.is_a? MultiGroupEnd</code>
</li>
- <li class="covered" data-hits="278" data-linenumber="15">
- <span class="hits">278</span>
+ <li class="covered" data-hits="290" data-linenumber="15">
+ <span class="hits">290</span>
<code class="ruby"> repeaters = [] if group.is_a? OrGroup</code>
</li>
- <li class="covered" data-hits="278" data-linenumber="16">
- <span class="hits">278</span>
+ <li class="covered" data-hits="290" data-linenumber="16">
+ <span class="hits">290</span>
<code class="ruby"> @current_position += 1</code>
</li>
- <li class="covered" data-hits="278" data-linenumber="17">
- <span class="hits">278</span>
+ <li class="covered" data-hits="290" data-linenumber="17">
+ <span class="hits">290</span>
<code class="ruby"> repeaters << parse_repeater(group)</code>
</li>
<li class="never" data-hits="" data-linenumber="18">
<code class="ruby"> end</code>
</li>
- <li class="covered" data-hits="108" data-linenumber="19">
- <span class="hits">108</span>
+ <li class="covered" data-hits="116" data-linenumber="19">
+ <span class="hits">116</span>
<code class="ruby"> repeaters</code>
</li>
<li class="never" data-hits="" data-linenumber="20">
@@ -1876,18 +1876,18 @@
<span class="hits">1</span>
<code class="ruby"> def parse_group(repeaters)</code>
</li>
- <li class="covered" data-hits="323" data-linenumber="25">
- <span class="hits">323</span>
+ <li class="covered" data-hits="335" data-linenumber="25">
+ <span class="hits">335</span>
<code class="ruby"> char = regexp_string[@current_position]</code>
</li>
- <li class="covered" data-hits="323" data-linenumber="26">
- <span class="hits">323</span>
+ <li class="covered" data-hits="335" data-linenumber="26">
+ <span class="hits">335</span>
<code class="ruby"> case char</code>
</li>
<li class="never" data-hits="" data-linenumber="27">
@@ -1954,36 +1954,36 @@
<code class="ruby"> when '\\'</code>
</li>
- <li class="covered" data-hits="42" data-linenumber="38">
- <span class="hits">42</span>
+ <li class="covered" data-hits="49" data-linenumber="38">
+ <span class="hits">49</span>
<code class="ruby"> group = parse_after_backslash_group</code>
</li>
<li class="never" data-hits="" data-linenumber="39">
<code class="ruby"> else</code>
</li>
- <li class="covered" data-hits="174" data-linenumber="40">
- <span class="hits">174</span>
+ <li class="covered" data-hits="179" data-linenumber="40">
+ <span class="hits">179</span>
<code class="ruby"> group = parse_single_char_group(char)</code>
</li>
<li class="never" data-hits="" data-linenumber="41">
<code class="ruby"> end</code>
</li>
- <li class="covered" data-hits="319" data-linenumber="42">
- <span class="hits">319</span>
+ <li class="covered" data-hits="331" data-linenumber="42">
+ <span class="hits">331</span>
<code class="ruby"> group</code>
</li>
<li class="never" data-hits="" data-linenumber="43">
@@ -2002,12 +2002,12 @@
<span class="hits">1</span>
<code class="ruby"> def parse_after_backslash_group</code>
</li>
- <li class="covered" data-hits="42" data-linenumber="46">
- <span class="hits">42</span>
+ <li class="covered" data-hits="49" data-linenumber="46">
+ <span class="hits">49</span>
<code class="ruby"> @current_position += 1</code>
</li>
<li class="never" data-hits="" data-linenumber="47">
@@ -2071,828 +2071,906 @@
</li>
<li class="never" data-hits="" data-linenumber="57">
- <code class="ruby"> when rest_of_string =~ /\Ac(.)/ # Control character</code>
+ <code class="ruby"> when rest_of_string =~ /\A(c|C-)(.)/ # Control character</code>
</li>
- <li class="covered" data-hits="6" data-linenumber="58">
- <span class="hits">6</span>
+ <li class="never" data-hits="" data-linenumber="58">
- <code class="ruby"> @current_position += 1</code>
+
+ <code class="ruby"> # http://en.wikibooks.org/wiki/Ruby_Programming/Syntax/Literals</code>
</li>
- <li class="covered" data-hits="6" data-linenumber="59">
- <span class="hits">6</span>
+ <li class="covered" data-hits="8" data-linenumber="59">
+ <span class="hits">8</span>
- <code class="ruby"> group = parse_single_char_group( parse_control_character($1) )</code>
+ <code class="ruby"> @current_position += $1.length</code>
</li>
- <li class="never" data-hits="" data-linenumber="60">
+ <li class="covered" data-hits="8" data-linenumber="60">
+ <span class="hits">8</span>
-
- <code class="ruby"> # TODO: There are also a bunch of multi-char matches to watch out for:</code>
+ <code class="ruby"> group = parse_single_char_group( parse_control_character($2) )</code>
</li>
<li class="never" data-hits="" data-linenumber="61">
- <code class="ruby"> # http://en.wikibooks.org/wiki/Ruby_Programming/Syntax/Literals</code>
+ <code class="ruby"> when rest_of_string =~ /\Ax(\h{1,2})/ # Escape sequence</code>
</li>
- <li class="never" data-hits="" data-linenumber="62">
+ <li class="covered" data-hits="3" data-linenumber="62">
+ <span class="hits">3</span>
+ <code class="ruby"> @current_position += $1.length</code>
+ </li>
+
+ <li class="covered" data-hits="3" data-linenumber="63">
+ <span class="hits">3</span>
+ <code class="ruby"> group = parse_single_char_group( parse_escape_sequence($1) )</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="64">
+
+
+ <code class="ruby"> when rest_of_string =~ /\Au(\h{4})/ # Unicode sequence</code>
+ </li>
+
+ <li class="covered" data-hits="2" data-linenumber="65">
+ <span class="hits">2</span>
+
+ <code class="ruby"> @current_position += 4</code>
+ </li>
+
+ <li class="covered" data-hits="2" data-linenumber="66">
+ <span class="hits">2</span>
+
+ <code class="ruby"> group = parse_single_char_group( parse_unicode_sequence($1) )</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="67">
+
+
<code class="ruby"> else</code>
</li>
- <li class="covered" data-hits="2" data-linenumber="63">
+ <li class="covered" data-hits="2" data-linenumber="68">
<span class="hits">2</span>
<code class="ruby"> group = parse_single_char_group( regexp_string[@current_position] )</code>
</li>
- <li class="never" data-hits="" data-linenumber="64">
+ <li class="never" data-hits="" data-linenumber="69">
<code class="ruby"> # TODO: What about cases like \A, \z, \Z ?</code>
</li>
- <li class="covered" data-hits="42" data-linenumber="65">
- <span class="hits">42</span>
+ <li class="covered" data-hits="49" data-linenumber="70">
+ <span class="hits">49</span>
<code class="ruby"> end</code>
</li>
- <li class="covered" data-hits="42" data-linenumber="66">
- <span class="hits">42</span>
+ <li class="covered" data-hits="49" data-linenumber="71">
+ <span class="hits">49</span>
<code class="ruby"> group</code>
</li>
- <li class="never" data-hits="" data-linenumber="67">
+ <li class="never" data-hits="" data-linenumber="72">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="68">
+ <li class="never" data-hits="" data-linenumber="73">
<code class="ruby"></code>
</li>
- <li class="covered" data-hits="1" data-linenumber="69">
+ <li class="covered" data-hits="1" data-linenumber="74">
<span class="hits">1</span>
<code class="ruby"> def parse_repeater(group)</code>
</li>
- <li class="covered" data-hits="278" data-linenumber="70">
- <span class="hits">278</span>
+ <li class="covered" data-hits="290" data-linenumber="75">
+ <span class="hits">290</span>
<code class="ruby"> char = regexp_string[@current_position]</code>
</li>
- <li class="covered" data-hits="278" data-linenumber="71">
- <span class="hits">278</span>
+ <li class="covered" data-hits="290" data-linenumber="76">
+ <span class="hits">290</span>
<code class="ruby"> case char</code>
</li>
- <li class="never" data-hits="" data-linenumber="72">
+ <li class="never" data-hits="" data-linenumber="77">
<code class="ruby"> when '*'</code>
</li>
- <li class="covered" data-hits="5" data-linenumber="73">
+ <li class="covered" data-hits="5" data-linenumber="78">
<span class="hits">5</span>
<code class="ruby"> repeater = parse_star_repeater(group)</code>
</li>
- <li class="never" data-hits="" data-linenumber="74">
+ <li class="never" data-hits="" data-linenumber="79">
<code class="ruby"> when '+'</code>
</li>
- <li class="covered" data-hits="4" data-linenumber="75">
+ <li class="covered" data-hits="4" data-linenumber="80">
<span class="hits">4</span>
<code class="ruby"> repeater = parse_plus_repeater(group)</code>
</li>
- <li class="never" data-hits="" data-linenumber="76">
+ <li class="never" data-hits="" data-linenumber="81">
<code class="ruby"> when '?'</code>
</li>
- <li class="covered" data-hits="11" data-linenumber="77">
+ <li class="covered" data-hits="11" data-linenumber="82">
<span class="hits">11</span>
<code class="ruby"> repeater = parse_question_mark_repeater(group)</code>
</li>
- <li class="never" data-hits="" data-linenumber="78">
+ <li class="never" data-hits="" data-linenumber="83">
<code class="ruby"> when '{'</code>
</li>
- <li class="covered" data-hits="5" data-linenumber="79">
+ <li class="covered" data-hits="5" data-linenumber="84">
<span class="hits">5</span>
<code class="ruby"> repeater = parse_range_repeater(group)</code>
</li>
- <li class="never" data-hits="" data-linenumber="80">
+ <li class="never" data-hits="" data-linenumber="85">
<code class="ruby"> else</code>
</li>
- <li class="covered" data-hits="253" data-linenumber="81">
- <span class="hits">253</span>
+ <li class="covered" data-hits="265" data-linenumber="86">
+ <span class="hits">265</span>
<code class="ruby"> repeater = parse_one_time_repeater(group)</code>
</li>
- <li class="never" data-hits="" data-linenumber="82">
+ <li class="never" data-hits="" data-linenumber="87">
<code class="ruby"> end</code>
</li>
- <li class="covered" data-hits="278" data-linenumber="83">
- <span class="hits">278</span>
+ <li class="covered" data-hits="290" data-linenumber="88">
+ <span class="hits">290</span>
<code class="ruby"> repeater</code>
</li>
- <li class="never" data-hits="" data-linenumber="84">
+ <li class="never" data-hits="" data-linenumber="89">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="85">
+ <li class="never" data-hits="" data-linenumber="90">
<code class="ruby"></code>
</li>
- <li class="covered" data-hits="1" data-linenumber="86">
+ <li class="covered" data-hits="1" data-linenumber="91">
<span class="hits">1</span>
<code class="ruby"> def parse_multi_group</code>
</li>
- <li class="covered" data-hits="45" data-linenumber="87">
+ <li class="covered" data-hits="45" data-linenumber="92">
<span class="hits">45</span>
<code class="ruby"> @current_position += 1</code>
</li>
- <li class="covered" data-hits="45" data-linenumber="88">
+ <li class="covered" data-hits="45" data-linenumber="93">
<span class="hits">45</span>
<code class="ruby"> @num_groups += 1</code>
</li>
- <li class="covered" data-hits="45" data-linenumber="89">
+ <li class="covered" data-hits="45" data-linenumber="94">
<span class="hits">45</span>
<code class="ruby"> group_id = nil # init</code>
</li>
- <li class="covered" data-hits="45" data-linenumber="90">
+ <li class="covered" data-hits="45" data-linenumber="95">
<span class="hits">45</span>
<code class="ruby"> rest_of_string.match(/\A(\?)?(:|!|=|<(!|=|[^!=][^>]*))?/) do |match|</code>
</li>
- <li class="never" data-hits="" data-linenumber="91">
+ <li class="never" data-hits="" data-linenumber="96">
<code class="ruby"> case</code>
</li>
- <li class="never" data-hits="" data-linenumber="92">
+ <li class="never" data-hits="" data-linenumber="97">
<code class="ruby"> when match[1].nil? # e.g. /(normal)/</code>
</li>
- <li class="covered" data-hits="38" data-linenumber="93">
+ <li class="covered" data-hits="38" data-linenumber="98">
<span class="hits">38</span>
<code class="ruby"> group_id = @num_groups.to_s</code>
</li>
- <li class="never" data-hits="" data-linenumber="94">
+ <li class="never" data-hits="" data-linenumber="99">
<code class="ruby"> when match[2] == ':' # e.g. /(?:nocapture)/</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="95">
+ <li class="covered" data-hits="1" data-linenumber="100">
<span class="hits">1</span>
<code class="ruby"> @current_position += 2</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="96">
+ <li class="covered" data-hits="1" data-linenumber="101">
<span class="hits">1</span>
<code class="ruby"> group_id = nil</code>
</li>
- <li class="never" data-hits="" data-linenumber="97">
+ <li class="never" data-hits="" data-linenumber="102">
<code class="ruby"> when %w(! =).include?(match[2]) # e.g. /(?=lookahead)/, /(?!neglookahead)/</code>
</li>
- <li class="covered" data-hits="2" data-linenumber="98">
+ <li class="covered" data-hits="2" data-linenumber="103">
<span class="hits">2</span>
<code class="ruby"> raise IllegalSyntaxError, "Lookaheads are not regular; cannot generate examples"</code>
</li>
- <li class="never" data-hits="" data-linenumber="99">
+ <li class="never" data-hits="" data-linenumber="104">
<code class="ruby"> when %w(! =).include?(match[3]) # e.g. /(?<=lookbehind)/, /(?<!neglookbehind)/</code>
</li>
- <li class="covered" data-hits="2" data-linenumber="100">
+ <li class="covered" data-hits="2" data-linenumber="105">
<span class="hits">2</span>
<code class="ruby"> raise IllegalSyntaxError, "Lookbehinds are not regular; cannot generate examples"</code>
</li>
- <li class="never" data-hits="" data-linenumber="101">
+ <li class="never" data-hits="" data-linenumber="106">
<code class="ruby"> else # e.g. /(?<name>namedgroup)/</code>
</li>
- <li class="covered" data-hits="2" data-linenumber="102">
+ <li class="covered" data-hits="2" data-linenumber="107">
<span class="hits">2</span>
<code class="ruby"> @current_position += (match[3].length + 3)</code>
</li>
- <li class="covered" data-hits="2" data-linenumber="103">
+ <li class="covered" data-hits="2" data-linenumber="108">
<span class="hits">2</span>
<code class="ruby"> group_id = match[3]</code>
</li>
- <li class="covered" data-hits="45" data-linenumber="104">
+ <li class="covered" data-hits="45" data-linenumber="109">
<span class="hits">45</span>
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="105">
+ <li class="never" data-hits="" data-linenumber="110">
<code class="ruby"> end</code>
</li>
- <li class="covered" data-hits="41" data-linenumber="106">
+ <li class="covered" data-hits="41" data-linenumber="111">
<span class="hits">41</span>
<code class="ruby"> groups = parse</code>
</li>
- <li class="covered" data-hits="41" data-linenumber="107">
+ <li class="covered" data-hits="41" data-linenumber="112">
<span class="hits">41</span>
<code class="ruby"> MultiGroup.new(groups, group_id)</code>
</li>
- <li class="never" data-hits="" data-linenumber="108">
+ <li class="never" data-hits="" data-linenumber="113">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="109">
+ <li class="never" data-hits="" data-linenumber="114">
<code class="ruby"></code>
</li>
- <li class="covered" data-hits="1" data-linenumber="110">
+ <li class="covered" data-hits="1" data-linenumber="115">
<span class="hits">1</span>
<code class="ruby"> def parse_multi_end_group</code>
</li>
- <li class="covered" data-hits="41" data-linenumber="111">
+ <li class="covered" data-hits="41" data-linenumber="116">
<span class="hits">41</span>
<code class="ruby"> MultiGroupEnd.new</code>
</li>
- <li class="never" data-hits="" data-linenumber="112">
+ <li class="never" data-hits="" data-linenumber="117">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="113">
+ <li class="never" data-hits="" data-linenumber="118">
<code class="ruby"></code>
</li>
- <li class="covered" data-hits="1" data-linenumber="114">
+ <li class="covered" data-hits="1" data-linenumber="119">
<span class="hits">1</span>
<code class="ruby"> def parse_char_group</code>
</li>
- <li class="covered" data-hits="14" data-linenumber="115">
+ <li class="covered" data-hits="14" data-linenumber="120">
<span class="hits">14</span>
<code class="ruby"> chars = []</code>
</li>
- <li class="covered" data-hits="14" data-linenumber="116">
+ <li class="covered" data-hits="14" data-linenumber="121">
<span class="hits">14</span>
<code class="ruby"> @current_position += 1</code>
</li>
- <li class="covered" data-hits="14" data-linenumber="117">
+ <li class="covered" data-hits="14" data-linenumber="122">
<span class="hits">14</span>
<code class="ruby"> if regexp_string[@current_position] == ']'</code>
</li>
- <li class="never" data-hits="" data-linenumber="118">
+ <li class="never" data-hits="" data-linenumber="123">
<code class="ruby"> # Beware of the sneaky edge case:</code>
</li>
- <li class="never" data-hits="" data-linenumber="119">
+ <li class="never" data-hits="" data-linenumber="124">
<code class="ruby"> # /[]]/ (match "]")</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="120">
+ <li class="covered" data-hits="1" data-linenumber="125">
<span class="hits">1</span>
<code class="ruby"> chars << ']'</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="121">
+ <li class="covered" data-hits="1" data-linenumber="126">
<span class="hits">1</span>
<code class="ruby"> @current_position += 1</code>
</li>
- <li class="never" data-hits="" data-linenumber="122">
+ <li class="never" data-hits="" data-linenumber="127">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="123">
+ <li class="never" data-hits="" data-linenumber="128">
<code class="ruby"> until regexp_string[@current_position] == ']' \</code>
</li>
- <li class="covered" data-hits="14" data-linenumber="124">
+ <li class="covered" data-hits="14" data-linenumber="129">
<span class="hits">14</span>
<code class="ruby"> && !regexp_string[0..@current_position-1].match(/[^\\](\\{2})*\\\z/)</code>
</li>
- <li class="never" data-hits="" data-linenumber="125">
+ <li class="never" data-hits="" data-linenumber="130">
<code class="ruby"> # Beware of having an ODD number of "\" before the "]", e.g.</code>
</li>
- <li class="never" data-hits="" data-linenumber="126">
+ <li class="never" data-hits="" data-linenumber="131">
<code class="ruby"> # /[\]]/ (match "]")</code>
</li>
- <li class="never" data-hits="" data-linenumber="127">
+ <li class="never" data-hits="" data-linenumber="132">
<code class="ruby"> # /[\\]/ (match "\")</code>
</li>
- <li class="never" data-hits="" data-linenumber="128">
+ <li class="never" data-hits="" data-linenumber="133">
<code class="ruby"> # /[\\\]]/ (match "\" or "]")</code>
</li>
- <li class="covered" data-hits="41" data-linenumber="129">
+ <li class="covered" data-hits="41" data-linenumber="134">
<span class="hits">41</span>
<code class="ruby"> chars << regexp_string[@current_position]</code>
</li>
- <li class="covered" data-hits="41" data-linenumber="130">
+ <li class="covered" data-hits="41" data-linenumber="135">
<span class="hits">41</span>
<code class="ruby"> @current_position += 1</code>
</li>
- <li class="never" data-hits="" data-linenumber="131">
+ <li class="never" data-hits="" data-linenumber="136">
<code class="ruby"> end</code>
</li>
- <li class="covered" data-hits="14" data-linenumber="132">
+ <li class="covered" data-hits="14" data-linenumber="137">
<span class="hits">14</span>
<code class="ruby"> CharGroup.new(chars)</code>
</li>
- <li class="never" data-hits="" data-linenumber="133">
+ <li class="never" data-hits="" data-linenumber="138">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="134">
+ <li class="never" data-hits="" data-linenumber="139">
<code class="ruby"></code>
</li>
- <li class="covered" data-hits="1" data-linenumber="135">
+ <li class="covered" data-hits="1" data-linenumber="140">
<span class="hits">1</span>
<code class="ruby"> def parse_dot_group</code>
</li>
- <li class="covered" data-hits="1" data-linenumber="136">
+ <li class="covered" data-hits="1" data-linenumber="141">
<span class="hits">1</span>
<code class="ruby"> DotGroup.new</code>
</li>
- <li class="never" data-hits="" data-linenumber="137">
+ <li class="never" data-hits="" data-linenumber="142">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="138">
+ <li class="never" data-hits="" data-linenumber="143">
<code class="ruby"></code>
</li>
- <li class="covered" data-hits="1" data-linenumber="139">
+ <li class="covered" data-hits="1" data-linenumber="144">
<span class="hits">1</span>
<code class="ruby"> def parse_or_group(left_repeaters)</code>
</li>
- <li class="covered" data-hits="6" data-linenumber="140">
+ <li class="covered" data-hits="6" data-linenumber="145">
<span class="hits">6</span>
<code class="ruby"> @current_position += 1</code>
</li>
- <li class="covered" data-hits="6" data-linenumber="141">
+ <li class="covered" data-hits="6" data-linenumber="146">
<span class="hits">6</span>
<code class="ruby"> right_repeaters = parse</code>
</li>
- <li class="covered" data-hits="6" data-linenumber="142">
+ <li class="covered" data-hits="6" data-linenumber="147">
<span class="hits">6</span>
<code class="ruby"> OrGroup.new(left_repeaters, right_repeaters)</code>
</li>
- <li class="never" data-hits="" data-linenumber="143">
+ <li class="never" data-hits="" data-linenumber="148">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="144">
+ <li class="never" data-hits="" data-linenumber="149">
<code class="ruby"></code>
</li>
- <li class="never" data-hits="" data-linenumber="145">
+ <li class="never" data-hits="" data-linenumber="150">
<code class="ruby"></code>
</li>
- <li class="covered" data-hits="1" data-linenumber="146">
+ <li class="covered" data-hits="1" data-linenumber="151">
<span class="hits">1</span>
<code class="ruby"> def parse_single_char_group(char)</code>
</li>
- <li class="covered" data-hits="182" data-linenumber="147">
- <span class="hits">182</span>
+ <li class="covered" data-hits="194" data-linenumber="152">
+ <span class="hits">194</span>
<code class="ruby"> SingleCharGroup.new(char)</code>
</li>
- <li class="never" data-hits="" data-linenumber="148">
+ <li class="never" data-hits="" data-linenumber="153">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="149">
+ <li class="never" data-hits="" data-linenumber="154">
<code class="ruby"></code>
</li>
- <li class="covered" data-hits="1" data-linenumber="150">
+ <li class="covered" data-hits="1" data-linenumber="155">
<span class="hits">1</span>
<code class="ruby"> def parse_backreference_group(match)</code>
</li>
- <li class="covered" data-hits="20" data-linenumber="151">
+ <li class="covered" data-hits="20" data-linenumber="156">
<span class="hits">20</span>
<code class="ruby"> BackReferenceGroup.new(match)</code>
</li>
- <li class="never" data-hits="" data-linenumber="152">
+ <li class="never" data-hits="" data-linenumber="157">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="153">
+ <li class="never" data-hits="" data-linenumber="158">
<code class="ruby"></code>
</li>
- <li class="covered" data-hits="1" data-linenumber="154">
+ <li class="covered" data-hits="1" data-linenumber="159">
<span class="hits">1</span>
<code class="ruby"> def parse_control_character(char)</code>
</li>
- <li class="never" data-hits="" data-linenumber="155">
+ <li class="covered" data-hits="8" data-linenumber="160">
+ <span class="hits">8</span>
+ <code class="ruby"> (char.ord % 32).chr # Black magic!</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="161">
- <code class="ruby"> # TODO: Is there a better way of doing this? I.e. not just brute-force</code>
+
+ <code class="ruby"> # eval "?\\C-#{char.chr}" # Doesn't work for e.g. char = "?"</code>
</li>
- <li class="covered" data-hits="125" data-linenumber="156">
- <span class="hits">125</span>
+ <li class="never" data-hits="" data-linenumber="162">
- <code class="ruby"> (0..255).detect { |x| x.chr =~ Regexp.new("\\c#{char}") }.chr</code>
+
+ <code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="157">
+ <li class="never" data-hits="" data-linenumber="163">
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="164">
+ <span class="hits">1</span>
+
+ <code class="ruby"> def parse_escape_sequence(match)</code>
+ </li>
+
+ <li class="covered" data-hits="3" data-linenumber="165">
+ <span class="hits">3</span>
+
+ <code class="ruby"> eval "?\\x#{match}"</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="166">
+
+
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="158">
+ <li class="never" data-hits="" data-linenumber="167">
<code class="ruby"></code>
</li>
- <li class="covered" data-hits="1" data-linenumber="159">
+ <li class="covered" data-hits="1" data-linenumber="168">
<span class="hits">1</span>
+ <code class="ruby"> def parse_unicode_sequence(match)</code>
+ </li>
+
+ <li class="covered" data-hits="2" data-linenumber="169">
+ <span class="hits">2</span>
+
+ <code class="ruby"> eval "?\\u#{match}"</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="170">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="171">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="172">
+ <span class="hits">1</span>
+
<code class="ruby"> def parse_star_repeater(group)</code>
</li>
- <li class="covered" data-hits="5" data-linenumber="160">
+ <li class="covered" data-hits="5" data-linenumber="173">
<span class="hits">5</span>
<code class="ruby"> @current_position += 1</code>
</li>
- <li class="covered" data-hits="5" data-linenumber="161">
+ <li class="covered" data-hits="5" data-linenumber="174">
<span class="hits">5</span>
<code class="ruby"> StarRepeater.new(group)</code>
</li>
- <li class="never" data-hits="" data-linenumber="162">
+ <li class="never" data-hits="" data-linenumber="175">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="163">
+ <li class="never" data-hits="" data-linenumber="176">
<code class="ruby"></code>
</li>
- <li class="covered" data-hits="1" data-linenumber="164">
+ <li class="covered" data-hits="1" data-linenumber="177">
<span class="hits">1</span>
<code class="ruby"> def parse_plus_repeater(group)</code>
</li>
- <li class="covered" data-hits="4" data-linenumber="165">
+ <li class="covered" data-hits="4" data-linenumber="178">
<span class="hits">4</span>
<code class="ruby"> @current_position += 1</code>
</li>
- <li class="covered" data-hits="4" data-linenumber="166">
+ <li class="covered" data-hits="4" data-linenumber="179">
<span class="hits">4</span>
<code class="ruby"> PlusRepeater.new(group)</code>
</li>
- <li class="never" data-hits="" data-linenumber="167">
+ <li class="never" data-hits="" data-linenumber="180">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="168">
+ <li class="never" data-hits="" data-linenumber="181">
<code class="ruby"></code>
</li>
- <li class="covered" data-hits="1" data-linenumber="169">
+ <li class="covered" data-hits="1" data-linenumber="182">
<span class="hits">1</span>
<code class="ruby"> def parse_question_mark_repeater(group)</code>
</li>
- <li class="covered" data-hits="11" data-linenumber="170">
+ <li class="covered" data-hits="11" data-linenumber="183">
<span class="hits">11</span>
<code class="ruby"> @current_position += 1</code>
</li>
- <li class="covered" data-hits="11" data-linenumber="171">
+ <li class="covered" data-hits="11" data-linenumber="184">
<span class="hits">11</span>
<code class="ruby"> QuestionMarkRepeater.new(group)</code>
</li>
- <li class="never" data-hits="" data-linenumber="172">
+ <li class="never" data-hits="" data-linenumber="185">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="173">
+ <li class="never" data-hits="" data-linenumber="186">
<code class="ruby"></code>
</li>
- <li class="covered" data-hits="1" data-linenumber="174">
+ <li class="covered" data-hits="1" data-linenumber="187">
<span class="hits">1</span>
<code class="ruby"> def parse_range_repeater(group)</code>
</li>
- <li class="covered" data-hits="5" data-linenumber="175">
+ <li class="covered" data-hits="5" data-linenumber="188">
<span class="hits">5</span>
<code class="ruby"> match = rest_of_string.match(/\A\{(\d+)?(,)?(\d+)?\}/)</code>
</li>
- <li class="covered" data-hits="5" data-linenumber="176">
+ <li class="covered" data-hits="5" data-linenumber="189">
<span class="hits">5</span>
<code class="ruby"> @current_position += match[0].size</code>
</li>
- <li class="covered" data-hits="5" data-linenumber="177">
+ <li class="covered" data-hits="5" data-linenumber="190">
<span class="hits">5</span>
<code class="ruby"> min = match[1].to_i if match[1]</code>
</li>
- <li class="covered" data-hits="5" data-linenumber="178">
+ <li class="covered" data-hits="5" data-linenumber="191">
<span class="hits">5</span>
<code class="ruby"> has_comma = !match[2].nil?</code>
</li>
- <li class="covered" data-hits="5" data-linenumber="179">
+ <li class="covered" data-hits="5" data-linenumber="192">
<span class="hits">5</span>
<code class="ruby"> max = match[3].to_i if match[3]</code>
</li>
- <li class="covered" data-hits="5" data-linenumber="180">
+ <li class="covered" data-hits="5" data-linenumber="193">
<span class="hits">5</span>
<code class="ruby"> RangeRepeater.new(group, min, has_comma, max)</code>
</li>
- <li class="never" data-hits="" data-linenumber="181">
+ <li class="never" data-hits="" data-linenumber="194">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="182">
+ <li class="never" data-hits="" data-linenumber="195">
<code class="ruby"></code>
</li>
- <li class="covered" data-hits="1" data-linenumber="183">
+ <li class="covered" data-hits="1" data-linenumber="196">
<span class="hits">1</span>
<code class="ruby"> def parse_one_time_repeater(group)</code>
</li>
- <li class="covered" data-hits="253" data-linenumber="184">
- <span class="hits">253</span>
+ <li class="covered" data-hits="265" data-linenumber="197">
+ <span class="hits">265</span>
<code class="ruby"> OneTimeRepeater.new(group)</code>
</li>
- <li class="never" data-hits="" data-linenumber="185">
+ <li class="never" data-hits="" data-linenumber="198">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="186">
+ <li class="never" data-hits="" data-linenumber="199">
<code class="ruby"></code>
</li>
- <li class="covered" data-hits="1" data-linenumber="187">
+ <li class="covered" data-hits="1" data-linenumber="200">
<span class="hits">1</span>
<code class="ruby"> def rest_of_string</code>
</li>
- <li class="covered" data-hits="123" data-linenumber="188">
- <span class="hits">123</span>
+ <li class="covered" data-hits="155" data-linenumber="201">
+ <span class="hits">155</span>
<code class="ruby"> regexp_string[@current_position..-1]</code>
</li>
- <li class="never" data-hits="" data-linenumber="189">
+ <li class="never" data-hits="" data-linenumber="202">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="190">
+ <li class="never" data-hits="" data-linenumber="203">
<code class="ruby"> end</code>
</li>
- <li class="never" data-hits="" data-linenumber="191">
+ <li class="never" data-hits="" data-linenumber="204">
<code class="ruby">end</code>
</li>
- <li class="never" data-hits="" data-linenumber="192">
+ <li class="never" data-hits="" data-linenumber="205">
<code class="ruby"></code>
</li>
</ol>
</pre>
</div>
- <div class="source_table" id="0dc204f32cb2876d2238a2aae7dea86ad7f9e679">
+ <div class="source_table" id="7f62a530f44ef896b613d357fee92d31ffb7ede8">
<div class="header">
<h3>lib/regexp-examples/regexp_extensions.rb</h3>
<h4><span class="green">100.0 %</span> covered</h4>
<div>
<b>8</b> relevant lines.
@@ -2920,12 +2998,12 @@
<span class="hits">1</span>
<code class="ruby"> def examples</code>
</li>
- <li class="covered" data-hits="65" data-linenumber="4">
- <span class="hits">65</span>
+ <li class="covered" data-hits="73" data-linenumber="4">
+ <span class="hits">73</span>
<code class="ruby"> partial_examples =</code>
</li>
<li class="never" data-hits="" data-linenumber="5">
@@ -2938,24 +3016,24 @@
<code class="ruby"> .parse</code>
</li>
- <li class="covered" data-hits="121" data-linenumber="7">
- <span class="hits">121</span>
+ <li class="covered" data-hits="133" data-linenumber="7">
+ <span class="hits">133</span>
<code class="ruby"> .map {|repeater| repeater.result}</code>
</li>
- <li class="covered" data-hits="61" data-linenumber="8">
- <span class="hits">61</span>
+ <li class="covered" data-hits="69" data-linenumber="8">
+ <span class="hits">69</span>
<code class="ruby"> full_examples = RegexpExamples::permutations_of_strings(partial_examples)</code>
</li>
- <li class="covered" data-hits="61" data-linenumber="9">
- <span class="hits">61</span>
+ <li class="covered" data-hits="69" data-linenumber="9">
+ <span class="hits">69</span>
<code class="ruby"> RegexpExamples::BackReferenceReplacer.new.substitute_backreferences(full_examples)</code>
</li>
<li class="never" data-hits="" data-linenumber="10">
@@ -2990,11 +3068,11 @@
</ol>
</pre>
</div>
- <div class="source_table" id="430477f0c86b2d77a18fe51e32b818d48ab7e74b">
+ <div class="source_table" id="0688fc9c3b085e9a6444775c61767c9c5742fb69">
<div class="header">
<h3>lib/regexp-examples/repeaters.rb</h3>
<h4><span class="green">100.0 %</span> covered</h4>
<div>
<b>43</b> relevant lines.
@@ -3028,12 +3106,12 @@
<span class="hits">1</span>
<code class="ruby"> def initialize(group)</code>
</li>
- <li class="covered" data-hits="278" data-linenumber="5">
- <span class="hits">278</span>
+ <li class="covered" data-hits="290" data-linenumber="5">
+ <span class="hits">290</span>
<code class="ruby"> @group = group</code>
</li>
<li class="never" data-hits="" data-linenumber="6">
@@ -3052,36 +3130,36 @@
<span class="hits">1</span>
<code class="ruby"> def result(min_repeats, max_repeats)</code>
</li>
- <li class="covered" data-hits="278" data-linenumber="9">
- <span class="hits">278</span>
+ <li class="covered" data-hits="290" data-linenumber="9">
+ <span class="hits">290</span>
<code class="ruby"> group_results = @group.result[0 .. MaxGroupResults-1]</code>
</li>
- <li class="covered" data-hits="278" data-linenumber="10">
- <span class="hits">278</span>
+ <li class="covered" data-hits="290" data-linenumber="10">
+ <span class="hits">290</span>
<code class="ruby"> results = []</code>
</li>
- <li class="covered" data-hits="278" data-linenumber="11">
- <span class="hits">278</span>
+ <li class="covered" data-hits="290" data-linenumber="11">
+ <span class="hits">290</span>
<code class="ruby"> min_repeats.upto(max_repeats) do |repeats|</code>
</li>
- <li class="covered" data-hits="308" data-linenumber="12">
- <span class="hits">308</span>
+ <li class="covered" data-hits="320" data-linenumber="12">
+ <span class="hits">320</span>
<code class="ruby"> group_results.each do |group_result|</code>
</li>
- <li class="covered" data-hits="422" data-linenumber="13">
- <span class="hits">422</span>
+ <li class="covered" data-hits="434" data-linenumber="13">
+ <span class="hits">434</span>
<code class="ruby"> results << group_result * repeats</code>
</li>
<li class="never" data-hits="" data-linenumber="14">
@@ -3094,12 +3172,12 @@
<code class="ruby"> end</code>
</li>
- <li class="covered" data-hits="278" data-linenumber="16">
- <span class="hits">278</span>
+ <li class="covered" data-hits="290" data-linenumber="16">
+ <span class="hits">290</span>
<code class="ruby"> results.uniq</code>
</li>
<li class="never" data-hits="" data-linenumber="17">
@@ -3130,12 +3208,12 @@
<span class="hits">1</span>
<code class="ruby"> def initialize(group)</code>
</li>
- <li class="covered" data-hits="253" data-linenumber="22">
- <span class="hits">253</span>
+ <li class="covered" data-hits="265" data-linenumber="22">
+ <span class="hits">265</span>
<code class="ruby"> super</code>
</li>
<li class="never" data-hits="" data-linenumber="23">
@@ -3154,12 +3232,12 @@
<span class="hits">1</span>
<code class="ruby"> def result</code>
</li>
- <li class="covered" data-hits="253" data-linenumber="26">
- <span class="hits">253</span>
+ <li class="covered" data-hits="265" data-linenumber="26">
+ <span class="hits">265</span>
<code class="ruby"> super(1, 1)</code>
</li>
<li class="never" data-hits="" data-linenumber="27">
@@ -3476,17 +3554,17 @@
</ol>
</pre>
</div>
- <div class="source_table" id="73ece59f571550448cda013ec330081f40e82321">
+ <div class="source_table" id="953f94f8f5f8bad7e1fa800f942a74b781f8fa1c">
<div class="header">
<h3>spec/regexp-examples_spec.rb</h3>
<h4><span class="green">100.0 %</span> covered</h4>
<div>
- <b>30</b> relevant lines.
- <span class="green"><b>30</b> lines covered</span> and
+ <b>34</b> relevant lines.
+ <span class="green"><b>34</b> lines covered</span> and
<span class="red"><b>0</b> lines missed.</span>
</div>
</div>
<pre>
@@ -3502,36 +3580,36 @@
<span class="hits">1</span>
<code class="ruby"> def self.examples_exist_and_match(*regexps)</code>
</li>
- <li class="covered" data-hits="8" data-linenumber="3">
- <span class="hits">8</span>
+ <li class="covered" data-hits="10" data-linenumber="3">
+ <span class="hits">10</span>
<code class="ruby"> regexps.each do |regexp|</code>
</li>
- <li class="covered" data-hits="61" data-linenumber="4">
- <span class="hits">61</span>
+ <li class="covered" data-hits="69" data-linenumber="4">
+ <span class="hits">69</span>
<code class="ruby"> it do</code>
</li>
- <li class="covered" data-hits="61" data-linenumber="5">
- <span class="hits">61</span>
+ <li class="covered" data-hits="69" data-linenumber="5">
+ <span class="hits">69</span>
<code class="ruby"> regexp_examples = regexp.examples</code>
</li>
- <li class="covered" data-hits="61" data-linenumber="6">
- <span class="hits">61</span>
+ <li class="covered" data-hits="69" data-linenumber="6">
+ <span class="hits">69</span>
<code class="ruby"> expect(regexp_examples).not_to be_empty</code>
</li>
- <li class="covered" data-hits="218" data-linenumber="7">
- <span class="hits">218</span>
+ <li class="covered" data-hits="234" data-linenumber="7">
+ <span class="hits">234</span>
<code class="ruby"> regexp_examples.each { |example| expect(example).to match(/\A(?:#{regexp.source})\z/) }</code>
</li>
<li class="never" data-hits="" data-linenumber="8">
@@ -4279,31 +4357,145 @@
</li>
<li class="never" data-hits="" data-linenumber="132">
- <code class="ruby"> /\c?/</code>
+ <code class="ruby"> /\c?/,</code>
</li>
<li class="never" data-hits="" data-linenumber="133">
- <code class="ruby"> )</code>
+ <code class="ruby"> /\C-a/,</code>
</li>
<li class="never" data-hits="" data-linenumber="134">
- <code class="ruby"> end</code>
+ <code class="ruby"> /\C-&/</code>
</li>
<li class="never" data-hits="" data-linenumber="135">
- <code class="ruby"> end</code>
+ <code class="ruby"> )</code>
</li>
<li class="never" data-hits="" data-linenumber="136">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="137">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="138">
+ <span class="hits">1</span>
+
+ <code class="ruby"> context "for escape sequences" do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="139">
+ <span class="hits">1</span>
+
+ <code class="ruby"> examples_exist_and_match(</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="140">
+
+
+ <code class="ruby"> /\x42/,</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="141">
+
+
+ <code class="ruby"> /\x1D/,</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="142">
+
+
+ <code class="ruby"> /\x3word/,</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="143">
+
+
+ <code class="ruby"> /#{"\x80".force_encoding("ASCII-8BIT")}/</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="144">
+
+
+ <code class="ruby"> )</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="145">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="146">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="147">
+ <span class="hits">1</span>
+
+ <code class="ruby"> context "for unicode sequences" do</code>
+ </li>
+
+ <li class="covered" data-hits="1" data-linenumber="148">
+ <span class="hits">1</span>
+
+ <code class="ruby"> examples_exist_and_match(</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="149">
+
+
+ <code class="ruby"> /\u6829/,</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="150">
+
+
+ <code class="ruby"> /\uabcd/</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="151">
+
+
+ <code class="ruby"> )</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="152">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="153">
+
+
+ <code class="ruby"></code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="154">
+
+
+ <code class="ruby"> end</code>
+ </li>
+
+ <li class="never" data-hits="" data-linenumber="155">
<code class="ruby">end</code>
</li>