hash_dealer 1.5.1 → 1.5.2

Sign up to get free protection for your applications and to get access to all the features.
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>