hash_dealer 1.5.1 → 1.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.5.1
1
+ 1.5.2
@@ -14,7 +14,7 @@
14
14
  <link href='./assets/0.5.3/highlight.css' media='screen, projection, print' rel='stylesheet' type='text/css'>
15
15
  <link href='./assets/0.5.3/fancybox/jquery.fancybox-1.3.1.css' media='screen, projection, print' rel='stylesheet' type='text/css'>
16
16
  <link href='./assets/0.5.3/smoothness/jquery-ui-1.8.4.custom.css' media='screen, projection, print' rel='stylesheet' type='text/css'>
17
- <link rel="shortcut icon" type="image/png" href="./assets/0.5.3/favicon_red.png" />
17
+ <link rel="shortcut icon" type="image/png" href="./assets/0.5.3/favicon_yellow.png" />
18
18
  <link rel="icon" type="image/png" href="./assets/0.5.3/favicon.png" />
19
19
  </head>
20
20
 
@@ -23,27 +23,27 @@
23
23
  <img src="./assets/0.5.3/loading.gif" alt="loading"/>
24
24
  </div>
25
25
  <div id="wrapper" style="display:none;">
26
- <div class="timestamp">Generated <abbr class="timeago" title="2012-12-27T13:11:12-05:00">2012-12-27T13:11:12-05:00</abbr></div>
26
+ <div class="timestamp">Generated <abbr class="timeago" title="2012-12-27T15:13:20-05:00">2012-12-27T15:13:20-05:00</abbr></div>
27
27
  <ul class="group_tabs"></ul>
28
28
 
29
29
  <div id="content">
30
30
  <div class="file_list_container" id="AllFiles">
31
31
  <h2>
32
32
  <span class="group_name">All Files</span>
33
- (<span class="covered_percent"><span class="red">29.69%</span></span>
33
+ (<span class="covered_percent"><span class="yellow">82.3%</span></span>
34
34
  covered at
35
35
  <span class="covered_strength">
36
36
  <span class="green">
37
- 3.4
37
+ 16.33
38
38
  </span>
39
39
  </span> hits/line)
40
40
  </h2>
41
41
  <a name="AllFiles"></a>
42
42
  <div>
43
43
  <b>7</b> files in total.
44
- <b>320</b> relevant lines.
45
- <span class="green"><b>95</b> lines covered</span> and
46
- <span class="red"><b>225</b> lines missed </span>
44
+ <b>339</b> relevant lines.
45
+ <span class="green"><b>279</b> lines covered</span> and
46
+ <span class="red"><b>60</b> lines missed </span>
47
47
  </div>
48
48
  <table class="file_list">
49
49
  <thead>
@@ -61,72 +61,72 @@
61
61
 
62
62
  <tr>
63
63
  <td class="strong"><a href="#23ece676ee554bd0a62670e8964fe96af2adc01a" class="src_link" title="lib/comparator.rb">lib/comparator.rb</a></td>
64
- <td class="red strong">17.78 %</td>
65
- <td>74</td>
66
- <td>45</td>
67
- <td>8</td>
68
- <td>37</td>
69
- <td>0.2</td>
64
+ <td class="green strong">96.08 %</td>
65
+ <td>87</td>
66
+ <td>51</td>
67
+ <td>49</td>
68
+ <td>2</td>
69
+ <td>16.4</td>
70
70
  </tr>
71
71
 
72
72
  <tr>
73
73
  <td class="strong"><a href="#62f8063523b24e1e0397e524e8e048ddb0ac289c" class="src_link" title="lib/core_extensions.rb">lib/core_extensions.rb</a></td>
74
- <td class="red strong">45.88 %</td>
74
+ <td class="yellow strong">88.24 %</td>
75
75
  <td>183</td>
76
76
  <td>85</td>
77
- <td>39</td>
78
- <td>46</td>
79
- <td>22.1</td>
77
+ <td>75</td>
78
+ <td>10</td>
79
+ <td>48.1</td>
80
80
  </tr>
81
81
 
82
82
  <tr>
83
83
  <td class="strong"><a href="#7ee6b0eb3c9dcde6be408d6b4f636325ec8416f6" class="src_link" title="lib/hash.rb">lib/hash.rb</a></td>
84
- <td class="red strong">36.84 %</td>
85
- <td>34</td>
86
- <td>19</td>
87
- <td>7</td>
88
- <td>12</td>
89
- <td>0.4</td>
84
+ <td class="green strong">93.75 %</td>
85
+ <td>55</td>
86
+ <td>32</td>
87
+ <td>30</td>
88
+ <td>2</td>
89
+ <td>13.9</td>
90
90
  </tr>
91
91
 
92
92
  <tr>
93
93
  <td class="strong"><a href="#9082f1e417147c61ee326c565b15a99cad953b35" class="src_link" title="lib/hash_dealer.rb">lib/hash_dealer.rb</a></td>
94
- <td class="red strong">39.58 %</td>
94
+ <td class="green strong">95.83 %</td>
95
95
  <td>97</td>
96
96
  <td>48</td>
97
- <td>19</td>
98
- <td>29</td>
99
- <td>0.4</td>
97
+ <td>46</td>
98
+ <td>2</td>
99
+ <td>22.7</td>
100
100
  </tr>
101
101
 
102
102
  <tr>
103
103
  <td class="strong"><a href="#4cc7721b735165eef9b1e5afd4a168c1a72d5103" class="src_link" title="lib/matcher.rb">lib/matcher.rb</a></td>
104
- <td class="red strong">11.63 %</td>
105
- <td>69</td>
104
+ <td class="red strong">48.84 %</td>
105
+ <td>68</td>
106
106
  <td>43</td>
107
- <td>5</td>
108
- <td>38</td>
109
- <td>0.1</td>
107
+ <td>21</td>
108
+ <td>22</td>
109
+ <td>2.7</td>
110
110
  </tr>
111
111
 
112
112
  <tr>
113
113
  <td class="strong"><a href="#a262d63e5dc399019853b13f0e4b947eb9908f86" class="src_link" title="lib/path_string.rb">lib/path_string.rb</a></td>
114
- <td class="red strong">18.84 %</td>
114
+ <td class="red strong">69.57 %</td>
115
115
  <td>125</td>
116
116
  <td>69</td>
117
- <td>13</td>
118
- <td>56</td>
119
- <td>0.2</td>
117
+ <td>48</td>
118
+ <td>21</td>
119
+ <td>6.4</td>
120
120
  </tr>
121
121
 
122
122
  <tr>
123
123
  <td class="strong"><a href="#a53828a5413df9e3a1d0192504eac81ee4166020" class="src_link" title="lib/variable_array.rb">lib/variable_array.rb</a></td>
124
- <td class="red strong">36.36 %</td>
124
+ <td class="green strong">90.91 %</td>
125
125
  <td>18</td>
126
126
  <td>11</td>
127
- <td>4</td>
128
- <td>7</td>
129
- <td>0.4</td>
127
+ <td>10</td>
128
+ <td>1</td>
129
+ <td>4.1</td>
130
130
  </tr>
131
131
 
132
132
  </tbody>
@@ -286,20 +286,20 @@
286
286
  <div class="file_list_container" id="Libraries">
287
287
  <h2>
288
288
  <span class="group_name">Libraries</span>
289
- (<span class="covered_percent"><span class="red">29.69%</span></span>
289
+ (<span class="covered_percent"><span class="yellow">82.3%</span></span>
290
290
  covered at
291
291
  <span class="covered_strength">
292
292
  <span class="green">
293
- 3.4
293
+ 16.33
294
294
  </span>
295
295
  </span> hits/line)
296
296
  </h2>
297
297
  <a name="Libraries"></a>
298
298
  <div>
299
299
  <b>7</b> files in total.
300
- <b>320</b> relevant lines.
301
- <span class="green"><b>95</b> lines covered</span> and
302
- <span class="red"><b>225</b> lines missed </span>
300
+ <b>339</b> relevant lines.
301
+ <span class="green"><b>279</b> lines covered</span> and
302
+ <span class="red"><b>60</b> lines missed </span>
303
303
  </div>
304
304
  <table class="file_list">
305
305
  <thead>
@@ -317,72 +317,72 @@
317
317
 
318
318
  <tr>
319
319
  <td class="strong"><a href="#23ece676ee554bd0a62670e8964fe96af2adc01a" class="src_link" title="lib/comparator.rb">lib/comparator.rb</a></td>
320
- <td class="red strong">17.78 %</td>
321
- <td>74</td>
322
- <td>45</td>
323
- <td>8</td>
324
- <td>37</td>
325
- <td>0.2</td>
320
+ <td class="green strong">96.08 %</td>
321
+ <td>87</td>
322
+ <td>51</td>
323
+ <td>49</td>
324
+ <td>2</td>
325
+ <td>16.4</td>
326
326
  </tr>
327
327
 
328
328
  <tr>
329
329
  <td class="strong"><a href="#62f8063523b24e1e0397e524e8e048ddb0ac289c" class="src_link" title="lib/core_extensions.rb">lib/core_extensions.rb</a></td>
330
- <td class="red strong">45.88 %</td>
330
+ <td class="yellow strong">88.24 %</td>
331
331
  <td>183</td>
332
332
  <td>85</td>
333
- <td>39</td>
334
- <td>46</td>
335
- <td>22.1</td>
333
+ <td>75</td>
334
+ <td>10</td>
335
+ <td>48.1</td>
336
336
  </tr>
337
337
 
338
338
  <tr>
339
339
  <td class="strong"><a href="#7ee6b0eb3c9dcde6be408d6b4f636325ec8416f6" class="src_link" title="lib/hash.rb">lib/hash.rb</a></td>
340
- <td class="red strong">36.84 %</td>
341
- <td>34</td>
342
- <td>19</td>
343
- <td>7</td>
344
- <td>12</td>
345
- <td>0.4</td>
340
+ <td class="green strong">93.75 %</td>
341
+ <td>55</td>
342
+ <td>32</td>
343
+ <td>30</td>
344
+ <td>2</td>
345
+ <td>13.9</td>
346
346
  </tr>
347
347
 
348
348
  <tr>
349
349
  <td class="strong"><a href="#9082f1e417147c61ee326c565b15a99cad953b35" class="src_link" title="lib/hash_dealer.rb">lib/hash_dealer.rb</a></td>
350
- <td class="red strong">39.58 %</td>
350
+ <td class="green strong">95.83 %</td>
351
351
  <td>97</td>
352
352
  <td>48</td>
353
- <td>19</td>
354
- <td>29</td>
355
- <td>0.4</td>
353
+ <td>46</td>
354
+ <td>2</td>
355
+ <td>22.7</td>
356
356
  </tr>
357
357
 
358
358
  <tr>
359
359
  <td class="strong"><a href="#4cc7721b735165eef9b1e5afd4a168c1a72d5103" class="src_link" title="lib/matcher.rb">lib/matcher.rb</a></td>
360
- <td class="red strong">11.63 %</td>
361
- <td>69</td>
360
+ <td class="red strong">48.84 %</td>
361
+ <td>68</td>
362
362
  <td>43</td>
363
- <td>5</td>
364
- <td>38</td>
365
- <td>0.1</td>
363
+ <td>21</td>
364
+ <td>22</td>
365
+ <td>2.7</td>
366
366
  </tr>
367
367
 
368
368
  <tr>
369
369
  <td class="strong"><a href="#a262d63e5dc399019853b13f0e4b947eb9908f86" class="src_link" title="lib/path_string.rb">lib/path_string.rb</a></td>
370
- <td class="red strong">18.84 %</td>
370
+ <td class="red strong">69.57 %</td>
371
371
  <td>125</td>
372
372
  <td>69</td>
373
- <td>13</td>
374
- <td>56</td>
375
- <td>0.2</td>
373
+ <td>48</td>
374
+ <td>21</td>
375
+ <td>6.4</td>
376
376
  </tr>
377
377
 
378
378
  <tr>
379
379
  <td class="strong"><a href="#a53828a5413df9e3a1d0192504eac81ee4166020" class="src_link" title="lib/variable_array.rb">lib/variable_array.rb</a></td>
380
- <td class="red strong">36.36 %</td>
380
+ <td class="green strong">90.91 %</td>
381
381
  <td>18</td>
382
382
  <td>11</td>
383
- <td>4</td>
384
- <td>7</td>
385
- <td>0.4</td>
383
+ <td>10</td>
384
+ <td>1</td>
385
+ <td>4.1</td>
386
386
  </tr>
387
387
 
388
388
  </tbody>
@@ -440,11 +440,11 @@
440
440
  <div class="source_table" id="23ece676ee554bd0a62670e8964fe96af2adc01a">
441
441
  <div class="header">
442
442
  <h3>lib/comparator.rb</h3>
443
- <h4><span class="red">17.78 %</span> covered</h4>
443
+ <h4><span class="green">96.08 %</span> covered</h4>
444
444
  <div>
445
- <b>45</b> relevant lines.
446
- <span class="green"><b>8</b> lines covered</span> and
447
- <span class="red"><b>37</b> lines missed.</span>
445
+ <b>51</b> relevant lines.
446
+ <span class="green"><b>49</b> lines covered</span> and
447
+ <span class="red"><b>2</b> lines missed.</span>
448
448
  </div>
449
449
  </div>
450
450
 
@@ -481,8 +481,8 @@
481
481
  <code class="ruby"> def self.formatted_value(val)</code>
482
482
  </li>
483
483
 
484
- <li class="missed" data-hits="0" data-linenumber="6">
485
-
484
+ <li class="covered" data-hits="9" data-linenumber="6">
485
+ <span class="hits">9</span>
486
486
 
487
487
  <code class="ruby"> if val.nil?</code>
488
488
  </li>
@@ -493,20 +493,20 @@
493
493
  <code class="ruby"> return &quot;NilClass::nil&quot;</code>
494
494
  </li>
495
495
 
496
- <li class="missed" data-hits="0" data-linenumber="8">
497
-
496
+ <li class="covered" data-hits="9" data-linenumber="8">
497
+ <span class="hits">9</span>
498
498
 
499
499
  <code class="ruby"> elsif val.is_a?(PathString)</code>
500
500
  </li>
501
501
 
502
- <li class="missed" data-hits="0" data-linenumber="9">
503
-
502
+ <li class="covered" data-hits="2" data-linenumber="9">
503
+ <span class="hits">2</span>
504
504
 
505
505
  <code class="ruby"> return val.gsub(&quot;:&quot;,&quot;&quot;)</code>
506
506
  </li>
507
507
 
508
- <li class="missed" data-hits="0" data-linenumber="10">
509
-
508
+ <li class="covered" data-hits="7" data-linenumber="10">
509
+ <span class="hits">7</span>
510
510
 
511
511
  <code class="ruby"> elsif val == &quot;&quot;</code>
512
512
  </li>
@@ -523,8 +523,8 @@
523
523
  <code class="ruby"> else</code>
524
524
  </li>
525
525
 
526
- <li class="missed" data-hits="0" data-linenumber="13">
527
-
526
+ <li class="covered" data-hits="7" data-linenumber="13">
527
+ <span class="hits">7</span>
528
528
 
529
529
  <code class="ruby"> return val</code>
530
530
  </li>
@@ -553,343 +553,421 @@
553
553
  <code class="ruby"> def self.normalize_value(val)</code>
554
554
  </li>
555
555
 
556
- <li class="missed" data-hits="0" data-linenumber="18">
557
-
556
+ <li class="covered" data-hits="35" data-linenumber="18">
557
+ <span class="hits">35</span>
558
558
 
559
559
  <code class="ruby"> return val if val.is_a?(TimeDateMatcher)</code>
560
560
  </li>
561
561
 
562
- <li class="missed" data-hits="0" data-linenumber="19">
563
-
562
+ <li class="covered" data-hits="35" data-linenumber="19">
563
+ <span class="hits">35</span>
564
564
 
565
565
  <code class="ruby"> val = ActiveSupport::JSON.decode(val) if val.is_a?(String)</code>
566
566
  </li>
567
567
 
568
- <li class="missed" data-hits="0" data-linenumber="20">
569
-
568
+ <li class="covered" data-hits="35" data-linenumber="20">
569
+ <span class="hits">35</span>
570
570
 
571
571
  <code class="ruby"> val = self.stringify_keys(val) if val.is_a?(Hash)</code>
572
572
  </li>
573
573
 
574
- <li class="missed" data-hits="0" data-linenumber="21">
574
+ <li class="never" data-hits="" data-linenumber="21">
575
575
 
576
576
 
577
- <code class="ruby"> val = val.collect{|v| v.is_a?(Hash) || v.is_a?(Array) ? self.normalize_value(v) : v} if val.is_a?(Array)</code>
577
+ <code class="ruby"> </code>
578
578
  </li>
579
579
 
580
- <li class="missed" data-hits="0" data-linenumber="22">
580
+ <li class="covered" data-hits="35" data-linenumber="22">
581
+ <span class="hits">35</span>
582
+
583
+ <code class="ruby"> if val.is_a?(Array)</code>
584
+ </li>
585
+
586
+ <li class="covered" data-hits="2" data-linenumber="23">
587
+ <span class="hits">2</span>
588
+
589
+ <code class="ruby"> val = val.collect{|v| </code>
590
+ </li>
591
+
592
+ <li class="covered" data-hits="4" data-linenumber="24">
593
+ <span class="hits">4</span>
594
+
595
+ <code class="ruby"> v.is_a?(Hash) || v.is_a?(Array) ? self.normalize_value(v) : v</code>
596
+ </li>
597
+
598
+ <li class="never" data-hits="" data-linenumber="25">
599
+
600
+
601
+ <code class="ruby"> }</code>
602
+ </li>
603
+
604
+ <li class="never" data-hits="" data-linenumber="26">
581
605
 
582
606
 
607
+ <code class="ruby"> end</code>
608
+ </li>
609
+
610
+ <li class="never" data-hits="" data-linenumber="27">
611
+
612
+
613
+ <code class="ruby"></code>
614
+ </li>
615
+
616
+ <li class="covered" data-hits="35" data-linenumber="28">
617
+ <span class="hits">35</span>
618
+
583
619
  <code class="ruby"> val</code>
584
620
  </li>
585
621
 
586
- <li class="never" data-hits="" data-linenumber="23">
622
+ <li class="never" data-hits="" data-linenumber="29">
587
623
 
588
624
 
589
625
  <code class="ruby"> end</code>
590
626
  </li>
591
627
 
592
- <li class="never" data-hits="" data-linenumber="24">
628
+ <li class="never" data-hits="" data-linenumber="30">
593
629
 
594
630
 
595
631
  <code class="ruby"> </code>
596
632
  </li>
597
633
 
598
- <li class="covered" data-hits="1" data-linenumber="25">
634
+ <li class="covered" data-hits="1" data-linenumber="31">
599
635
  <span class="hits">1</span>
600
636
 
601
637
  <code class="ruby"> def self.diff(obj1, obj2)</code>
602
638
  </li>
603
639
 
604
- <li class="missed" data-hits="0" data-linenumber="26">
605
-
640
+ <li class="covered" data-hits="29" data-linenumber="32">
641
+ <span class="hits">29</span>
606
642
 
607
- <code class="ruby"> return {} if obj1 == obj2</code>
643
+ <code class="ruby"> return {} if obj1.eql?(obj2)</code>
608
644
  </li>
609
645
 
610
- <li class="missed" data-hits="0" data-linenumber="27">
611
-
646
+ <li class="covered" data-hits="13" data-linenumber="33">
647
+ <span class="hits">13</span>
612
648
 
613
649
  <code class="ruby"> if obj1.is_a?(Array) &amp;&amp; obj2.is_a?(Array)</code>
614
650
  </li>
615
651
 
616
- <li class="missed" data-hits="0" data-linenumber="28">
617
-
652
+ <li class="covered" data-hits="1" data-linenumber="34">
653
+ <span class="hits">1</span>
618
654
 
619
655
  <code class="ruby"> return self.array_diff(obj1, obj2) </code>
620
656
  </li>
621
657
 
622
- <li class="never" data-hits="" data-linenumber="29">
658
+ <li class="never" data-hits="" data-linenumber="35">
623
659
 
624
660
 
625
661
  <code class="ruby"> elsif obj1.is_a?(Hash) &amp;&amp; obj2.is_a?(Hash)</code>
626
662
  </li>
627
663
 
628
- <li class="missed" data-hits="0" data-linenumber="30">
629
-
664
+ <li class="covered" data-hits="11" data-linenumber="36">
665
+ <span class="hits">11</span>
630
666
 
631
667
  <code class="ruby"> return self.hash_diff(obj1, obj2) </code>
632
668
  </li>
633
669
 
634
- <li class="never" data-hits="" data-linenumber="31">
670
+ <li class="never" data-hits="" data-linenumber="37">
635
671
 
636
672
 
637
673
  <code class="ruby"> end</code>
638
674
  </li>
639
675
 
640
- <li class="missed" data-hits="0" data-linenumber="32">
641
-
676
+ <li class="covered" data-hits="1" data-linenumber="38">
677
+ <span class="hits">1</span>
642
678
 
643
679
  <code class="ruby"> return [formatted_value(obj1), &quot;KEY MISSING&quot;] if obj2.nil?</code>
644
680
  </li>
645
681
 
646
- <li class="missed" data-hits="0" data-linenumber="33">
647
-
682
+ <li class="covered" data-hits="1" data-linenumber="39">
683
+ <span class="hits">1</span>
648
684
 
649
685
  <code class="ruby"> return [&quot;KEY MISSING&quot;, formatted_value(obj2)] if obj1.nil?</code>
650
686
  </li>
651
687
 
652
- <li class="missed" data-hits="0" data-linenumber="34">
653
-
688
+ <li class="covered" data-hits="1" data-linenumber="40">
689
+ <span class="hits">1</span>
654
690
 
655
691
  <code class="ruby"> return [formatted_value(obj1), formatted_value(obj2)]</code>
656
692
  </li>
657
693
 
658
- <li class="never" data-hits="" data-linenumber="35">
694
+ <li class="never" data-hits="" data-linenumber="41">
659
695
 
660
696
 
661
697
  <code class="ruby"> end</code>
662
698
  </li>
663
699
 
664
- <li class="never" data-hits="" data-linenumber="36">
700
+ <li class="never" data-hits="" data-linenumber="42">
665
701
 
666
702
 
667
703
  <code class="ruby"> </code>
668
704
  </li>
669
705
 
670
- <li class="covered" data-hits="1" data-linenumber="37">
706
+ <li class="covered" data-hits="1" data-linenumber="43">
671
707
  <span class="hits">1</span>
672
708
 
673
709
  <code class="ruby"> def self.array_diff(obj1, obj2)</code>
674
710
  </li>
675
711
 
676
- <li class="missed" data-hits="0" data-linenumber="38">
677
-
712
+ <li class="covered" data-hits="1" data-linenumber="44">
713
+ <span class="hits">1</span>
678
714
 
679
715
  <code class="ruby"> {}.tap do |ret|</code>
680
716
  </li>
681
717
 
682
- <li class="never" data-hits="" data-linenumber="39">
718
+ <li class="never" data-hits="" data-linenumber="45">
683
719
 
684
720
 
685
721
  <code class="ruby"> # handle VariableArray by extracting the first element</code>
686
722
  </li>
687
723
 
688
- <li class="never" data-hits="" data-linenumber="40">
724
+ <li class="never" data-hits="" data-linenumber="46">
689
725
 
690
726
 
691
727
  <code class="ruby"> # of non-VariableArrays and the 2nd element of VariableArrays</code>
692
728
  </li>
693
729
 
694
- <li class="missed" data-hits="0" data-linenumber="41">
695
-
730
+ <li class="covered" data-hits="1" data-linenumber="47">
731
+ <span class="hits">1</span>
696
732
 
697
733
  <code class="ruby"> if obj1.is_a?(VariableArray) || obj2.is_a?(VariableArray)</code>
698
734
  </li>
699
735
 
700
- <li class="missed" data-hits="0" data-linenumber="42">
701
-
736
+ <li class="covered" data-hits="1" data-linenumber="48">
737
+ <span class="hits">1</span>
702
738
 
703
739
  <code class="ruby"> obj1 = obj1.is_a?(VariableArray) ? [obj1[1]] : [obj1[0]]</code>
704
740
  </li>
705
741
 
706
- <li class="missed" data-hits="0" data-linenumber="43">
707
-
742
+ <li class="covered" data-hits="1" data-linenumber="49">
743
+ <span class="hits">1</span>
708
744
 
709
745
  <code class="ruby"> obj2 = obj2.is_a?(VariableArray) ? [obj2[1]] : [obj2[0]]</code>
710
746
  </li>
711
747
 
712
- <li class="never" data-hits="" data-linenumber="44">
748
+ <li class="never" data-hits="" data-linenumber="50">
713
749
 
714
750
 
715
751
  <code class="ruby"> end</code>
716
752
  </li>
717
753
 
718
- <li class="missed" data-hits="0" data-linenumber="45">
719
-
754
+ <li class="covered" data-hits="1" data-linenumber="51">
755
+ <span class="hits">1</span>
720
756
 
721
757
  <code class="ruby"> bigger_arr = obj1.size &gt;= obj2.size ? obj1 : obj2</code>
722
758
  </li>
723
759
 
724
- <li class="missed" data-hits="0" data-linenumber="46">
725
-
760
+ <li class="covered" data-hits="1" data-linenumber="52">
761
+ <span class="hits">1</span>
726
762
 
727
763
  <code class="ruby"> bigger_arr.each_index do |k|</code>
728
764
  </li>
729
765
 
730
- <li class="missed" data-hits="0" data-linenumber="47">
731
-
766
+ <li class="covered" data-hits="1" data-linenumber="53">
767
+ <span class="hits">1</span>
732
768
 
733
769
  <code class="ruby"> ret[k] = self.diff(obj1[k], obj2[k]) unless obj1[k] == obj2[k]</code>
734
770
  </li>
735
771
 
736
- <li class="never" data-hits="" data-linenumber="48">
772
+ <li class="never" data-hits="" data-linenumber="54">
737
773
 
738
774
 
739
775
  <code class="ruby"> end </code>
740
776
  </li>
741
777
 
742
- <li class="never" data-hits="" data-linenumber="49">
778
+ <li class="never" data-hits="" data-linenumber="55">
743
779
 
744
780
 
745
781
  <code class="ruby"> end</code>
746
782
  </li>
747
783
 
748
- <li class="never" data-hits="" data-linenumber="50">
784
+ <li class="never" data-hits="" data-linenumber="56">
749
785
 
750
786
 
751
787
  <code class="ruby"> end</code>
752
788
  </li>
753
789
 
754
- <li class="never" data-hits="" data-linenumber="51">
790
+ <li class="never" data-hits="" data-linenumber="57">
755
791
 
756
792
 
757
793
  <code class="ruby"> </code>
758
794
  </li>
759
795
 
760
- <li class="covered" data-hits="1" data-linenumber="52">
796
+ <li class="covered" data-hits="1" data-linenumber="58">
761
797
  <span class="hits">1</span>
762
798
 
763
799
  <code class="ruby"> def self.hash_diff(obj1, obj2)</code>
764
800
  </li>
765
801
 
766
- <li class="missed" data-hits="0" data-linenumber="53">
767
-
802
+ <li class="covered" data-hits="11" data-linenumber="59">
803
+ <span class="hits">11</span>
768
804
 
769
805
  <code class="ruby"> obj1, obj2 = self.stringify_keys(obj1), self.stringify_keys(obj2)</code>
770
806
  </li>
771
807
 
772
- <li class="missed" data-hits="0" data-linenumber="54">
773
-
808
+ <li class="covered" data-hits="11" data-linenumber="60">
809
+ <span class="hits">11</span>
774
810
 
775
811
  <code class="ruby"> (obj1.keys + obj2.keys).uniq.inject({}) do |memo, key|</code>
776
812
  </li>
777
813
 
778
- <li class="missed" data-hits="0" data-linenumber="55">
779
-
814
+ <li class="covered" data-hits="19" data-linenumber="61">
815
+ <span class="hits">19</span>
780
816
 
781
817
  <code class="ruby"> if !obj1.keys.include?(key) </code>
782
818
  </li>
783
819
 
784
- <li class="missed" data-hits="0" data-linenumber="56">
785
-
820
+ <li class="covered" data-hits="3" data-linenumber="62">
821
+ <span class="hits">3</span>
786
822
 
787
823
  <code class="ruby"> memo[key] = [&quot;KEY MISSING&quot;, formatted_value(obj2[key])]</code>
788
824
  </li>
789
825
 
790
- <li class="never" data-hits="" data-linenumber="57">
826
+ <li class="never" data-hits="" data-linenumber="63">
791
827
 
792
828
 
793
829
  <code class="ruby"> elsif !obj2.keys.include?(key) </code>
794
830
  </li>
795
831
 
796
- <li class="missed" data-hits="0" data-linenumber="58">
797
-
832
+ <li class="covered" data-hits="4" data-linenumber="64">
833
+ <span class="hits">4</span>
798
834
 
799
835
  <code class="ruby"> memo[key] = [formatted_value(obj1[key]), &quot;KEY MISSING&quot;]</code>
800
836
  </li>
801
837
 
802
- <li class="never" data-hits="" data-linenumber="59">
838
+ <li class="never" data-hits="" data-linenumber="65">
803
839
 
804
840
 
805
841
  <code class="ruby"> elsif obj1[key] != obj2[key]</code>
806
842
  </li>
807
843
 
808
- <li class="missed" data-hits="0" data-linenumber="60">
809
-
844
+ <li class="covered" data-hits="3" data-linenumber="66">
845
+ <span class="hits">3</span>
810
846
 
811
847
  <code class="ruby"> memo[key] = self.diff(obj1[key], obj2[key])</code>
812
848
  </li>
813
849
 
814
- <li class="never" data-hits="" data-linenumber="61">
850
+ <li class="never" data-hits="" data-linenumber="67">
815
851
 
816
852
 
817
853
  <code class="ruby"> end</code>
818
854
  </li>
819
855
 
820
- <li class="missed" data-hits="0" data-linenumber="62">
821
-
856
+ <li class="covered" data-hits="19" data-linenumber="68">
857
+ <span class="hits">19</span>
822
858
 
823
859
  <code class="ruby"> memo</code>
824
860
  </li>
825
861
 
826
- <li class="never" data-hits="" data-linenumber="63">
862
+ <li class="never" data-hits="" data-linenumber="69">
827
863
 
828
864
 
829
865
  <code class="ruby"> end</code>
830
866
  </li>
831
867
 
832
- <li class="never" data-hits="" data-linenumber="64">
868
+ <li class="never" data-hits="" data-linenumber="70">
833
869
 
834
870
 
835
871
  <code class="ruby"> end</code>
836
872
  </li>
837
873
 
838
- <li class="never" data-hits="" data-linenumber="65">
874
+ <li class="never" data-hits="" data-linenumber="71">
839
875
 
840
876
 
841
877
  <code class="ruby"> </code>
842
878
  </li>
843
879
 
844
- <li class="covered" data-hits="1" data-linenumber="66">
880
+ <li class="covered" data-hits="1" data-linenumber="72">
845
881
  <span class="hits">1</span>
846
882
 
847
883
  <code class="ruby"> def self.stringify_keys(hash_or_array)</code>
848
884
  </li>
849
885
 
850
- <li class="missed" data-hits="0" data-linenumber="67">
886
+ <li class="covered" data-hits="88" data-linenumber="73">
887
+ <span class="hits">88</span>
888
+
889
+ <code class="ruby"> if hash_or_array.is_a?(Array)</code>
890
+ </li>
891
+
892
+ <li class="never" data-hits="" data-linenumber="74">
851
893
 
852
894
 
853
- <code class="ruby"> return hash_or_array.collect{|v| v.is_a?(Hash) || v.is_a?(Array) ? self.stringify_keys(v) : v} if hash_or_array.is_a?(Array)</code>
895
+ <code class="ruby"> return hash_or_array.collect{|v| </code>
854
896
  </li>
855
897
 
856
- <li class="missed" data-hits="0" data-linenumber="68">
898
+ <li class="covered" data-hits="27" data-linenumber="75">
899
+ <span class="hits">27</span>
857
900
 
901
+ <code class="ruby"> v.is_a?(Hash) || v.is_a?(Array) ? self.stringify_keys(v) : v</code>
902
+ </li>
903
+
904
+ <li class="covered" data-hits="12" data-linenumber="76">
905
+ <span class="hits">12</span>
858
906
 
859
- <code class="ruby"> {}.tap do |ret|</code>
907
+ <code class="ruby"> }</code>
860
908
  </li>
861
909
 
862
- <li class="missed" data-hits="0" data-linenumber="69">
910
+ <li class="never" data-hits="" data-linenumber="77">
863
911
 
864
912
 
865
- <code class="ruby"> hash_or_array.each_pair.each do |k, v|</code>
913
+ <code class="ruby"> end</code>
866
914
  </li>
867
915
 
868
- <li class="missed" data-hits="0" data-linenumber="70">
916
+ <li class="never" data-hits="" data-linenumber="78">
917
+
869
918
 
919
+ <code class="ruby"> </code>
920
+ </li>
921
+
922
+ <li class="covered" data-hits="76" data-linenumber="79">
923
+ <span class="hits">76</span>
870
924
 
871
- <code class="ruby"> ret[k.to_s] = v.is_a?(Hash) || v.is_a?(Array) ? self.stringify_keys(v) : v</code>
925
+ <code class="ruby"> ret = hash_or_array.stringify_keys</code>
872
926
  </li>
873
927
 
874
- <li class="never" data-hits="" data-linenumber="71">
928
+ <li class="covered" data-hits="76" data-linenumber="80">
929
+ <span class="hits">76</span>
930
+
931
+ <code class="ruby"> ret.each_pair do |k,v|</code>
932
+ </li>
933
+
934
+ <li class="covered" data-hits="101" data-linenumber="81">
935
+ <span class="hits">101</span>
936
+
937
+ <code class="ruby"> if v.is_a?(Hash) || v.is_a?(Array)</code>
938
+ </li>
939
+
940
+ <li class="covered" data-hits="21" data-linenumber="82">
941
+ <span class="hits">21</span>
942
+
943
+ <code class="ruby"> ret[k] = self.stringify_keys(v)</code>
944
+ </li>
945
+
946
+ <li class="never" data-hits="" data-linenumber="83">
875
947
 
876
948
 
877
949
  <code class="ruby"> end</code>
878
950
  </li>
879
951
 
880
- <li class="never" data-hits="" data-linenumber="72">
952
+ <li class="never" data-hits="" data-linenumber="84">
881
953
 
882
954
 
883
955
  <code class="ruby"> end</code>
884
956
  </li>
885
957
 
886
- <li class="never" data-hits="" data-linenumber="73">
958
+ <li class="covered" data-hits="76" data-linenumber="85">
959
+ <span class="hits">76</span>
960
+
961
+ <code class="ruby"> ret</code>
962
+ </li>
963
+
964
+ <li class="never" data-hits="" data-linenumber="86">
887
965
 
888
966
 
889
967
  <code class="ruby"> end</code>
890
968
  </li>
891
969
 
892
- <li class="never" data-hits="" data-linenumber="74">
970
+ <li class="never" data-hits="" data-linenumber="87">
893
971
 
894
972
 
895
973
  <code class="ruby">end</code>
@@ -902,11 +980,11 @@
902
980
  <div class="source_table" id="62f8063523b24e1e0397e524e8e048ddb0ac289c">
903
981
  <div class="header">
904
982
  <h3>lib/core_extensions.rb</h3>
905
- <h4><span class="red">45.88 %</span> covered</h4>
983
+ <h4><span class="yellow">88.24 %</span> covered</h4>
906
984
  <div>
907
985
  <b>85</b> relevant lines.
908
- <span class="green"><b>39</b> lines covered</span> and
909
- <span class="red"><b>46</b> lines missed.</span>
986
+ <span class="green"><b>75</b> lines covered</span> and
987
+ <span class="red"><b>10</b> lines missed.</span>
910
988
  </div>
911
989
  </div>
912
990
 
@@ -973,8 +1051,8 @@
973
1051
  <code class="ruby"> def initialize(instance)</code>
974
1052
  </li>
975
1053
 
976
- <li class="missed" data-hits="0" data-linenumber="11">
977
-
1054
+ <li class="covered" data-hits="8" data-linenumber="11">
1055
+ <span class="hits">8</span>
978
1056
 
979
1057
  <code class="ruby"> @instance = instance</code>
980
1058
  </li>
@@ -997,8 +1075,8 @@
997
1075
  <code class="ruby"> # allow nils to match</code>
998
1076
  </li>
999
1077
 
1000
- <li class="missed" data-hits="0" data-linenumber="15">
1001
-
1078
+ <li class="covered" data-hits="12" data-linenumber="15">
1079
+ <span class="hits">12</span>
1002
1080
 
1003
1081
  <code class="ruby"> return true if other.nil?</code>
1004
1082
  </li>
@@ -1009,20 +1087,20 @@
1009
1087
  <code class="ruby"> # attempt to parse any strings</code>
1010
1088
  </li>
1011
1089
 
1012
- <li class="missed" data-hits="0" data-linenumber="17">
1013
-
1090
+ <li class="covered" data-hits="10" data-linenumber="17">
1091
+ <span class="hits">10</span>
1014
1092
 
1015
1093
  <code class="ruby"> if other.is_a?(String)</code>
1016
1094
  </li>
1017
1095
 
1018
- <li class="missed" data-hits="0" data-linenumber="18">
1019
-
1096
+ <li class="covered" data-hits="2" data-linenumber="18">
1097
+ <span class="hits">2</span>
1020
1098
 
1021
1099
  <code class="ruby"> begin</code>
1022
1100
  </li>
1023
1101
 
1024
- <li class="missed" data-hits="0" data-linenumber="19">
1025
-
1102
+ <li class="covered" data-hits="2" data-linenumber="19">
1103
+ <span class="hits">2</span>
1026
1104
 
1027
1105
  <code class="ruby"> other = self.instance.class.parse(other)</code>
1028
1106
  </li>
@@ -1051,8 +1129,8 @@
1051
1129
  <code class="ruby"> end</code>
1052
1130
  </li>
1053
1131
 
1054
- <li class="missed" data-hits="0" data-linenumber="24">
1055
-
1132
+ <li class="covered" data-hits="10" data-linenumber="24">
1133
+ <span class="hits">10</span>
1056
1134
 
1057
1135
  <code class="ruby"> self.instance.class == other.class</code>
1058
1136
  </li>
@@ -1237,8 +1315,8 @@
1237
1315
  <code class="ruby"> def initialize(instance)</code>
1238
1316
  </li>
1239
1317
 
1240
- <li class="missed" data-hits="0" data-linenumber="55">
1241
-
1318
+ <li class="covered" data-hits="2" data-linenumber="55">
1319
+ <span class="hits">2</span>
1242
1320
 
1243
1321
  <code class="ruby"> @instance = instance</code>
1244
1322
  </li>
@@ -1255,8 +1333,8 @@
1255
1333
  <code class="ruby"> def ==(other)</code>
1256
1334
  </li>
1257
1335
 
1258
- <li class="missed" data-hits="0" data-linenumber="58">
1259
-
1336
+ <li class="covered" data-hits="2" data-linenumber="58">
1337
+ <span class="hits">2</span>
1260
1338
 
1261
1339
  <code class="ruby"> return (other.is_a?(TrueClass) || other.is_a?(FalseClass) || other.is_a?(BooleanMatcher))</code>
1262
1340
  </li>
@@ -1423,8 +1501,8 @@
1423
1501
  <code class="ruby"> def matcher(opts={})</code>
1424
1502
  </li>
1425
1503
 
1426
- <li class="missed" data-hits="0" data-linenumber="86">
1427
-
1504
+ <li class="covered" data-hits="4" data-linenumber="86">
1505
+ <span class="hits">4</span>
1428
1506
 
1429
1507
  <code class="ruby"> PathString.new(&quot;:#{self}&quot;)</code>
1430
1508
  </li>
@@ -1441,14 +1519,14 @@
1441
1519
  <code class="ruby"> def ==(other)</code>
1442
1520
  </li>
1443
1521
 
1444
- <li class="missed" data-hits="0" data-linenumber="89">
1445
-
1522
+ <li class="covered" data-hits="1" data-linenumber="89">
1523
+ <span class="hits">1</span>
1446
1524
 
1447
1525
  <code class="ruby"> return true if other.is_a?(PathString) &amp;&amp; other =~ /^:/</code>
1448
1526
  </li>
1449
1527
 
1450
- <li class="missed" data-hits="0" data-linenumber="90">
1451
-
1528
+ <li class="covered" data-hits="1" data-linenumber="90">
1529
+ <span class="hits">1</span>
1452
1530
 
1453
1531
  <code class="ruby"> super</code>
1454
1532
  </li>
@@ -1501,8 +1579,8 @@
1501
1579
  <code class="ruby"> # if we have a leading : or a /:xyz - a matcher is already defined</code>
1502
1580
  </li>
1503
1581
 
1504
- <li class="missed" data-hits="0" data-linenumber="99">
1505
-
1582
+ <li class="covered" data-hits="34" data-linenumber="99">
1583
+ <span class="hits">34</span>
1506
1584
 
1507
1585
  <code class="ruby"> self =~ /(^:|\/:)/ ? PathString.new(self) : PathString.new(&quot;:#{self}&quot;)</code>
1508
1586
  </li>
@@ -1519,20 +1597,20 @@
1519
1597
  <code class="ruby"> define_method &quot;==_with_path_string&quot; do |other|</code>
1520
1598
  </li>
1521
1599
 
1522
- <li class="covered" data-hits="920" data-linenumber="102">
1523
- <span class="hits">920</span>
1600
+ <li class="covered" data-hits="1558" data-linenumber="102">
1601
+ <span class="hits">1558</span>
1524
1602
 
1525
1603
  <code class="ruby"> if other.is_a?(PathString)</code>
1526
1604
  </li>
1527
1605
 
1528
- <li class="missed" data-hits="0" data-linenumber="103">
1529
-
1606
+ <li class="covered" data-hits="20" data-linenumber="103">
1607
+ <span class="hits">20</span>
1530
1608
 
1531
1609
  <code class="ruby"> return true if self.is_a?(PathString)</code>
1532
1610
  </li>
1533
1611
 
1534
- <li class="missed" data-hits="0" data-linenumber="104">
1535
-
1612
+ <li class="covered" data-hits="2" data-linenumber="104">
1613
+ <span class="hits">2</span>
1536
1614
 
1537
1615
  <code class="ruby"> return other == self </code>
1538
1616
  </li>
@@ -1543,8 +1621,8 @@
1543
1621
  <code class="ruby"> end</code>
1544
1622
  </li>
1545
1623
 
1546
- <li class="covered" data-hits="920" data-linenumber="106">
1547
- <span class="hits">920</span>
1624
+ <li class="covered" data-hits="1538" data-linenumber="106">
1625
+ <span class="hits">1538</span>
1548
1626
 
1549
1627
  <code class="ruby"> return self.send(&quot;==_without_path_string&quot;, other)</code>
1550
1628
  </li>
@@ -1687,20 +1765,20 @@
1687
1765
  <code class="ruby"> def matcher(opts = {})</code>
1688
1766
  </li>
1689
1767
 
1690
- <li class="missed" data-hits="0" data-linenumber="130">
1691
-
1768
+ <li class="covered" data-hits="41" data-linenumber="130">
1769
+ <span class="hits">41</span>
1692
1770
 
1693
1771
  <code class="ruby"> opts[:only] ||= self.keys.collect(&amp;:to_sym)</code>
1694
1772
  </li>
1695
1773
 
1696
- <li class="missed" data-hits="0" data-linenumber="131">
1697
-
1774
+ <li class="covered" data-hits="41" data-linenumber="131">
1775
+ <span class="hits">41</span>
1698
1776
 
1699
1777
  <code class="ruby"> opts[:only] = opts[:only].collect(&amp;:to_sym)</code>
1700
1778
  </li>
1701
1779
 
1702
- <li class="missed" data-hits="0" data-linenumber="132">
1703
-
1780
+ <li class="covered" data-hits="41" data-linenumber="132">
1781
+ <span class="hits">41</span>
1704
1782
 
1705
1783
  <code class="ruby"> opts[:only] -= (opts[:except] || []).collect(&amp;:to_sym)</code>
1706
1784
  </li>
@@ -1711,26 +1789,26 @@
1711
1789
  <code class="ruby"> </code>
1712
1790
  </li>
1713
1791
 
1714
- <li class="missed" data-hits="0" data-linenumber="134">
1715
-
1792
+ <li class="covered" data-hits="41" data-linenumber="134">
1793
+ <span class="hits">41</span>
1716
1794
 
1717
1795
  <code class="ruby"> ret = self.class.new</code>
1718
1796
  </li>
1719
1797
 
1720
- <li class="missed" data-hits="0" data-linenumber="135">
1721
-
1798
+ <li class="covered" data-hits="41" data-linenumber="135">
1799
+ <span class="hits">41</span>
1722
1800
 
1723
1801
  <code class="ruby"> self.each_pair do |k,v|</code>
1724
1802
  </li>
1725
1803
 
1726
- <li class="missed" data-hits="0" data-linenumber="136">
1727
-
1804
+ <li class="covered" data-hits="61" data-linenumber="136">
1805
+ <span class="hits">61</span>
1728
1806
 
1729
1807
  <code class="ruby"> if opts[:only].include?(k.to_sym)</code>
1730
1808
  </li>
1731
1809
 
1732
- <li class="missed" data-hits="0" data-linenumber="137">
1733
-
1810
+ <li class="covered" data-hits="51" data-linenumber="137">
1811
+ <span class="hits">51</span>
1734
1812
 
1735
1813
  <code class="ruby"> ret[k] = v.matcher(opts[k.to_sym] || {})</code>
1736
1814
  </li>
@@ -1747,8 +1825,8 @@
1747
1825
  <code class="ruby"> # Still try to pathify strings if this is an array or hash</code>
1748
1826
  </li>
1749
1827
 
1750
- <li class="missed" data-hits="0" data-linenumber="140">
1751
-
1828
+ <li class="covered" data-hits="10" data-linenumber="140">
1829
+ <span class="hits">10</span>
1752
1830
 
1753
1831
  <code class="ruby"> if v.is_a?(Array) || v.is_a?(Hash)</code>
1754
1832
  </li>
@@ -1765,8 +1843,8 @@
1765
1843
  <code class="ruby"> else</code>
1766
1844
  </li>
1767
1845
 
1768
- <li class="missed" data-hits="0" data-linenumber="143">
1769
-
1846
+ <li class="covered" data-hits="10" data-linenumber="143">
1847
+ <span class="hits">10</span>
1770
1848
 
1771
1849
  <code class="ruby"> ret[k] = v</code>
1772
1850
  </li>
@@ -1789,8 +1867,8 @@
1789
1867
  <code class="ruby"> end</code>
1790
1868
  </li>
1791
1869
 
1792
- <li class="missed" data-hits="0" data-linenumber="147">
1793
-
1870
+ <li class="covered" data-hits="41" data-linenumber="147">
1871
+ <span class="hits">41</span>
1794
1872
 
1795
1873
  <code class="ruby"> ret</code>
1796
1874
  </li>
@@ -1819,8 +1897,8 @@
1819
1897
  <code class="ruby"> def pathify_strings</code>
1820
1898
  </li>
1821
1899
 
1822
- <li class="missed" data-hits="0" data-linenumber="152">
1823
-
1900
+ <li class="covered" data-hits="44" data-linenumber="152">
1901
+ <span class="hits">44</span>
1824
1902
 
1825
1903
  <code class="ruby"> if self.first == &quot;:matcher&quot;</code>
1826
1904
  </li>
@@ -1837,8 +1915,8 @@
1837
1915
  <code class="ruby"> else</code>
1838
1916
  </li>
1839
1917
 
1840
- <li class="missed" data-hits="0" data-linenumber="155">
1841
-
1918
+ <li class="covered" data-hits="44" data-linenumber="155">
1919
+ <span class="hits">44</span>
1842
1920
 
1843
1921
  <code class="ruby"> val = self</code>
1844
1922
  </li>
@@ -1849,20 +1927,20 @@
1849
1927
  <code class="ruby"> end</code>
1850
1928
  </li>
1851
1929
 
1852
- <li class="missed" data-hits="0" data-linenumber="157">
1853
-
1930
+ <li class="covered" data-hits="44" data-linenumber="157">
1931
+ <span class="hits">44</span>
1854
1932
 
1855
1933
  <code class="ruby"> val.each_with_index do |v,k|</code>
1856
1934
  </li>
1857
1935
 
1858
- <li class="missed" data-hits="0" data-linenumber="158">
1859
-
1936
+ <li class="covered" data-hits="104" data-linenumber="158">
1937
+ <span class="hits">104</span>
1860
1938
 
1861
1939
  <code class="ruby"> if v.is_a?(Array) || v.is_a?(Hash)</code>
1862
1940
  </li>
1863
1941
 
1864
- <li class="missed" data-hits="0" data-linenumber="159">
1865
-
1942
+ <li class="covered" data-hits="38" data-linenumber="159">
1943
+ <span class="hits">38</span>
1866
1944
 
1867
1945
  <code class="ruby"> val[k] = v.pathify_strings</code>
1868
1946
  </li>
@@ -1873,8 +1951,8 @@
1873
1951
  <code class="ruby"> elsif v.instance_of?(String) || v.is_a?(Numeric)</code>
1874
1952
  </li>
1875
1953
 
1876
- <li class="missed" data-hits="0" data-linenumber="161">
1877
-
1954
+ <li class="covered" data-hits="66" data-linenumber="161">
1955
+ <span class="hits">66</span>
1878
1956
 
1879
1957
  <code class="ruby"> val[k] = PathString.new(URI.decode(v.to_s))</code>
1880
1958
  </li>
@@ -1891,8 +1969,8 @@
1891
1969
  <code class="ruby"> end</code>
1892
1970
  </li>
1893
1971
 
1894
- <li class="missed" data-hits="0" data-linenumber="164">
1895
-
1972
+ <li class="covered" data-hits="44" data-linenumber="164">
1973
+ <span class="hits">44</span>
1896
1974
 
1897
1975
  <code class="ruby"> val</code>
1898
1976
  </li>
@@ -1915,20 +1993,20 @@
1915
1993
  <code class="ruby"> def matcher(opts = {})</code>
1916
1994
  </li>
1917
1995
 
1918
- <li class="missed" data-hits="0" data-linenumber="168">
1919
-
1996
+ <li class="covered" data-hits="5" data-linenumber="168">
1997
+ <span class="hits">5</span>
1920
1998
 
1921
1999
  <code class="ruby"> klone = self.clone</code>
1922
2000
  </li>
1923
2001
 
1924
- <li class="missed" data-hits="0" data-linenumber="169">
1925
-
2002
+ <li class="covered" data-hits="5" data-linenumber="169">
2003
+ <span class="hits">5</span>
1926
2004
 
1927
2005
  <code class="ruby"> klone.unshift(&quot;:matcher&quot;)</code>
1928
2006
  </li>
1929
2007
 
1930
- <li class="missed" data-hits="0" data-linenumber="170">
1931
-
2008
+ <li class="covered" data-hits="5" data-linenumber="170">
2009
+ <span class="hits">5</span>
1932
2010
 
1933
2011
  <code class="ruby"> VariableArray.new(klone.collect(&amp;:matcher))</code>
1934
2012
  </li>
@@ -1963,14 +2041,14 @@
1963
2041
  <code class="ruby"> define_method &quot;==_with_variable_array&quot; do |other|</code>
1964
2042
  </li>
1965
2043
 
1966
- <li class="missed" data-hits="0" data-linenumber="176">
1967
-
2044
+ <li class="covered" data-hits="32" data-linenumber="176">
2045
+ <span class="hits">32</span>
1968
2046
 
1969
2047
  <code class="ruby"> return other == self if other.is_a?(VariableArray)</code>
1970
2048
  </li>
1971
2049
 
1972
- <li class="missed" data-hits="0" data-linenumber="177">
1973
-
2050
+ <li class="covered" data-hits="30" data-linenumber="177">
2051
+ <span class="hits">30</span>
1974
2052
 
1975
2053
  <code class="ruby"> self.send(&quot;==_without_variable_array&quot;,other)</code>
1976
2054
  </li>
@@ -2018,11 +2096,11 @@
2018
2096
  <div class="source_table" id="7ee6b0eb3c9dcde6be408d6b4f636325ec8416f6">
2019
2097
  <div class="header">
2020
2098
  <h3>lib/hash.rb</h3>
2021
- <h4><span class="red">36.84 %</span> covered</h4>
2099
+ <h4><span class="green">93.75 %</span> covered</h4>
2022
2100
  <div>
2023
- <b>19</b> relevant lines.
2024
- <span class="green"><b>7</b> lines covered</span> and
2025
- <span class="red"><b>12</b> lines missed.</span>
2101
+ <b>32</b> relevant lines.
2102
+ <span class="green"><b>30</b> lines covered</span> and
2103
+ <span class="red"><b>2</b> lines missed.</span>
2026
2104
  </div>
2027
2105
  </div>
2028
2106
 
@@ -2050,184 +2128,310 @@
2050
2128
  <li class="covered" data-hits="1" data-linenumber="4">
2051
2129
  <span class="hits">1</span>
2052
2130
 
2053
- <code class="ruby"> def initialize(optional_attributes = [])</code>
2131
+ <code class="ruby"> attr_accessor :optional_attributes</code>
2132
+ </li>
2133
+
2134
+ <li class="never" data-hits="" data-linenumber="5">
2135
+
2136
+
2137
+ <code class="ruby"></code>
2054
2138
  </li>
2055
2139
 
2056
- <li class="missed" data-hits="0" data-linenumber="5">
2140
+ <li class="covered" data-hits="1" data-linenumber="6">
2141
+ <span class="hits">1</span>
2057
2142
 
2143
+ <code class="ruby"> def initialize(optional_attributes = [])</code>
2144
+ </li>
2145
+
2146
+ <li class="covered" data-hits="82" data-linenumber="7">
2147
+ <span class="hits">82</span>
2058
2148
 
2059
2149
  <code class="ruby"> @optional_attributes = optional_attributes</code>
2060
2150
  </li>
2061
2151
 
2062
- <li class="never" data-hits="" data-linenumber="6">
2152
+ <li class="never" data-hits="" data-linenumber="8">
2063
2153
 
2064
2154
 
2065
2155
  <code class="ruby"> end</code>
2066
2156
  </li>
2067
2157
 
2068
- <li class="never" data-hits="" data-linenumber="7">
2158
+ <li class="never" data-hits="" data-linenumber="9">
2069
2159
 
2070
2160
 
2071
2161
  <code class="ruby"></code>
2072
2162
  </li>
2073
2163
 
2074
- <li class="covered" data-hits="1" data-linenumber="8">
2164
+ <li class="covered" data-hits="1" data-linenumber="10">
2075
2165
  <span class="hits">1</span>
2076
2166
 
2077
2167
  <code class="ruby"> def eql?(other)</code>
2078
2168
  </li>
2079
2169
 
2080
- <li class="missed" data-hits="0" data-linenumber="9">
2081
-
2170
+ <li class="covered" data-hits="18" data-linenumber="11">
2171
+ <span class="hits">18</span>
2082
2172
 
2083
- <code class="ruby"> self_for_comparison = self.remove_optional_keys(self)</code>
2173
+ <code class="ruby"> self_copy, other_copy = self.get_copies_for_comparison(other)</code>
2084
2174
  </li>
2085
2175
 
2086
- <li class="missed" data-hits="0" data-linenumber="10">
2087
-
2176
+ <li class="covered" data-hits="18" data-linenumber="12">
2177
+ <span class="hits">18</span>
2088
2178
 
2089
- <code class="ruby"> other_for_comparison = self.remove_optional_keys(other)</code>
2179
+ <code class="ruby"> self_copy.eql?(other_copy)</code>
2090
2180
  </li>
2091
2181
 
2092
- <li class="never" data-hits="" data-linenumber="11">
2182
+ <li class="never" data-hits="" data-linenumber="13">
2093
2183
 
2094
2184
 
2095
- <code class="ruby"></code>
2185
+ <code class="ruby"> end</code>
2096
2186
  </li>
2097
2187
 
2098
- <li class="missed" data-hits="0" data-linenumber="12">
2188
+ <li class="never" data-hits="" data-linenumber="14">
2099
2189
 
2100
2190
 
2101
- <code class="ruby"> self_for_comparison.eql?(other_for_comparison)</code>
2191
+ <code class="ruby"></code>
2102
2192
  </li>
2103
2193
 
2104
- <li class="never" data-hits="" data-linenumber="13">
2194
+ <li class="covered" data-hits="1" data-linenumber="15">
2195
+ <span class="hits">1</span>
2196
+
2197
+ <code class="ruby"> def matcher(opts = {})</code>
2198
+ </li>
2199
+
2200
+ <li class="covered" data-hits="20" data-linenumber="16">
2201
+ <span class="hits">20</span>
2202
+
2203
+ <code class="ruby"> ret = super</code>
2204
+ </li>
2205
+
2206
+ <li class="covered" data-hits="20" data-linenumber="17">
2207
+ <span class="hits">20</span>
2208
+
2209
+ <code class="ruby"> ret.optional_attributes = self.optional_attributes</code>
2210
+ </li>
2211
+
2212
+ <li class="covered" data-hits="20" data-linenumber="18">
2213
+ <span class="hits">20</span>
2214
+
2215
+ <code class="ruby"> ret</code>
2216
+ </li>
2217
+
2218
+ <li class="never" data-hits="" data-linenumber="19">
2105
2219
 
2106
2220
 
2107
2221
  <code class="ruby"> end</code>
2108
2222
  </li>
2109
2223
 
2110
- <li class="never" data-hits="" data-linenumber="14">
2224
+ <li class="never" data-hits="" data-linenumber="20">
2111
2225
 
2112
2226
 
2113
2227
  <code class="ruby"></code>
2114
2228
  </li>
2115
2229
 
2116
- <li class="covered" data-hits="1" data-linenumber="15">
2230
+ <li class="covered" data-hits="1" data-linenumber="21">
2117
2231
  <span class="hits">1</span>
2118
2232
 
2119
- <code class="ruby"> def to_hash</code>
2233
+ <code class="ruby"> def ==(other)</code>
2120
2234
  </li>
2121
2235
 
2122
- <li class="missed" data-hits="0" data-linenumber="16">
2236
+ <li class="missed" data-hits="0" data-linenumber="22">
2123
2237
 
2124
2238
 
2125
- <code class="ruby"> ret = ::Hash.new</code>
2239
+ <code class="ruby"> self_copy, other_copy = self.get_copies_for_comparison(other)</code>
2126
2240
  </li>
2127
2241
 
2128
- <li class="missed" data-hits="0" data-linenumber="17">
2242
+ <li class="missed" data-hits="0" data-linenumber="23">
2129
2243
 
2130
2244
 
2131
- <code class="ruby"> self.each_pair do |k,v|</code>
2245
+ <code class="ruby"> self_copy == other_copy</code>
2246
+ </li>
2247
+
2248
+ <li class="never" data-hits="" data-linenumber="24">
2249
+
2250
+
2251
+ <code class="ruby"> end</code>
2132
2252
  </li>
2133
2253
 
2134
- <li class="missed" data-hits="0" data-linenumber="18">
2254
+ <li class="never" data-hits="" data-linenumber="25">
2135
2255
 
2136
2256
 
2257
+ <code class="ruby"></code>
2258
+ </li>
2259
+
2260
+ <li class="covered" data-hits="1" data-linenumber="26">
2261
+ <span class="hits">1</span>
2262
+
2263
+ <code class="ruby"> def stringify_keys</code>
2264
+ </li>
2265
+
2266
+ <li class="covered" data-hits="7" data-linenumber="27">
2267
+ <span class="hits">7</span>
2268
+
2269
+ <code class="ruby"> ret = super</code>
2270
+ </li>
2271
+
2272
+ <li class="covered" data-hits="7" data-linenumber="28">
2273
+ <span class="hits">7</span>
2274
+
2275
+ <code class="ruby"> ret.optional_attributes = self.optional_attributes.collect(&amp;:to_s)</code>
2276
+ </li>
2277
+
2278
+ <li class="covered" data-hits="7" data-linenumber="29">
2279
+ <span class="hits">7</span>
2280
+
2281
+ <code class="ruby"> ret</code>
2282
+ </li>
2283
+
2284
+ <li class="never" data-hits="" data-linenumber="30">
2285
+
2286
+
2287
+ <code class="ruby"> end</code>
2288
+ </li>
2289
+
2290
+ <li class="never" data-hits="" data-linenumber="31">
2291
+
2292
+
2293
+ <code class="ruby"></code>
2294
+ </li>
2295
+
2296
+ <li class="covered" data-hits="1" data-linenumber="32">
2297
+ <span class="hits">1</span>
2298
+
2299
+ <code class="ruby"> def to_hash</code>
2300
+ </li>
2301
+
2302
+ <li class="covered" data-hits="18" data-linenumber="33">
2303
+ <span class="hits">18</span>
2304
+
2305
+ <code class="ruby"> ret = ::Hash.new</code>
2306
+ </li>
2307
+
2308
+ <li class="covered" data-hits="18" data-linenumber="34">
2309
+ <span class="hits">18</span>
2310
+
2311
+ <code class="ruby"> self.each_pair do |k,v|</code>
2312
+ </li>
2313
+
2314
+ <li class="covered" data-hits="34" data-linenumber="35">
2315
+ <span class="hits">34</span>
2316
+
2137
2317
  <code class="ruby"> ret[k] = v</code>
2138
2318
  </li>
2139
2319
 
2140
- <li class="never" data-hits="" data-linenumber="19">
2320
+ <li class="never" data-hits="" data-linenumber="36">
2141
2321
 
2142
2322
 
2143
2323
  <code class="ruby"> end</code>
2144
2324
  </li>
2145
2325
 
2146
- <li class="missed" data-hits="0" data-linenumber="20">
2147
-
2326
+ <li class="covered" data-hits="18" data-linenumber="37">
2327
+ <span class="hits">18</span>
2148
2328
 
2149
2329
  <code class="ruby"> ret</code>
2150
2330
  </li>
2151
2331
 
2152
- <li class="never" data-hits="" data-linenumber="21">
2332
+ <li class="never" data-hits="" data-linenumber="38">
2153
2333
 
2154
2334
 
2155
2335
  <code class="ruby"> end</code>
2156
2336
  </li>
2157
2337
 
2158
- <li class="never" data-hits="" data-linenumber="22">
2338
+ <li class="never" data-hits="" data-linenumber="39">
2159
2339
 
2160
2340
 
2161
2341
  <code class="ruby"></code>
2162
2342
  </li>
2163
2343
 
2164
- <li class="covered" data-hits="1" data-linenumber="23">
2344
+ <li class="covered" data-hits="1" data-linenumber="40">
2165
2345
  <span class="hits">1</span>
2166
2346
 
2167
2347
  <code class="ruby"> protected</code>
2168
2348
  </li>
2169
2349
 
2170
- <li class="never" data-hits="" data-linenumber="24">
2350
+ <li class="never" data-hits="" data-linenumber="41">
2171
2351
 
2172
2352
 
2173
2353
  <code class="ruby"></code>
2174
2354
  </li>
2175
2355
 
2176
- <li class="covered" data-hits="1" data-linenumber="25">
2356
+ <li class="covered" data-hits="1" data-linenumber="42">
2177
2357
  <span class="hits">1</span>
2178
2358
 
2179
- <code class="ruby"> def remove_optional_keys(hash)</code>
2359
+ <code class="ruby"> def get_copies_for_comparison(other)</code>
2180
2360
  </li>
2181
2361
 
2182
- <li class="missed" data-hits="0" data-linenumber="26">
2362
+ <li class="covered" data-hits="18" data-linenumber="43">
2363
+ <span class="hits">18</span>
2183
2364
 
2365
+ <code class="ruby"> [self.remove_optional_keys(self), self.remove_optional_keys(other)]</code>
2366
+ </li>
2367
+
2368
+ <li class="never" data-hits="" data-linenumber="44">
2184
2369
 
2185
- <code class="ruby"> hash = hash.clone.to_hash</code>
2370
+
2371
+ <code class="ruby"> end</code>
2186
2372
  </li>
2187
2373
 
2188
- <li class="missed" data-hits="0" data-linenumber="27">
2374
+ <li class="never" data-hits="" data-linenumber="45">
2189
2375
 
2190
2376
 
2191
- <code class="ruby"> @optional_attributes.each do |optional_attribute|</code>
2377
+ <code class="ruby"></code>
2192
2378
  </li>
2193
2379
 
2194
- <li class="missed" data-hits="0" data-linenumber="28">
2380
+ <li class="covered" data-hits="1" data-linenumber="46">
2381
+ <span class="hits">1</span>
2195
2382
 
2383
+ <code class="ruby"> def remove_optional_keys(hash)</code>
2384
+ </li>
2385
+
2386
+ <li class="covered" data-hits="36" data-linenumber="47">
2387
+ <span class="hits">36</span>
2388
+
2389
+ <code class="ruby"> hash = hash.clone.to_hash</code>
2390
+ </li>
2391
+
2392
+ <li class="covered" data-hits="36" data-linenumber="48">
2393
+ <span class="hits">36</span>
2394
+
2395
+ <code class="ruby"> @optional_attributes.each do |optional_attribute|</code>
2396
+ </li>
2397
+
2398
+ <li class="covered" data-hits="20" data-linenumber="49">
2399
+ <span class="hits">20</span>
2196
2400
 
2197
2401
  <code class="ruby"> hash.delete(optional_attribute)</code>
2198
2402
  </li>
2199
2403
 
2200
- <li class="never" data-hits="" data-linenumber="29">
2404
+ <li class="never" data-hits="" data-linenumber="50">
2201
2405
 
2202
2406
 
2203
2407
  <code class="ruby"> end</code>
2204
2408
  </li>
2205
2409
 
2206
- <li class="missed" data-hits="0" data-linenumber="30">
2207
-
2410
+ <li class="covered" data-hits="36" data-linenumber="51">
2411
+ <span class="hits">36</span>
2208
2412
 
2209
2413
  <code class="ruby"> hash</code>
2210
2414
  </li>
2211
2415
 
2212
- <li class="never" data-hits="" data-linenumber="31">
2416
+ <li class="never" data-hits="" data-linenumber="52">
2213
2417
 
2214
2418
 
2215
2419
  <code class="ruby"> end</code>
2216
2420
  </li>
2217
2421
 
2218
- <li class="never" data-hits="" data-linenumber="32">
2422
+ <li class="never" data-hits="" data-linenumber="53">
2219
2423
 
2220
2424
 
2221
2425
  <code class="ruby"></code>
2222
2426
  </li>
2223
2427
 
2224
- <li class="never" data-hits="" data-linenumber="33">
2428
+ <li class="never" data-hits="" data-linenumber="54">
2225
2429
 
2226
2430
 
2227
2431
  <code class="ruby"> end</code>
2228
2432
  </li>
2229
2433
 
2230
- <li class="never" data-hits="" data-linenumber="34">
2434
+ <li class="never" data-hits="" data-linenumber="55">
2231
2435
 
2232
2436
 
2233
2437
  <code class="ruby">end</code>
@@ -2240,11 +2444,11 @@
2240
2444
  <div class="source_table" id="9082f1e417147c61ee326c565b15a99cad953b35">
2241
2445
  <div class="header">
2242
2446
  <h3>lib/hash_dealer.rb</h3>
2243
- <h4><span class="red">39.58 %</span> covered</h4>
2447
+ <h4><span class="green">95.83 %</span> covered</h4>
2244
2448
  <div>
2245
2449
  <b>48</b> relevant lines.
2246
- <span class="green"><b>19</b> lines covered</span> and
2247
- <span class="red"><b>29</b> lines missed.</span>
2450
+ <span class="green"><b>46</b> lines covered</span> and
2451
+ <span class="red"><b>2</b> lines missed.</span>
2248
2452
  </div>
2249
2453
  </div>
2250
2454
 
@@ -2347,8 +2551,8 @@
2347
2551
  <code class="ruby"> def self.hashes</code>
2348
2552
  </li>
2349
2553
 
2350
- <li class="missed" data-hits="0" data-linenumber="17">
2351
-
2554
+ <li class="covered" data-hits="240" data-linenumber="17">
2555
+ <span class="hits">240</span>
2352
2556
 
2353
2557
  <code class="ruby"> @hashes ||= {}</code>
2354
2558
  </li>
@@ -2377,8 +2581,8 @@
2377
2581
  <code class="ruby"> def self.define(name, opts = {}, &amp;block)</code>
2378
2582
  </li>
2379
2583
 
2380
- <li class="missed" data-hits="0" data-linenumber="22">
2381
-
2584
+ <li class="covered" data-hits="27" data-linenumber="22">
2585
+ <span class="hits">27</span>
2382
2586
 
2383
2587
  <code class="ruby"> self.hashes[name] = [opts, block]</code>
2384
2588
  </li>
@@ -2401,14 +2605,14 @@
2401
2605
  <code class="ruby"> def self.roll(name, overrides = {})</code>
2402
2606
  </li>
2403
2607
 
2404
- <li class="missed" data-hits="0" data-linenumber="26">
2405
-
2608
+ <li class="covered" data-hits="44" data-linenumber="26">
2609
+ <span class="hits">44</span>
2406
2610
 
2407
2611
  <code class="ruby"> raise Exception.new(&quot;No HashDealer called #{name}&quot;) unless self.hashes[name]</code>
2408
2612
  </li>
2409
2613
 
2410
- <li class="missed" data-hits="0" data-linenumber="27">
2411
-
2614
+ <li class="covered" data-hits="44" data-linenumber="27">
2615
+ <span class="hits">44</span>
2412
2616
 
2413
2617
  <code class="ruby"> self.hashes[name] = self.new(self.hashes[name][0], &amp;self.hashes[name][1]) unless self.hashes[name].is_a?(HashDealer)</code>
2414
2618
  </li>
@@ -2419,8 +2623,8 @@
2419
2623
  <code class="ruby"></code>
2420
2624
  </li>
2421
2625
 
2422
- <li class="missed" data-hits="0" data-linenumber="29">
2423
-
2626
+ <li class="covered" data-hits="44" data-linenumber="29">
2627
+ <span class="hits">44</span>
2424
2628
 
2425
2629
  <code class="ruby"> self.hashes[name]._attributes(overrides)</code>
2426
2630
  </li>
@@ -2449,20 +2653,20 @@
2449
2653
  <code class="ruby"> def initialize(opts = {}, &amp;block)</code>
2450
2654
  </li>
2451
2655
 
2452
- <li class="missed" data-hits="0" data-linenumber="34">
2453
-
2656
+ <li class="covered" data-hits="27" data-linenumber="34">
2657
+ <span class="hits">27</span>
2454
2658
 
2455
2659
  <code class="ruby"> @parent = opts[:parent]</code>
2456
2660
  </li>
2457
2661
 
2458
- <li class="missed" data-hits="0" data-linenumber="35">
2459
-
2662
+ <li class="covered" data-hits="27" data-linenumber="35">
2663
+ <span class="hits">27</span>
2460
2664
 
2461
2665
  <code class="ruby"> @optional_attributes = []</code>
2462
2666
  </li>
2463
2667
 
2464
- <li class="missed" data-hits="0" data-linenumber="36">
2465
-
2668
+ <li class="covered" data-hits="27" data-linenumber="36">
2669
+ <span class="hits">27</span>
2466
2670
 
2467
2671
  <code class="ruby"> instance_eval(&amp;block)</code>
2468
2672
  </li>
@@ -2491,8 +2695,8 @@
2491
2695
  <code class="ruby"> def root(value)</code>
2492
2696
  </li>
2493
2697
 
2494
- <li class="missed" data-hits="0" data-linenumber="41">
2495
-
2698
+ <li class="covered" data-hits="3" data-linenumber="41">
2699
+ <span class="hits">3</span>
2496
2700
 
2497
2701
  <code class="ruby"> @attributes = value</code>
2498
2702
  </li>
@@ -2551,8 +2755,8 @@
2551
2755
  <code class="ruby"> # allows us to set a root value</code>
2552
2756
  </li>
2553
2757
 
2554
- <li class="missed" data-hits="0" data-linenumber="51">
2555
-
2758
+ <li class="covered" data-hits="44" data-linenumber="51">
2759
+ <span class="hits">44</span>
2556
2760
 
2557
2761
  <code class="ruby"> return @attributes.clone unless @attributes.is_a?(Hash)</code>
2558
2762
  </li>
@@ -2563,14 +2767,14 @@
2563
2767
  <code class="ruby"></code>
2564
2768
  </li>
2565
2769
 
2566
- <li class="missed" data-hits="0" data-linenumber="53">
2567
-
2770
+ <li class="covered" data-hits="40" data-linenumber="53">
2771
+ <span class="hits">40</span>
2568
2772
 
2569
2773
  <code class="ruby"> if @parent.present?</code>
2570
2774
  </li>
2571
2775
 
2572
- <li class="missed" data-hits="0" data-linenumber="54">
2573
-
2776
+ <li class="covered" data-hits="2" data-linenumber="54">
2777
+ <span class="hits">2</span>
2574
2778
 
2575
2779
  <code class="ruby"> att = HashDealer.roll(@parent.to_sym)</code>
2576
2780
  </li>
@@ -2581,8 +2785,8 @@
2581
2785
  <code class="ruby"> else</code>
2582
2786
  </li>
2583
2787
 
2584
- <li class="missed" data-hits="0" data-linenumber="56">
2585
-
2788
+ <li class="covered" data-hits="38" data-linenumber="56">
2789
+ <span class="hits">38</span>
2586
2790
 
2587
2791
  <code class="ruby"> att = HashDealer::Hash.new(self.optional_attributes)</code>
2588
2792
  </li>
@@ -2599,14 +2803,14 @@
2599
2803
  <code class="ruby"></code>
2600
2804
  </li>
2601
2805
 
2602
- <li class="missed" data-hits="0" data-linenumber="59">
2603
-
2806
+ <li class="covered" data-hits="40" data-linenumber="59">
2807
+ <span class="hits">40</span>
2604
2808
 
2605
2809
  <code class="ruby"> @attributes.each do |k,v|</code>
2606
2810
  </li>
2607
2811
 
2608
- <li class="missed" data-hits="0" data-linenumber="60">
2609
-
2812
+ <li class="covered" data-hits="66" data-linenumber="60">
2813
+ <span class="hits">66</span>
2610
2814
 
2611
2815
  <code class="ruby"> att[k] = v.is_a?(Proc) ? v.call(att.merge(overrides)) : v</code>
2612
2816
  </li>
@@ -2623,14 +2827,14 @@
2623
2827
  <code class="ruby"> # if we have a hash as the first arg, it would override the attributes</code>
2624
2828
  </li>
2625
2829
 
2626
- <li class="missed" data-hits="0" data-linenumber="63">
2627
-
2830
+ <li class="covered" data-hits="40" data-linenumber="63">
2831
+ <span class="hits">40</span>
2628
2832
 
2629
2833
  <code class="ruby"> overrides.each_pair do |k,v|</code>
2630
2834
  </li>
2631
2835
 
2632
- <li class="missed" data-hits="0" data-linenumber="64">
2633
-
2836
+ <li class="covered" data-hits="2" data-linenumber="64">
2837
+ <span class="hits">2</span>
2634
2838
 
2635
2839
  <code class="ruby"> att[k.to_sym] = v if att.has_key?(k.to_sym)</code>
2636
2840
  </li>
@@ -2641,8 +2845,8 @@
2641
2845
  <code class="ruby"> end</code>
2642
2846
  </li>
2643
2847
 
2644
- <li class="missed" data-hits="0" data-linenumber="66">
2645
-
2848
+ <li class="covered" data-hits="40" data-linenumber="66">
2849
+ <span class="hits">40</span>
2646
2850
 
2647
2851
  <code class="ruby"> att</code>
2648
2852
  </li>
@@ -2689,8 +2893,8 @@
2689
2893
  <code class="ruby"></code>
2690
2894
  </li>
2691
2895
 
2692
- <li class="missed" data-hits="0" data-linenumber="74">
2693
-
2896
+ <li class="covered" data-hits="39" data-linenumber="74">
2897
+ <span class="hits">39</span>
2694
2898
 
2695
2899
  <code class="ruby"> unless args.length &gt; 0 || block_given?</code>
2696
2900
  </li>
@@ -2725,8 +2929,8 @@
2725
2929
  <code class="ruby"> # a second arg is the options hash</code>
2726
2930
  </li>
2727
2931
 
2728
- <li class="missed" data-hits="0" data-linenumber="80">
2729
-
2932
+ <li class="covered" data-hits="39" data-linenumber="80">
2933
+ <span class="hits">39</span>
2730
2934
 
2731
2935
  <code class="ruby"> opts = args[1] || {}</code>
2732
2936
  </li>
@@ -2743,8 +2947,8 @@
2743
2947
  <code class="ruby"> # the value is the first arg</code>
2744
2948
  </li>
2745
2949
 
2746
- <li class="missed" data-hits="0" data-linenumber="83">
2747
-
2950
+ <li class="covered" data-hits="39" data-linenumber="83">
2951
+ <span class="hits">39</span>
2748
2952
 
2749
2953
  <code class="ruby"> value = args[0]</code>
2750
2954
  </li>
@@ -2755,14 +2959,14 @@
2755
2959
  <code class="ruby"> </code>
2756
2960
  </li>
2757
2961
 
2758
- <li class="missed" data-hits="0" data-linenumber="85">
2759
-
2962
+ <li class="covered" data-hits="39" data-linenumber="85">
2963
+ <span class="hits">39</span>
2760
2964
 
2761
2965
  <code class="ruby"> if opts[:optional]</code>
2762
2966
  </li>
2763
2967
 
2764
- <li class="missed" data-hits="0" data-linenumber="86">
2765
-
2968
+ <li class="covered" data-hits="3" data-linenumber="86">
2969
+ <span class="hits">3</span>
2766
2970
 
2767
2971
  <code class="ruby"> @optional_attributes &lt;&lt; meth.to_sym</code>
2768
2972
  </li>
@@ -2779,8 +2983,8 @@
2779
2983
  <code class="ruby"></code>
2780
2984
  </li>
2781
2985
 
2782
- <li class="missed" data-hits="0" data-linenumber="89">
2783
-
2986
+ <li class="covered" data-hits="39" data-linenumber="89">
2987
+ <span class="hits">39</span>
2784
2988
 
2785
2989
  <code class="ruby"> @attributes ||= Hash.new</code>
2786
2990
  </li>
@@ -2791,14 +2995,14 @@
2791
2995
  <code class="ruby"> </code>
2792
2996
  </li>
2793
2997
 
2794
- <li class="missed" data-hits="0" data-linenumber="91">
2795
-
2998
+ <li class="covered" data-hits="39" data-linenumber="91">
2999
+ <span class="hits">39</span>
2796
3000
 
2797
3001
  <code class="ruby"> if block_given?</code>
2798
3002
  </li>
2799
3003
 
2800
- <li class="missed" data-hits="0" data-linenumber="92">
2801
-
3004
+ <li class="covered" data-hits="5" data-linenumber="92">
3005
+ <span class="hits">5</span>
2802
3006
 
2803
3007
  <code class="ruby"> @attributes[meth.to_sym] = block</code>
2804
3008
  </li>
@@ -2809,8 +3013,8 @@
2809
3013
  <code class="ruby"> else</code>
2810
3014
  </li>
2811
3015
 
2812
- <li class="missed" data-hits="0" data-linenumber="94">
2813
-
3016
+ <li class="covered" data-hits="34" data-linenumber="94">
3017
+ <span class="hits">34</span>
2814
3018
 
2815
3019
  <code class="ruby"> @attributes[meth.to_sym] = value</code>
2816
3020
  </li>
@@ -2840,11 +3044,11 @@
2840
3044
  <div class="source_table" id="4cc7721b735165eef9b1e5afd4a168c1a72d5103">
2841
3045
  <div class="header">
2842
3046
  <h3>lib/matcher.rb</h3>
2843
- <h4><span class="red">11.63 %</span> covered</h4>
3047
+ <h4><span class="red">48.84 %</span> covered</h4>
2844
3048
  <div>
2845
3049
  <b>43</b> relevant lines.
2846
- <span class="green"><b>5</b> lines covered</span> and
2847
- <span class="red"><b>38</b> lines missed.</span>
3050
+ <span class="green"><b>21</b> lines covered</span> and
3051
+ <span class="red"><b>22</b> lines missed.</span>
2848
3052
  </div>
2849
3053
  </div>
2850
3054
 
@@ -2953,313 +3157,307 @@
2953
3157
  <code class="ruby">RSpec::Matchers.define(:match_response) do |actual|</code>
2954
3158
  </li>
2955
3159
 
2956
- <li class="never" data-hits="" data-linenumber="18">
2957
-
2958
-
2959
- <code class="ruby"> </code>
2960
- </li>
2961
-
2962
- <li class="missed" data-hits="0" data-linenumber="19">
2963
-
3160
+ <li class="covered" data-hits="13" data-linenumber="18">
3161
+ <span class="hits">13</span>
2964
3162
 
2965
3163
  <code class="ruby"> actual = Comparator.normalize_value(actual)</code>
2966
3164
  </li>
2967
3165
 
2968
- <li class="never" data-hits="" data-linenumber="20">
3166
+ <li class="never" data-hits="" data-linenumber="19">
2969
3167
 
2970
3168
 
2971
3169
  <code class="ruby"> </code>
2972
3170
  </li>
2973
3171
 
2974
- <li class="missed" data-hits="0" data-linenumber="21">
2975
-
3172
+ <li class="covered" data-hits="13" data-linenumber="20">
3173
+ <span class="hits">13</span>
2976
3174
 
2977
3175
  <code class="ruby"> match do |expected|</code>
2978
3176
  </li>
2979
3177
 
2980
- <li class="missed" data-hits="0" data-linenumber="22">
2981
-
3178
+ <li class="covered" data-hits="13" data-linenumber="21">
3179
+ <span class="hits">13</span>
2982
3180
 
2983
3181
  <code class="ruby"> expected = Comparator.normalize_value(expected)</code>
2984
3182
  </li>
2985
3183
 
2986
- <li class="missed" data-hits="0" data-linenumber="23">
2987
-
3184
+ <li class="covered" data-hits="13" data-linenumber="22">
3185
+ <span class="hits">13</span>
2988
3186
 
2989
3187
  <code class="ruby"> @diff = Comparator.diff(actual, expected)</code>
2990
3188
  </li>
2991
3189
 
2992
- <li class="missed" data-hits="0" data-linenumber="24">
2993
-
3190
+ <li class="covered" data-hits="13" data-linenumber="23">
3191
+ <span class="hits">13</span>
2994
3192
 
2995
3193
  <code class="ruby"> @diff == {}</code>
2996
3194
  </li>
2997
3195
 
2998
- <li class="never" data-hits="" data-linenumber="25">
3196
+ <li class="never" data-hits="" data-linenumber="24">
2999
3197
 
3000
3198
 
3001
3199
  <code class="ruby"> end</code>
3002
3200
  </li>
3003
3201
 
3004
- <li class="never" data-hits="" data-linenumber="26">
3202
+ <li class="never" data-hits="" data-linenumber="25">
3005
3203
 
3006
3204
 
3007
3205
  <code class="ruby"> </code>
3008
3206
  </li>
3009
3207
 
3010
- <li class="missed" data-hits="0" data-linenumber="27">
3011
-
3208
+ <li class="covered" data-hits="13" data-linenumber="26">
3209
+ <span class="hits">13</span>
3012
3210
 
3013
3211
  <code class="ruby"> failure_message_for_should do |container|</code>
3014
3212
  </li>
3015
3213
 
3016
- <li class="missed" data-hits="0" data-linenumber="28">
3214
+ <li class="missed" data-hits="0" data-linenumber="27">
3017
3215
 
3018
3216
 
3019
3217
  <code class="ruby"> puts &quot;\n&quot;</code>
3020
3218
  </li>
3021
3219
 
3022
- <li class="missed" data-hits="0" data-linenumber="29">
3220
+ <li class="missed" data-hits="0" data-linenumber="28">
3023
3221
 
3024
3222
 
3025
3223
  <code class="ruby"> print_diff(@diff)</code>
3026
3224
  </li>
3027
3225
 
3028
- <li class="missed" data-hits="0" data-linenumber="30">
3226
+ <li class="missed" data-hits="0" data-linenumber="29">
3029
3227
 
3030
3228
 
3031
3229
  <code class="ruby"> puts &quot;\n&quot;</code>
3032
3230
  </li>
3033
3231
 
3034
- <li class="missed" data-hits="0" data-linenumber="31">
3232
+ <li class="missed" data-hits="0" data-linenumber="30">
3035
3233
 
3036
3234
 
3037
3235
  <code class="ruby"> &quot;&quot;</code>
3038
3236
  </li>
3039
3237
 
3040
- <li class="never" data-hits="" data-linenumber="32">
3238
+ <li class="never" data-hits="" data-linenumber="31">
3041
3239
 
3042
3240
 
3043
3241
  <code class="ruby"> end</code>
3044
3242
  </li>
3045
3243
 
3046
- <li class="never" data-hits="" data-linenumber="33">
3244
+ <li class="never" data-hits="" data-linenumber="32">
3047
3245
 
3048
3246
 
3049
3247
  <code class="ruby"> </code>
3050
3248
  </li>
3051
3249
 
3052
- <li class="missed" data-hits="0" data-linenumber="34">
3053
-
3250
+ <li class="covered" data-hits="13" data-linenumber="33">
3251
+ <span class="hits">13</span>
3054
3252
 
3055
3253
  <code class="ruby"> failure_message_for_should_not do |container|</code>
3056
3254
  </li>
3057
3255
 
3058
- <li class="missed" data-hits="0" data-linenumber="35">
3256
+ <li class="missed" data-hits="0" data-linenumber="34">
3059
3257
 
3060
3258
 
3061
3259
  <code class="ruby"> puts &quot;\n&quot;</code>
3062
3260
  </li>
3063
3261
 
3064
- <li class="missed" data-hits="0" data-linenumber="36">
3262
+ <li class="missed" data-hits="0" data-linenumber="35">
3065
3263
 
3066
3264
 
3067
3265
  <code class="ruby"> print_diff(@diff)</code>
3068
3266
  </li>
3069
3267
 
3070
- <li class="missed" data-hits="0" data-linenumber="37">
3268
+ <li class="missed" data-hits="0" data-linenumber="36">
3071
3269
 
3072
3270
 
3073
3271
  <code class="ruby"> puts &quot;\n&quot;</code>
3074
3272
  </li>
3075
3273
 
3076
- <li class="missed" data-hits="0" data-linenumber="38">
3274
+ <li class="missed" data-hits="0" data-linenumber="37">
3077
3275
 
3078
3276
 
3079
3277
  <code class="ruby"> &quot;&quot;</code>
3080
3278
  </li>
3081
3279
 
3082
- <li class="never" data-hits="" data-linenumber="39">
3280
+ <li class="never" data-hits="" data-linenumber="38">
3083
3281
 
3084
3282
 
3085
3283
  <code class="ruby"> end</code>
3086
3284
  </li>
3087
3285
 
3088
- <li class="never" data-hits="" data-linenumber="40">
3286
+ <li class="never" data-hits="" data-linenumber="39">
3089
3287
 
3090
3288
 
3091
3289
  <code class="ruby">end</code>
3092
3290
  </li>
3093
3291
 
3094
- <li class="never" data-hits="" data-linenumber="41">
3292
+ <li class="never" data-hits="" data-linenumber="40">
3095
3293
 
3096
3294
 
3097
3295
  <code class="ruby"></code>
3098
3296
  </li>
3099
3297
 
3100
- <li class="never" data-hits="" data-linenumber="42">
3298
+ <li class="never" data-hits="" data-linenumber="41">
3101
3299
 
3102
3300
 
3103
3301
  <code class="ruby"># alias as match_json</code>
3104
3302
  </li>
3105
3303
 
3106
- <li class="covered" data-hits="1" data-linenumber="43">
3304
+ <li class="covered" data-hits="1" data-linenumber="42">
3107
3305
  <span class="hits">1</span>
3108
3306
 
3109
3307
  <code class="ruby">RSpec::Matchers.define(:match_list) do |actual|</code>
3110
3308
  </li>
3111
3309
 
3112
- <li class="never" data-hits="" data-linenumber="44">
3310
+ <li class="never" data-hits="" data-linenumber="43">
3113
3311
 
3114
3312
 
3115
3313
  <code class="ruby"> </code>
3116
3314
  </li>
3117
3315
 
3118
- <li class="missed" data-hits="0" data-linenumber="45">
3119
-
3316
+ <li class="covered" data-hits="2" data-linenumber="44">
3317
+ <span class="hits">2</span>
3120
3318
 
3121
3319
  <code class="ruby"> actual = Comparator.normalize_value(actual)</code>
3122
3320
  </li>
3123
3321
 
3124
- <li class="never" data-hits="" data-linenumber="46">
3322
+ <li class="never" data-hits="" data-linenumber="45">
3125
3323
 
3126
3324
 
3127
3325
  <code class="ruby"> </code>
3128
3326
  </li>
3129
3327
 
3130
- <li class="missed" data-hits="0" data-linenumber="47">
3131
-
3328
+ <li class="covered" data-hits="2" data-linenumber="46">
3329
+ <span class="hits">2</span>
3132
3330
 
3133
3331
  <code class="ruby"> match do |expected|</code>
3134
3332
  </li>
3135
3333
 
3136
- <li class="missed" data-hits="0" data-linenumber="48">
3137
-
3334
+ <li class="covered" data-hits="2" data-linenumber="47">
3335
+ <span class="hits">2</span>
3138
3336
 
3139
3337
  <code class="ruby"> expected = Comparator.normalize_value(expected)</code>
3140
3338
  </li>
3141
3339
 
3142
- <li class="missed" data-hits="0" data-linenumber="49">
3143
-
3340
+ <li class="covered" data-hits="2" data-linenumber="48">
3341
+ <span class="hits">2</span>
3144
3342
 
3145
3343
  <code class="ruby"> expected = expected.first if expected.is_a?(Array)</code>
3146
3344
  </li>
3147
3345
 
3148
- <li class="missed" data-hits="0" data-linenumber="50">
3149
-
3346
+ <li class="covered" data-hits="2" data-linenumber="49">
3347
+ <span class="hits">2</span>
3150
3348
 
3151
3349
  <code class="ruby"> actual = actual.first if actual.is_a?(Array)</code>
3152
3350
  </li>
3153
3351
 
3154
- <li class="missed" data-hits="0" data-linenumber="51">
3155
-
3352
+ <li class="covered" data-hits="2" data-linenumber="50">
3353
+ <span class="hits">2</span>
3156
3354
 
3157
3355
  <code class="ruby"> @diff = Comparator.diff(actual, expected)</code>
3158
3356
  </li>
3159
3357
 
3160
- <li class="missed" data-hits="0" data-linenumber="52">
3161
-
3358
+ <li class="covered" data-hits="2" data-linenumber="51">
3359
+ <span class="hits">2</span>
3162
3360
 
3163
3361
  <code class="ruby"> @diff == {}</code>
3164
3362
  </li>
3165
3363
 
3166
- <li class="never" data-hits="" data-linenumber="53">
3364
+ <li class="never" data-hits="" data-linenumber="52">
3167
3365
 
3168
3366
 
3169
3367
  <code class="ruby"> end</code>
3170
3368
  </li>
3171
3369
 
3172
- <li class="never" data-hits="" data-linenumber="54">
3370
+ <li class="never" data-hits="" data-linenumber="53">
3173
3371
 
3174
3372
 
3175
3373
  <code class="ruby"> </code>
3176
3374
  </li>
3177
3375
 
3178
- <li class="missed" data-hits="0" data-linenumber="55">
3179
-
3376
+ <li class="covered" data-hits="2" data-linenumber="54">
3377
+ <span class="hits">2</span>
3180
3378
 
3181
3379
  <code class="ruby"> failure_message_for_should do |container|</code>
3182
3380
  </li>
3183
3381
 
3184
- <li class="missed" data-hits="0" data-linenumber="56">
3382
+ <li class="missed" data-hits="0" data-linenumber="55">
3185
3383
 
3186
3384
 
3187
3385
  <code class="ruby"> puts &quot;\n&quot;</code>
3188
3386
  </li>
3189
3387
 
3190
- <li class="missed" data-hits="0" data-linenumber="57">
3388
+ <li class="missed" data-hits="0" data-linenumber="56">
3191
3389
 
3192
3390
 
3193
3391
  <code class="ruby"> print_diff(@diff)</code>
3194
3392
  </li>
3195
3393
 
3196
- <li class="missed" data-hits="0" data-linenumber="58">
3394
+ <li class="missed" data-hits="0" data-linenumber="57">
3197
3395
 
3198
3396
 
3199
3397
  <code class="ruby"> puts &quot;\n&quot;</code>
3200
3398
  </li>
3201
3399
 
3202
- <li class="missed" data-hits="0" data-linenumber="59">
3400
+ <li class="missed" data-hits="0" data-linenumber="58">
3203
3401
 
3204
3402
 
3205
3403
  <code class="ruby"> &quot;&quot;</code>
3206
3404
  </li>
3207
3405
 
3208
- <li class="never" data-hits="" data-linenumber="60">
3406
+ <li class="never" data-hits="" data-linenumber="59">
3209
3407
 
3210
3408
 
3211
3409
  <code class="ruby"> end</code>
3212
3410
  </li>
3213
3411
 
3214
- <li class="never" data-hits="" data-linenumber="61">
3412
+ <li class="never" data-hits="" data-linenumber="60">
3215
3413
 
3216
3414
 
3217
3415
  <code class="ruby"> </code>
3218
3416
  </li>
3219
3417
 
3220
- <li class="missed" data-hits="0" data-linenumber="62">
3221
-
3418
+ <li class="covered" data-hits="2" data-linenumber="61">
3419
+ <span class="hits">2</span>
3222
3420
 
3223
3421
  <code class="ruby"> failure_message_for_should_not do |container|</code>
3224
3422
  </li>
3225
3423
 
3226
- <li class="missed" data-hits="0" data-linenumber="63">
3424
+ <li class="missed" data-hits="0" data-linenumber="62">
3227
3425
 
3228
3426
 
3229
3427
  <code class="ruby"> puts &quot;\n&quot;</code>
3230
3428
  </li>
3231
3429
 
3232
- <li class="missed" data-hits="0" data-linenumber="64">
3430
+ <li class="missed" data-hits="0" data-linenumber="63">
3233
3431
 
3234
3432
 
3235
3433
  <code class="ruby"> print_diff(@diff)</code>
3236
3434
  </li>
3237
3435
 
3238
- <li class="missed" data-hits="0" data-linenumber="65">
3436
+ <li class="missed" data-hits="0" data-linenumber="64">
3239
3437
 
3240
3438
 
3241
3439
  <code class="ruby"> puts &quot;\n&quot;</code>
3242
3440
  </li>
3243
3441
 
3244
- <li class="missed" data-hits="0" data-linenumber="66">
3442
+ <li class="missed" data-hits="0" data-linenumber="65">
3245
3443
 
3246
3444
 
3247
3445
  <code class="ruby"> &quot;&quot;</code>
3248
3446
  </li>
3249
3447
 
3250
- <li class="never" data-hits="" data-linenumber="67">
3448
+ <li class="never" data-hits="" data-linenumber="66">
3251
3449
 
3252
3450
 
3253
3451
  <code class="ruby"> end</code>
3254
3452
  </li>
3255
3453
 
3256
- <li class="never" data-hits="" data-linenumber="68">
3454
+ <li class="never" data-hits="" data-linenumber="67">
3257
3455
 
3258
3456
 
3259
3457
  <code class="ruby"> </code>
3260
3458
  </li>
3261
3459
 
3262
- <li class="never" data-hits="" data-linenumber="69">
3460
+ <li class="never" data-hits="" data-linenumber="68">
3263
3461
 
3264
3462
 
3265
3463
  <code class="ruby">end</code>
@@ -3272,11 +3470,11 @@
3272
3470
  <div class="source_table" id="a262d63e5dc399019853b13f0e4b947eb9908f86">
3273
3471
  <div class="header">
3274
3472
  <h3>lib/path_string.rb</h3>
3275
- <h4><span class="red">18.84 %</span> covered</h4>
3473
+ <h4><span class="red">69.57 %</span> covered</h4>
3276
3474
  <div>
3277
3475
  <b>69</b> relevant lines.
3278
- <span class="green"><b>13</b> lines covered</span> and
3279
- <span class="red"><b>56</b> lines missed.</span>
3476
+ <span class="green"><b>48</b> lines covered</span> and
3477
+ <span class="red"><b>21</b> lines missed.</span>
3280
3478
  </div>
3281
3479
  </div>
3282
3480
 
@@ -3319,26 +3517,26 @@
3319
3517
  <code class="ruby"> # if either is a string that starts with a :, return true</code>
3320
3518
  </li>
3321
3519
 
3322
- <li class="missed" data-hits="0" data-linenumber="7">
3323
-
3520
+ <li class="covered" data-hits="57" data-linenumber="7">
3521
+ <span class="hits">57</span>
3324
3522
 
3325
3523
  <code class="ruby"> if self =~ /^:/ || (other.is_a?(Numeric) &amp;&amp; self =~ /^:\d+$/) || other =~ /^:/</code>
3326
3524
  </li>
3327
3525
 
3328
- <li class="missed" data-hits="0" data-linenumber="8">
3329
-
3526
+ <li class="covered" data-hits="37" data-linenumber="8">
3527
+ <span class="hits">37</span>
3330
3528
 
3331
3529
  <code class="ruby"> return true</code>
3332
3530
  </li>
3333
3531
 
3334
- <li class="missed" data-hits="0" data-linenumber="9">
3335
-
3532
+ <li class="covered" data-hits="20" data-linenumber="9">
3533
+ <span class="hits">20</span>
3336
3534
 
3337
3535
  <code class="ruby"> elsif self =~ /\/:/ || other =~ /\/:/</code>
3338
3536
  </li>
3339
3537
 
3340
- <li class="missed" data-hits="0" data-linenumber="10">
3341
-
3538
+ <li class="covered" data-hits="1" data-linenumber="10">
3539
+ <span class="hits">1</span>
3342
3540
 
3343
3541
  <code class="ruby"> return self.class.paths_match?(self, other)</code>
3344
3542
  </li>
@@ -3349,8 +3547,8 @@
3349
3547
  <code class="ruby"> else</code>
3350
3548
  </li>
3351
3549
 
3352
- <li class="missed" data-hits="0" data-linenumber="12">
3353
-
3550
+ <li class="covered" data-hits="19" data-linenumber="12">
3551
+ <span class="hits">19</span>
3354
3552
 
3355
3553
  <code class="ruby"> super</code>
3356
3554
  </li>
@@ -3385,8 +3583,8 @@
3385
3583
  <code class="ruby"> def self.paths_match?(a, b)</code>
3386
3584
  </li>
3387
3585
 
3388
- <li class="missed" data-hits="0" data-linenumber="18">
3389
-
3586
+ <li class="covered" data-hits="2" data-linenumber="18">
3587
+ <span class="hits">2</span>
3390
3588
 
3391
3589
  <code class="ruby"> self.get_zipped_array(a, b).each do |kp, ep|</code>
3392
3590
  </li>
@@ -3397,8 +3595,8 @@
3397
3595
  <code class="ruby"> # only known path can have things prefixed with colons which is protected</code>
3398
3596
  </li>
3399
3597
 
3400
- <li class="missed" data-hits="0" data-linenumber="20">
3401
-
3598
+ <li class="covered" data-hits="6" data-linenumber="20">
3599
+ <span class="hits">6</span>
3402
3600
 
3403
3601
  <code class="ruby"> if kp.nil? || ep.nil?</code>
3404
3602
  </li>
@@ -3433,8 +3631,8 @@
3433
3631
  <code class="ruby"> end</code>
3434
3632
  </li>
3435
3633
 
3436
- <li class="missed" data-hits="0" data-linenumber="26">
3437
-
3634
+ <li class="covered" data-hits="2" data-linenumber="26">
3635
+ <span class="hits">2</span>
3438
3636
 
3439
3637
  <code class="ruby"> return true</code>
3440
3638
  </li>
@@ -3457,20 +3655,20 @@
3457
3655
  <code class="ruby"> def self.as_sorted_json(val)</code>
3458
3656
  </li>
3459
3657
 
3460
- <li class="missed" data-hits="0" data-linenumber="30">
3461
-
3658
+ <li class="covered" data-hits="6" data-linenumber="30">
3659
+ <span class="hits">6</span>
3462
3660
 
3463
3661
  <code class="ruby"> val = self.sort_json(val)</code>
3464
3662
  </li>
3465
3663
 
3466
- <li class="missed" data-hits="0" data-linenumber="31">
3467
-
3664
+ <li class="covered" data-hits="6" data-linenumber="31">
3665
+ <span class="hits">6</span>
3468
3666
 
3469
3667
  <code class="ruby"> val = val.pathify_strings</code>
3470
3668
  </li>
3471
3669
 
3472
- <li class="missed" data-hits="0" data-linenumber="32">
3473
-
3670
+ <li class="covered" data-hits="6" data-linenumber="32">
3671
+ <span class="hits">6</span>
3474
3672
 
3475
3673
  <code class="ruby"> val</code>
3476
3674
  </li>
@@ -3499,32 +3697,32 @@
3499
3697
  <code class="ruby"> def self.sort_json(val)</code>
3500
3698
  </li>
3501
3699
 
3502
- <li class="missed" data-hits="0" data-linenumber="37">
3503
-
3700
+ <li class="covered" data-hits="8" data-linenumber="37">
3701
+ <span class="hits">8</span>
3504
3702
 
3505
3703
  <code class="ruby"> return val if val.is_a?(TimeDateMatcher)</code>
3506
3704
  </li>
3507
3705
 
3508
- <li class="missed" data-hits="0" data-linenumber="38">
3509
-
3706
+ <li class="covered" data-hits="8" data-linenumber="38">
3707
+ <span class="hits">8</span>
3510
3708
 
3511
3709
  <code class="ruby"> val = ActiveSupport::JSON.decode(val) if val.is_a?(String)</code>
3512
3710
  </li>
3513
3711
 
3514
- <li class="missed" data-hits="0" data-linenumber="39">
3515
-
3712
+ <li class="covered" data-hits="8" data-linenumber="39">
3713
+ <span class="hits">8</span>
3516
3714
 
3517
3715
  <code class="ruby"> val = self.stringify_keys(val).sort if val.is_a?(Hash)</code>
3518
3716
  </li>
3519
3717
 
3520
- <li class="missed" data-hits="0" data-linenumber="40">
3521
-
3718
+ <li class="covered" data-hits="104" data-linenumber="40">
3719
+ <span class="hits">104</span>
3522
3720
 
3523
3721
  <code class="ruby"> val = val.collect{|v| v.collect{|n| n.is_a?(Hash) ? self.sort_json(n) : n}} if val.is_a?(Array)</code>
3524
3722
  </li>
3525
3723
 
3526
- <li class="missed" data-hits="0" data-linenumber="41">
3527
-
3724
+ <li class="covered" data-hits="8" data-linenumber="41">
3725
+ <span class="hits">8</span>
3528
3726
 
3529
3727
  <code class="ruby"> val.sort</code>
3530
3728
  </li>
@@ -3751,20 +3949,20 @@
3751
3949
  <code class="ruby"> def self.stringify_keys(hash)</code>
3752
3950
  </li>
3753
3951
 
3754
- <li class="missed" data-hits="0" data-linenumber="79">
3755
-
3952
+ <li class="covered" data-hits="8" data-linenumber="79">
3953
+ <span class="hits">8</span>
3756
3954
 
3757
3955
  <code class="ruby"> new_hash = hash.class.new</code>
3758
3956
  </li>
3759
3957
 
3760
- <li class="missed" data-hits="0" data-linenumber="80">
3761
-
3958
+ <li class="covered" data-hits="8" data-linenumber="80">
3959
+ <span class="hits">8</span>
3762
3960
 
3763
3961
  <code class="ruby"> hash.each_pair do |k,v|</code>
3764
3962
  </li>
3765
3963
 
3766
- <li class="missed" data-hits="0" data-linenumber="81">
3767
-
3964
+ <li class="covered" data-hits="36" data-linenumber="81">
3965
+ <span class="hits">36</span>
3768
3966
 
3769
3967
  <code class="ruby"> new_hash[k.to_s] = case v</code>
3770
3968
  </li>
@@ -3775,8 +3973,8 @@
3775
3973
  <code class="ruby"> when Hash</code>
3776
3974
  </li>
3777
3975
 
3778
- <li class="missed" data-hits="0" data-linenumber="83">
3779
-
3976
+ <li class="covered" data-hits="1" data-linenumber="83">
3977
+ <span class="hits">1</span>
3780
3978
 
3781
3979
  <code class="ruby"> self.stringify_keys(v)</code>
3782
3980
  </li>
@@ -3787,8 +3985,8 @@
3787
3985
  <code class="ruby"> when Array</code>
3788
3986
  </li>
3789
3987
 
3790
- <li class="missed" data-hits="0" data-linenumber="85">
3791
-
3988
+ <li class="covered" data-hits="4" data-linenumber="85">
3989
+ <span class="hits">4</span>
3792
3990
 
3793
3991
  <code class="ruby"> self.stringify_array_keys(v)</code>
3794
3992
  </li>
@@ -3799,8 +3997,8 @@
3799
3997
  <code class="ruby"> else</code>
3800
3998
  </li>
3801
3999
 
3802
- <li class="missed" data-hits="0" data-linenumber="87">
3803
-
4000
+ <li class="covered" data-hits="31" data-linenumber="87">
4001
+ <span class="hits">31</span>
3804
4002
 
3805
4003
  <code class="ruby"> v </code>
3806
4004
  </li>
@@ -3817,8 +4015,8 @@
3817
4015
  <code class="ruby"> end</code>
3818
4016
  </li>
3819
4017
 
3820
- <li class="missed" data-hits="0" data-linenumber="90">
3821
-
4018
+ <li class="covered" data-hits="8" data-linenumber="90">
4019
+ <span class="hits">8</span>
3822
4020
 
3823
4021
  <code class="ruby"> new_hash</code>
3824
4022
  </li>
@@ -3847,14 +4045,14 @@
3847
4045
  <code class="ruby"> def self.stringify_array_keys(array)</code>
3848
4046
  </li>
3849
4047
 
3850
- <li class="missed" data-hits="0" data-linenumber="95">
3851
-
4048
+ <li class="covered" data-hits="4" data-linenumber="95">
4049
+ <span class="hits">4</span>
3852
4050
 
3853
4051
  <code class="ruby"> array.collect{|v|</code>
3854
4052
  </li>
3855
4053
 
3856
- <li class="missed" data-hits="0" data-linenumber="96">
3857
-
4054
+ <li class="covered" data-hits="8" data-linenumber="96">
4055
+ <span class="hits">8</span>
3858
4056
 
3859
4057
  <code class="ruby"> case v</code>
3860
4058
  </li>
@@ -3889,8 +4087,8 @@
3889
4087
  <code class="ruby"> else</code>
3890
4088
  </li>
3891
4089
 
3892
- <li class="missed" data-hits="0" data-linenumber="102">
3893
-
4090
+ <li class="covered" data-hits="8" data-linenumber="102">
4091
+ <span class="hits">8</span>
3894
4092
 
3895
4093
  <code class="ruby"> v</code>
3896
4094
  </li>
@@ -3931,8 +4129,8 @@
3931
4129
  <code class="ruby"> # make these strings</code>
3932
4130
  </li>
3933
4131
 
3934
- <li class="missed" data-hits="0" data-linenumber="109">
3935
-
4132
+ <li class="covered" data-hits="2" data-linenumber="109">
4133
+ <span class="hits">2</span>
3936
4134
 
3937
4135
  <code class="ruby"> known_path, entered_path = known_path.to_s, entered_path.to_s</code>
3938
4136
  </li>
@@ -3943,44 +4141,44 @@
3943
4141
  <code class="ruby"> # Remove the any beginning or trailing slashes from both paths if they exist</code>
3944
4142
  </li>
3945
4143
 
3946
- <li class="missed" data-hits="0" data-linenumber="111">
3947
-
4144
+ <li class="covered" data-hits="2" data-linenumber="111">
4145
+ <span class="hits">2</span>
3948
4146
 
3949
4147
  <code class="ruby"> known_path = known_path[1..-1] if known_path.start_with?(&quot;/&quot;)</code>
3950
4148
  </li>
3951
4149
 
3952
- <li class="missed" data-hits="0" data-linenumber="112">
3953
-
4150
+ <li class="covered" data-hits="2" data-linenumber="112">
4151
+ <span class="hits">2</span>
3954
4152
 
3955
4153
  <code class="ruby"> known_path = known_path[0..-2] if known_path.end_with?(&quot;/&quot;)</code>
3956
4154
  </li>
3957
4155
 
3958
- <li class="missed" data-hits="0" data-linenumber="113">
3959
-
4156
+ <li class="covered" data-hits="2" data-linenumber="113">
4157
+ <span class="hits">2</span>
3960
4158
 
3961
4159
  <code class="ruby"> entered_path = entered_path[1..-1] if entered_path.start_with?(&quot;/&quot;)</code>
3962
4160
  </li>
3963
4161
 
3964
- <li class="missed" data-hits="0" data-linenumber="114">
3965
-
4162
+ <li class="covered" data-hits="2" data-linenumber="114">
4163
+ <span class="hits">2</span>
3966
4164
 
3967
4165
  <code class="ruby"> entered_path = entered_path[0..-2] if entered_path.end_with?(&quot;/&quot;)</code>
3968
4166
  </li>
3969
4167
 
3970
- <li class="missed" data-hits="0" data-linenumber="115">
3971
-
4168
+ <li class="covered" data-hits="2" data-linenumber="115">
4169
+ <span class="hits">2</span>
3972
4170
 
3973
4171
  <code class="ruby"> known_path = known_path.split(&quot;/&quot;)</code>
3974
4172
  </li>
3975
4173
 
3976
- <li class="missed" data-hits="0" data-linenumber="116">
3977
-
4174
+ <li class="covered" data-hits="2" data-linenumber="116">
4175
+ <span class="hits">2</span>
3978
4176
 
3979
4177
  <code class="ruby"> entered_path = entered_path.split(&quot;/&quot;)</code>
3980
4178
  </li>
3981
4179
 
3982
- <li class="missed" data-hits="0" data-linenumber="117">
3983
-
4180
+ <li class="covered" data-hits="2" data-linenumber="117">
4181
+ <span class="hits">2</span>
3984
4182
 
3985
4183
  <code class="ruby"> if known_path.length &lt; entered_path.length</code>
3986
4184
  </li>
@@ -4009,8 +4207,8 @@
4009
4207
  <code class="ruby"> end</code>
4010
4208
  </li>
4011
4209
 
4012
- <li class="missed" data-hits="0" data-linenumber="122">
4013
-
4210
+ <li class="covered" data-hits="2" data-linenumber="122">
4211
+ <span class="hits">2</span>
4014
4212
 
4015
4213
  <code class="ruby"> return known_path.zip(entered_path)</code>
4016
4214
  </li>
@@ -4040,11 +4238,11 @@
4040
4238
  <div class="source_table" id="a53828a5413df9e3a1d0192504eac81ee4166020">
4041
4239
  <div class="header">
4042
4240
  <h3>lib/variable_array.rb</h3>
4043
- <h4><span class="red">36.36 %</span> covered</h4>
4241
+ <h4><span class="green">90.91 %</span> covered</h4>
4044
4242
  <div>
4045
4243
  <b>11</b> relevant lines.
4046
- <span class="green"><b>4</b> lines covered</span> and
4047
- <span class="red"><b>7</b> lines missed.</span>
4244
+ <span class="green"><b>10</b> lines covered</span> and
4245
+ <span class="red"><b>1</b> lines missed.</span>
4048
4246
  </div>
4049
4247
  </div>
4050
4248
 
@@ -4063,20 +4261,20 @@
4063
4261
  <code class="ruby"> def ==(other)</code>
4064
4262
  </li>
4065
4263
 
4066
- <li class="missed" data-hits="0" data-linenumber="3">
4067
-
4264
+ <li class="covered" data-hits="7" data-linenumber="3">
4265
+ <span class="hits">7</span>
4068
4266
 
4069
4267
  <code class="ruby"> if other.is_a?(Array)</code>
4070
4268
  </li>
4071
4269
 
4072
- <li class="missed" data-hits="0" data-linenumber="4">
4073
-
4270
+ <li class="covered" data-hits="7" data-linenumber="4">
4271
+ <span class="hits">7</span>
4074
4272
 
4075
4273
  <code class="ruby"> comp = self[1..(self.length - 1)]</code>
4076
4274
  </li>
4077
4275
 
4078
- <li class="missed" data-hits="0" data-linenumber="5">
4079
-
4276
+ <li class="covered" data-hits="7" data-linenumber="5">
4277
+ <span class="hits">7</span>
4080
4278
 
4081
4279
  <code class="ruby"> return comp.first == other.first</code>
4082
4280
  </li>
@@ -4111,20 +4309,20 @@
4111
4309
  <code class="ruby"> def collect(&amp;block)</code>
4112
4310
  </li>
4113
4311
 
4114
- <li class="missed" data-hits="0" data-linenumber="11">
4115
-
4312
+ <li class="covered" data-hits="5" data-linenumber="11">
4313
+ <span class="hits">5</span>
4116
4314
 
4117
4315
  <code class="ruby"> self.class.new.tap do |ret|</code>
4118
4316
  </li>
4119
4317
 
4120
- <li class="missed" data-hits="0" data-linenumber="12">
4121
-
4318
+ <li class="covered" data-hits="5" data-linenumber="12">
4319
+ <span class="hits">5</span>
4122
4320
 
4123
4321
  <code class="ruby"> self.each_with_index do |el, i|</code>
4124
4322
  </li>
4125
4323
 
4126
- <li class="missed" data-hits="0" data-linenumber="13">
4127
-
4324
+ <li class="covered" data-hits="10" data-linenumber="13">
4325
+ <span class="hits">10</span>
4128
4326
 
4129
4327
  <code class="ruby"> ret[i] = block.call(el)</code>
4130
4328
  </li>