hash_dealer 1.5.0 → 1.5.1

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.0
1
+ 1.5.1
@@ -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_yellow.png" />
17
+ <link rel="shortcut icon" type="image/png" href="./assets/0.5.3/favicon_red.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-27T12:57:33-05:00">2012-12-27T12:57:33-05:00</abbr></div>
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>
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="yellow">80.41%</span></span>
33
+ (<span class="covered_percent"><span class="red">29.69%</span></span>
34
34
  covered at
35
35
  <span class="covered_strength">
36
36
  <span class="green">
37
- 13.55
37
+ 3.4
38
38
  </span>
39
39
  </span> hits/line)
40
40
  </h2>
41
41
  <a name="AllFiles"></a>
42
42
  <div>
43
- <b>6</b> files in total.
44
- <b>291</b> relevant lines.
45
- <span class="green"><b>234</b> lines covered</span> and
46
- <span class="red"><b>57</b> lines missed </span>
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>
47
47
  </div>
48
48
  <table class="file_list">
49
49
  <thead>
@@ -61,62 +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="green strong">95.56 %</td>
64
+ <td class="red strong">17.78 %</td>
65
65
  <td>74</td>
66
66
  <td>45</td>
67
- <td>43</td>
68
- <td>2</td>
69
- <td>12.4</td>
67
+ <td>8</td>
68
+ <td>37</td>
69
+ <td>0.2</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="yellow strong">88.24 %</td>
74
+ <td class="red strong">45.88 %</td>
75
75
  <td>183</td>
76
76
  <td>85</td>
77
- <td>75</td>
78
- <td>10</td>
79
- <td>35.9</td>
77
+ <td>39</td>
78
+ <td>46</td>
79
+ <td>22.1</td>
80
+ </tr>
81
+
82
+ <tr>
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>
80
90
  </tr>
81
91
 
82
92
  <tr>
83
93
  <td class="strong"><a href="#9082f1e417147c61ee326c565b15a99cad953b35" class="src_link" title="lib/hash_dealer.rb">lib/hash_dealer.rb</a></td>
84
- <td class="green strong">97.37 %</td>
85
- <td>72</td>
86
- <td>38</td>
87
- <td>37</td>
88
- <td>1</td>
89
- <td>21.0</td>
94
+ <td class="red strong">39.58 %</td>
95
+ <td>97</td>
96
+ <td>48</td>
97
+ <td>19</td>
98
+ <td>29</td>
99
+ <td>0.4</td>
90
100
  </tr>
91
101
 
92
102
  <tr>
93
103
  <td class="strong"><a href="#4cc7721b735165eef9b1e5afd4a168c1a72d5103" class="src_link" title="lib/matcher.rb">lib/matcher.rb</a></td>
94
- <td class="red strong">48.84 %</td>
104
+ <td class="red strong">11.63 %</td>
95
105
  <td>69</td>
96
106
  <td>43</td>
97
- <td>21</td>
98
- <td>22</td>
99
- <td>2.2</td>
107
+ <td>5</td>
108
+ <td>38</td>
109
+ <td>0.1</td>
100
110
  </tr>
101
111
 
102
112
  <tr>
103
113
  <td class="strong"><a href="#a262d63e5dc399019853b13f0e4b947eb9908f86" class="src_link" title="lib/path_string.rb">lib/path_string.rb</a></td>
104
- <td class="red strong">69.57 %</td>
114
+ <td class="red strong">18.84 %</td>
105
115
  <td>125</td>
106
116
  <td>69</td>
107
- <td>48</td>
108
- <td>21</td>
109
- <td>6.4</td>
117
+ <td>13</td>
118
+ <td>56</td>
119
+ <td>0.2</td>
110
120
  </tr>
111
121
 
112
122
  <tr>
113
123
  <td class="strong"><a href="#a53828a5413df9e3a1d0192504eac81ee4166020" class="src_link" title="lib/variable_array.rb">lib/variable_array.rb</a></td>
114
- <td class="green strong">90.91 %</td>
124
+ <td class="red strong">36.36 %</td>
115
125
  <td>18</td>
116
126
  <td>11</td>
117
- <td>10</td>
118
- <td>1</td>
119
- <td>3.4</td>
127
+ <td>4</td>
128
+ <td>7</td>
129
+ <td>0.4</td>
120
130
  </tr>
121
131
 
122
132
  </tbody>
@@ -276,20 +286,20 @@
276
286
  <div class="file_list_container" id="Libraries">
277
287
  <h2>
278
288
  <span class="group_name">Libraries</span>
279
- (<span class="covered_percent"><span class="yellow">80.41%</span></span>
289
+ (<span class="covered_percent"><span class="red">29.69%</span></span>
280
290
  covered at
281
291
  <span class="covered_strength">
282
292
  <span class="green">
283
- 13.55
293
+ 3.4
284
294
  </span>
285
295
  </span> hits/line)
286
296
  </h2>
287
297
  <a name="Libraries"></a>
288
298
  <div>
289
- <b>6</b> files in total.
290
- <b>291</b> relevant lines.
291
- <span class="green"><b>234</b> lines covered</span> and
292
- <span class="red"><b>57</b> lines missed </span>
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>
293
303
  </div>
294
304
  <table class="file_list">
295
305
  <thead>
@@ -307,62 +317,72 @@
307
317
 
308
318
  <tr>
309
319
  <td class="strong"><a href="#23ece676ee554bd0a62670e8964fe96af2adc01a" class="src_link" title="lib/comparator.rb">lib/comparator.rb</a></td>
310
- <td class="green strong">95.56 %</td>
320
+ <td class="red strong">17.78 %</td>
311
321
  <td>74</td>
312
322
  <td>45</td>
313
- <td>43</td>
314
- <td>2</td>
315
- <td>12.4</td>
323
+ <td>8</td>
324
+ <td>37</td>
325
+ <td>0.2</td>
316
326
  </tr>
317
327
 
318
328
  <tr>
319
329
  <td class="strong"><a href="#62f8063523b24e1e0397e524e8e048ddb0ac289c" class="src_link" title="lib/core_extensions.rb">lib/core_extensions.rb</a></td>
320
- <td class="yellow strong">88.24 %</td>
330
+ <td class="red strong">45.88 %</td>
321
331
  <td>183</td>
322
332
  <td>85</td>
323
- <td>75</td>
324
- <td>10</td>
325
- <td>35.9</td>
333
+ <td>39</td>
334
+ <td>46</td>
335
+ <td>22.1</td>
336
+ </tr>
337
+
338
+ <tr>
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>
326
346
  </tr>
327
347
 
328
348
  <tr>
329
349
  <td class="strong"><a href="#9082f1e417147c61ee326c565b15a99cad953b35" class="src_link" title="lib/hash_dealer.rb">lib/hash_dealer.rb</a></td>
330
- <td class="green strong">97.37 %</td>
331
- <td>72</td>
332
- <td>38</td>
333
- <td>37</td>
334
- <td>1</td>
335
- <td>21.0</td>
350
+ <td class="red strong">39.58 %</td>
351
+ <td>97</td>
352
+ <td>48</td>
353
+ <td>19</td>
354
+ <td>29</td>
355
+ <td>0.4</td>
336
356
  </tr>
337
357
 
338
358
  <tr>
339
359
  <td class="strong"><a href="#4cc7721b735165eef9b1e5afd4a168c1a72d5103" class="src_link" title="lib/matcher.rb">lib/matcher.rb</a></td>
340
- <td class="red strong">48.84 %</td>
360
+ <td class="red strong">11.63 %</td>
341
361
  <td>69</td>
342
362
  <td>43</td>
343
- <td>21</td>
344
- <td>22</td>
345
- <td>2.2</td>
363
+ <td>5</td>
364
+ <td>38</td>
365
+ <td>0.1</td>
346
366
  </tr>
347
367
 
348
368
  <tr>
349
369
  <td class="strong"><a href="#a262d63e5dc399019853b13f0e4b947eb9908f86" class="src_link" title="lib/path_string.rb">lib/path_string.rb</a></td>
350
- <td class="red strong">69.57 %</td>
370
+ <td class="red strong">18.84 %</td>
351
371
  <td>125</td>
352
372
  <td>69</td>
353
- <td>48</td>
354
- <td>21</td>
355
- <td>6.4</td>
373
+ <td>13</td>
374
+ <td>56</td>
375
+ <td>0.2</td>
356
376
  </tr>
357
377
 
358
378
  <tr>
359
379
  <td class="strong"><a href="#a53828a5413df9e3a1d0192504eac81ee4166020" class="src_link" title="lib/variable_array.rb">lib/variable_array.rb</a></td>
360
- <td class="green strong">90.91 %</td>
380
+ <td class="red strong">36.36 %</td>
361
381
  <td>18</td>
362
382
  <td>11</td>
363
- <td>10</td>
364
- <td>1</td>
365
- <td>3.4</td>
383
+ <td>4</td>
384
+ <td>7</td>
385
+ <td>0.4</td>
366
386
  </tr>
367
387
 
368
388
  </tbody>
@@ -420,11 +440,11 @@
420
440
  <div class="source_table" id="23ece676ee554bd0a62670e8964fe96af2adc01a">
421
441
  <div class="header">
422
442
  <h3>lib/comparator.rb</h3>
423
- <h4><span class="green">95.56 %</span> covered</h4>
443
+ <h4><span class="red">17.78 %</span> covered</h4>
424
444
  <div>
425
445
  <b>45</b> relevant lines.
426
- <span class="green"><b>43</b> lines covered</span> and
427
- <span class="red"><b>2</b> lines missed.</span>
446
+ <span class="green"><b>8</b> lines covered</span> and
447
+ <span class="red"><b>37</b> lines missed.</span>
428
448
  </div>
429
449
  </div>
430
450
 
@@ -461,8 +481,8 @@
461
481
  <code class="ruby"> def self.formatted_value(val)</code>
462
482
  </li>
463
483
 
464
- <li class="covered" data-hits="7" data-linenumber="6">
465
- <span class="hits">7</span>
484
+ <li class="missed" data-hits="0" data-linenumber="6">
485
+
466
486
 
467
487
  <code class="ruby"> if val.nil?</code>
468
488
  </li>
@@ -473,20 +493,20 @@
473
493
  <code class="ruby"> return &quot;NilClass::nil&quot;</code>
474
494
  </li>
475
495
 
476
- <li class="covered" data-hits="7" data-linenumber="8">
477
- <span class="hits">7</span>
496
+ <li class="missed" data-hits="0" data-linenumber="8">
497
+
478
498
 
479
499
  <code class="ruby"> elsif val.is_a?(PathString)</code>
480
500
  </li>
481
501
 
482
- <li class="covered" data-hits="1" data-linenumber="9">
483
- <span class="hits">1</span>
502
+ <li class="missed" data-hits="0" data-linenumber="9">
503
+
484
504
 
485
505
  <code class="ruby"> return val.gsub(&quot;:&quot;,&quot;&quot;)</code>
486
506
  </li>
487
507
 
488
- <li class="covered" data-hits="6" data-linenumber="10">
489
- <span class="hits">6</span>
508
+ <li class="missed" data-hits="0" data-linenumber="10">
509
+
490
510
 
491
511
  <code class="ruby"> elsif val == &quot;&quot;</code>
492
512
  </li>
@@ -503,8 +523,8 @@
503
523
  <code class="ruby"> else</code>
504
524
  </li>
505
525
 
506
- <li class="covered" data-hits="6" data-linenumber="13">
507
- <span class="hits">6</span>
526
+ <li class="missed" data-hits="0" data-linenumber="13">
527
+
508
528
 
509
529
  <code class="ruby"> return val</code>
510
530
  </li>
@@ -533,32 +553,32 @@
533
553
  <code class="ruby"> def self.normalize_value(val)</code>
534
554
  </li>
535
555
 
536
- <li class="covered" data-hits="29" data-linenumber="18">
537
- <span class="hits">29</span>
556
+ <li class="missed" data-hits="0" data-linenumber="18">
557
+
538
558
 
539
559
  <code class="ruby"> return val if val.is_a?(TimeDateMatcher)</code>
540
560
  </li>
541
561
 
542
- <li class="covered" data-hits="29" data-linenumber="19">
543
- <span class="hits">29</span>
562
+ <li class="missed" data-hits="0" data-linenumber="19">
563
+
544
564
 
545
565
  <code class="ruby"> val = ActiveSupport::JSON.decode(val) if val.is_a?(String)</code>
546
566
  </li>
547
567
 
548
- <li class="covered" data-hits="29" data-linenumber="20">
549
- <span class="hits">29</span>
568
+ <li class="missed" data-hits="0" data-linenumber="20">
569
+
550
570
 
551
571
  <code class="ruby"> val = self.stringify_keys(val) if val.is_a?(Hash)</code>
552
572
  </li>
553
573
 
554
- <li class="covered" data-hits="33" data-linenumber="21">
555
- <span class="hits">33</span>
574
+ <li class="missed" data-hits="0" data-linenumber="21">
575
+
556
576
 
557
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>
558
578
  </li>
559
579
 
560
- <li class="covered" data-hits="29" data-linenumber="22">
561
- <span class="hits">29</span>
580
+ <li class="missed" data-hits="0" data-linenumber="22">
581
+
562
582
 
563
583
  <code class="ruby"> val</code>
564
584
  </li>
@@ -581,20 +601,20 @@
581
601
  <code class="ruby"> def self.diff(obj1, obj2)</code>
582
602
  </li>
583
603
 
584
- <li class="covered" data-hits="23" data-linenumber="26">
585
- <span class="hits">23</span>
604
+ <li class="missed" data-hits="0" data-linenumber="26">
605
+
586
606
 
587
607
  <code class="ruby"> return {} if obj1 == obj2</code>
588
608
  </li>
589
609
 
590
- <li class="covered" data-hits="9" data-linenumber="27">
591
- <span class="hits">9</span>
610
+ <li class="missed" data-hits="0" data-linenumber="27">
611
+
592
612
 
593
613
  <code class="ruby"> if obj1.is_a?(Array) &amp;&amp; obj2.is_a?(Array)</code>
594
614
  </li>
595
615
 
596
- <li class="covered" data-hits="1" data-linenumber="28">
597
- <span class="hits">1</span>
616
+ <li class="missed" data-hits="0" data-linenumber="28">
617
+
598
618
 
599
619
  <code class="ruby"> return self.array_diff(obj1, obj2) </code>
600
620
  </li>
@@ -605,8 +625,8 @@
605
625
  <code class="ruby"> elsif obj1.is_a?(Hash) &amp;&amp; obj2.is_a?(Hash)</code>
606
626
  </li>
607
627
 
608
- <li class="covered" data-hits="7" data-linenumber="30">
609
- <span class="hits">7</span>
628
+ <li class="missed" data-hits="0" data-linenumber="30">
629
+
610
630
 
611
631
  <code class="ruby"> return self.hash_diff(obj1, obj2) </code>
612
632
  </li>
@@ -617,20 +637,20 @@
617
637
  <code class="ruby"> end</code>
618
638
  </li>
619
639
 
620
- <li class="covered" data-hits="1" data-linenumber="32">
621
- <span class="hits">1</span>
640
+ <li class="missed" data-hits="0" data-linenumber="32">
641
+
622
642
 
623
643
  <code class="ruby"> return [formatted_value(obj1), &quot;KEY MISSING&quot;] if obj2.nil?</code>
624
644
  </li>
625
645
 
626
- <li class="covered" data-hits="1" data-linenumber="33">
627
- <span class="hits">1</span>
646
+ <li class="missed" data-hits="0" data-linenumber="33">
647
+
628
648
 
629
649
  <code class="ruby"> return [&quot;KEY MISSING&quot;, formatted_value(obj2)] if obj1.nil?</code>
630
650
  </li>
631
651
 
632
- <li class="covered" data-hits="1" data-linenumber="34">
633
- <span class="hits">1</span>
652
+ <li class="missed" data-hits="0" data-linenumber="34">
653
+
634
654
 
635
655
  <code class="ruby"> return [formatted_value(obj1), formatted_value(obj2)]</code>
636
656
  </li>
@@ -653,8 +673,8 @@
653
673
  <code class="ruby"> def self.array_diff(obj1, obj2)</code>
654
674
  </li>
655
675
 
656
- <li class="covered" data-hits="1" data-linenumber="38">
657
- <span class="hits">1</span>
676
+ <li class="missed" data-hits="0" data-linenumber="38">
677
+
658
678
 
659
679
  <code class="ruby"> {}.tap do |ret|</code>
660
680
  </li>
@@ -671,20 +691,20 @@
671
691
  <code class="ruby"> # of non-VariableArrays and the 2nd element of VariableArrays</code>
672
692
  </li>
673
693
 
674
- <li class="covered" data-hits="1" data-linenumber="41">
675
- <span class="hits">1</span>
694
+ <li class="missed" data-hits="0" data-linenumber="41">
695
+
676
696
 
677
697
  <code class="ruby"> if obj1.is_a?(VariableArray) || obj2.is_a?(VariableArray)</code>
678
698
  </li>
679
699
 
680
- <li class="covered" data-hits="1" data-linenumber="42">
681
- <span class="hits">1</span>
700
+ <li class="missed" data-hits="0" data-linenumber="42">
701
+
682
702
 
683
703
  <code class="ruby"> obj1 = obj1.is_a?(VariableArray) ? [obj1[1]] : [obj1[0]]</code>
684
704
  </li>
685
705
 
686
- <li class="covered" data-hits="1" data-linenumber="43">
687
- <span class="hits">1</span>
706
+ <li class="missed" data-hits="0" data-linenumber="43">
707
+
688
708
 
689
709
  <code class="ruby"> obj2 = obj2.is_a?(VariableArray) ? [obj2[1]] : [obj2[0]]</code>
690
710
  </li>
@@ -695,20 +715,20 @@
695
715
  <code class="ruby"> end</code>
696
716
  </li>
697
717
 
698
- <li class="covered" data-hits="1" data-linenumber="45">
699
- <span class="hits">1</span>
718
+ <li class="missed" data-hits="0" data-linenumber="45">
719
+
700
720
 
701
721
  <code class="ruby"> bigger_arr = obj1.size &gt;= obj2.size ? obj1 : obj2</code>
702
722
  </li>
703
723
 
704
- <li class="covered" data-hits="1" data-linenumber="46">
705
- <span class="hits">1</span>
724
+ <li class="missed" data-hits="0" data-linenumber="46">
725
+
706
726
 
707
727
  <code class="ruby"> bigger_arr.each_index do |k|</code>
708
728
  </li>
709
729
 
710
- <li class="covered" data-hits="1" data-linenumber="47">
711
- <span class="hits">1</span>
730
+ <li class="missed" data-hits="0" data-linenumber="47">
731
+
712
732
 
713
733
  <code class="ruby"> ret[k] = self.diff(obj1[k], obj2[k]) unless obj1[k] == obj2[k]</code>
714
734
  </li>
@@ -743,26 +763,26 @@
743
763
  <code class="ruby"> def self.hash_diff(obj1, obj2)</code>
744
764
  </li>
745
765
 
746
- <li class="covered" data-hits="7" data-linenumber="53">
747
- <span class="hits">7</span>
766
+ <li class="missed" data-hits="0" data-linenumber="53">
767
+
748
768
 
749
769
  <code class="ruby"> obj1, obj2 = self.stringify_keys(obj1), self.stringify_keys(obj2)</code>
750
770
  </li>
751
771
 
752
- <li class="covered" data-hits="7" data-linenumber="54">
753
- <span class="hits">7</span>
772
+ <li class="missed" data-hits="0" data-linenumber="54">
773
+
754
774
 
755
775
  <code class="ruby"> (obj1.keys + obj2.keys).uniq.inject({}) do |memo, key|</code>
756
776
  </li>
757
777
 
758
- <li class="covered" data-hits="13" data-linenumber="55">
759
- <span class="hits">13</span>
778
+ <li class="missed" data-hits="0" data-linenumber="55">
779
+
760
780
 
761
781
  <code class="ruby"> if !obj1.keys.include?(key) </code>
762
782
  </li>
763
783
 
764
- <li class="covered" data-hits="3" data-linenumber="56">
765
- <span class="hits">3</span>
784
+ <li class="missed" data-hits="0" data-linenumber="56">
785
+
766
786
 
767
787
  <code class="ruby"> memo[key] = [&quot;KEY MISSING&quot;, formatted_value(obj2[key])]</code>
768
788
  </li>
@@ -773,8 +793,8 @@
773
793
  <code class="ruby"> elsif !obj2.keys.include?(key) </code>
774
794
  </li>
775
795
 
776
- <li class="covered" data-hits="2" data-linenumber="58">
777
- <span class="hits">2</span>
796
+ <li class="missed" data-hits="0" data-linenumber="58">
797
+
778
798
 
779
799
  <code class="ruby"> memo[key] = [formatted_value(obj1[key]), &quot;KEY MISSING&quot;]</code>
780
800
  </li>
@@ -785,8 +805,8 @@
785
805
  <code class="ruby"> elsif obj1[key] != obj2[key]</code>
786
806
  </li>
787
807
 
788
- <li class="covered" data-hits="3" data-linenumber="60">
789
- <span class="hits">3</span>
808
+ <li class="missed" data-hits="0" data-linenumber="60">
809
+
790
810
 
791
811
  <code class="ruby"> memo[key] = self.diff(obj1[key], obj2[key])</code>
792
812
  </li>
@@ -797,8 +817,8 @@
797
817
  <code class="ruby"> end</code>
798
818
  </li>
799
819
 
800
- <li class="covered" data-hits="13" data-linenumber="62">
801
- <span class="hits">13</span>
820
+ <li class="missed" data-hits="0" data-linenumber="62">
821
+
802
822
 
803
823
  <code class="ruby"> memo</code>
804
824
  </li>
@@ -827,26 +847,26 @@
827
847
  <code class="ruby"> def self.stringify_keys(hash_or_array)</code>
828
848
  </li>
829
849
 
830
- <li class="covered" data-hits="82" data-linenumber="67">
831
- <span class="hits">82</span>
850
+ <li class="missed" data-hits="0" data-linenumber="67">
851
+
832
852
 
833
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>
834
854
  </li>
835
855
 
836
- <li class="covered" data-hits="58" data-linenumber="68">
837
- <span class="hits">58</span>
856
+ <li class="missed" data-hits="0" data-linenumber="68">
857
+
838
858
 
839
859
  <code class="ruby"> {}.tap do |ret|</code>
840
860
  </li>
841
861
 
842
- <li class="covered" data-hits="58" data-linenumber="69">
843
- <span class="hits">58</span>
862
+ <li class="missed" data-hits="0" data-linenumber="69">
863
+
844
864
 
845
865
  <code class="ruby"> hash_or_array.each_pair.each do |k, v|</code>
846
866
  </li>
847
867
 
848
- <li class="covered" data-hits="77" data-linenumber="70">
849
- <span class="hits">77</span>
868
+ <li class="missed" data-hits="0" data-linenumber="70">
869
+
850
870
 
851
871
  <code class="ruby"> ret[k.to_s] = v.is_a?(Hash) || v.is_a?(Array) ? self.stringify_keys(v) : v</code>
852
872
  </li>
@@ -882,11 +902,11 @@
882
902
  <div class="source_table" id="62f8063523b24e1e0397e524e8e048ddb0ac289c">
883
903
  <div class="header">
884
904
  <h3>lib/core_extensions.rb</h3>
885
- <h4><span class="yellow">88.24 %</span> covered</h4>
905
+ <h4><span class="red">45.88 %</span> covered</h4>
886
906
  <div>
887
907
  <b>85</b> relevant lines.
888
- <span class="green"><b>75</b> lines covered</span> and
889
- <span class="red"><b>10</b> lines missed.</span>
908
+ <span class="green"><b>39</b> lines covered</span> and
909
+ <span class="red"><b>46</b> lines missed.</span>
890
910
  </div>
891
911
  </div>
892
912
 
@@ -953,8 +973,8 @@
953
973
  <code class="ruby"> def initialize(instance)</code>
954
974
  </li>
955
975
 
956
- <li class="covered" data-hits="8" data-linenumber="11">
957
- <span class="hits">8</span>
976
+ <li class="missed" data-hits="0" data-linenumber="11">
977
+
958
978
 
959
979
  <code class="ruby"> @instance = instance</code>
960
980
  </li>
@@ -977,8 +997,8 @@
977
997
  <code class="ruby"> # allow nils to match</code>
978
998
  </li>
979
999
 
980
- <li class="covered" data-hits="12" data-linenumber="15">
981
- <span class="hits">12</span>
1000
+ <li class="missed" data-hits="0" data-linenumber="15">
1001
+
982
1002
 
983
1003
  <code class="ruby"> return true if other.nil?</code>
984
1004
  </li>
@@ -989,20 +1009,20 @@
989
1009
  <code class="ruby"> # attempt to parse any strings</code>
990
1010
  </li>
991
1011
 
992
- <li class="covered" data-hits="10" data-linenumber="17">
993
- <span class="hits">10</span>
1012
+ <li class="missed" data-hits="0" data-linenumber="17">
1013
+
994
1014
 
995
1015
  <code class="ruby"> if other.is_a?(String)</code>
996
1016
  </li>
997
1017
 
998
- <li class="covered" data-hits="2" data-linenumber="18">
999
- <span class="hits">2</span>
1018
+ <li class="missed" data-hits="0" data-linenumber="18">
1019
+
1000
1020
 
1001
1021
  <code class="ruby"> begin</code>
1002
1022
  </li>
1003
1023
 
1004
- <li class="covered" data-hits="2" data-linenumber="19">
1005
- <span class="hits">2</span>
1024
+ <li class="missed" data-hits="0" data-linenumber="19">
1025
+
1006
1026
 
1007
1027
  <code class="ruby"> other = self.instance.class.parse(other)</code>
1008
1028
  </li>
@@ -1031,8 +1051,8 @@
1031
1051
  <code class="ruby"> end</code>
1032
1052
  </li>
1033
1053
 
1034
- <li class="covered" data-hits="10" data-linenumber="24">
1035
- <span class="hits">10</span>
1054
+ <li class="missed" data-hits="0" data-linenumber="24">
1055
+
1036
1056
 
1037
1057
  <code class="ruby"> self.instance.class == other.class</code>
1038
1058
  </li>
@@ -1217,8 +1237,8 @@
1217
1237
  <code class="ruby"> def initialize(instance)</code>
1218
1238
  </li>
1219
1239
 
1220
- <li class="covered" data-hits="2" data-linenumber="55">
1221
- <span class="hits">2</span>
1240
+ <li class="missed" data-hits="0" data-linenumber="55">
1241
+
1222
1242
 
1223
1243
  <code class="ruby"> @instance = instance</code>
1224
1244
  </li>
@@ -1235,8 +1255,8 @@
1235
1255
  <code class="ruby"> def ==(other)</code>
1236
1256
  </li>
1237
1257
 
1238
- <li class="covered" data-hits="2" data-linenumber="58">
1239
- <span class="hits">2</span>
1258
+ <li class="missed" data-hits="0" data-linenumber="58">
1259
+
1240
1260
 
1241
1261
  <code class="ruby"> return (other.is_a?(TrueClass) || other.is_a?(FalseClass) || other.is_a?(BooleanMatcher))</code>
1242
1262
  </li>
@@ -1403,8 +1423,8 @@
1403
1423
  <code class="ruby"> def matcher(opts={})</code>
1404
1424
  </li>
1405
1425
 
1406
- <li class="covered" data-hits="4" data-linenumber="86">
1407
- <span class="hits">4</span>
1426
+ <li class="missed" data-hits="0" data-linenumber="86">
1427
+
1408
1428
 
1409
1429
  <code class="ruby"> PathString.new(&quot;:#{self}&quot;)</code>
1410
1430
  </li>
@@ -1421,14 +1441,14 @@
1421
1441
  <code class="ruby"> def ==(other)</code>
1422
1442
  </li>
1423
1443
 
1424
- <li class="covered" data-hits="1" data-linenumber="89">
1425
- <span class="hits">1</span>
1444
+ <li class="missed" data-hits="0" data-linenumber="89">
1445
+
1426
1446
 
1427
1447
  <code class="ruby"> return true if other.is_a?(PathString) &amp;&amp; other =~ /^:/</code>
1428
1448
  </li>
1429
1449
 
1430
- <li class="covered" data-hits="1" data-linenumber="90">
1431
- <span class="hits">1</span>
1450
+ <li class="missed" data-hits="0" data-linenumber="90">
1451
+
1432
1452
 
1433
1453
  <code class="ruby"> super</code>
1434
1454
  </li>
@@ -1481,8 +1501,8 @@
1481
1501
  <code class="ruby"> # if we have a leading : or a /:xyz - a matcher is already defined</code>
1482
1502
  </li>
1483
1503
 
1484
- <li class="covered" data-hits="32" data-linenumber="99">
1485
- <span class="hits">32</span>
1504
+ <li class="missed" data-hits="0" data-linenumber="99">
1505
+
1486
1506
 
1487
1507
  <code class="ruby"> self =~ /(^:|\/:)/ ? PathString.new(self) : PathString.new(&quot;:#{self}&quot;)</code>
1488
1508
  </li>
@@ -1499,20 +1519,20 @@
1499
1519
  <code class="ruby"> define_method &quot;==_with_path_string&quot; do |other|</code>
1500
1520
  </li>
1501
1521
 
1502
- <li class="covered" data-hits="1048" data-linenumber="102">
1503
- <span class="hits">1048</span>
1522
+ <li class="covered" data-hits="920" data-linenumber="102">
1523
+ <span class="hits">920</span>
1504
1524
 
1505
1525
  <code class="ruby"> if other.is_a?(PathString)</code>
1506
1526
  </li>
1507
1527
 
1508
- <li class="covered" data-hits="20" data-linenumber="103">
1509
- <span class="hits">20</span>
1528
+ <li class="missed" data-hits="0" data-linenumber="103">
1529
+
1510
1530
 
1511
1531
  <code class="ruby"> return true if self.is_a?(PathString)</code>
1512
1532
  </li>
1513
1533
 
1514
- <li class="covered" data-hits="2" data-linenumber="104">
1515
- <span class="hits">2</span>
1534
+ <li class="missed" data-hits="0" data-linenumber="104">
1535
+
1516
1536
 
1517
1537
  <code class="ruby"> return other == self </code>
1518
1538
  </li>
@@ -1523,8 +1543,8 @@
1523
1543
  <code class="ruby"> end</code>
1524
1544
  </li>
1525
1545
 
1526
- <li class="covered" data-hits="1028" data-linenumber="106">
1527
- <span class="hits">1028</span>
1546
+ <li class="covered" data-hits="920" data-linenumber="106">
1547
+ <span class="hits">920</span>
1528
1548
 
1529
1549
  <code class="ruby"> return self.send(&quot;==_without_path_string&quot;, other)</code>
1530
1550
  </li>
@@ -1667,20 +1687,20 @@
1667
1687
  <code class="ruby"> def matcher(opts = {})</code>
1668
1688
  </li>
1669
1689
 
1670
- <li class="covered" data-hits="40" data-linenumber="130">
1671
- <span class="hits">40</span>
1690
+ <li class="missed" data-hits="0" data-linenumber="130">
1691
+
1672
1692
 
1673
1693
  <code class="ruby"> opts[:only] ||= self.keys.collect(&amp;:to_sym)</code>
1674
1694
  </li>
1675
1695
 
1676
- <li class="covered" data-hits="40" data-linenumber="131">
1677
- <span class="hits">40</span>
1696
+ <li class="missed" data-hits="0" data-linenumber="131">
1697
+
1678
1698
 
1679
1699
  <code class="ruby"> opts[:only] = opts[:only].collect(&amp;:to_sym)</code>
1680
1700
  </li>
1681
1701
 
1682
- <li class="covered" data-hits="40" data-linenumber="132">
1683
- <span class="hits">40</span>
1702
+ <li class="missed" data-hits="0" data-linenumber="132">
1703
+
1684
1704
 
1685
1705
  <code class="ruby"> opts[:only] -= (opts[:except] || []).collect(&amp;:to_sym)</code>
1686
1706
  </li>
@@ -1691,26 +1711,26 @@
1691
1711
  <code class="ruby"> </code>
1692
1712
  </li>
1693
1713
 
1694
- <li class="covered" data-hits="40" data-linenumber="134">
1695
- <span class="hits">40</span>
1714
+ <li class="missed" data-hits="0" data-linenumber="134">
1715
+
1696
1716
 
1697
1717
  <code class="ruby"> ret = self.class.new</code>
1698
1718
  </li>
1699
1719
 
1700
- <li class="covered" data-hits="40" data-linenumber="135">
1701
- <span class="hits">40</span>
1720
+ <li class="missed" data-hits="0" data-linenumber="135">
1721
+
1702
1722
 
1703
1723
  <code class="ruby"> self.each_pair do |k,v|</code>
1704
1724
  </li>
1705
1725
 
1706
- <li class="covered" data-hits="59" data-linenumber="136">
1707
- <span class="hits">59</span>
1726
+ <li class="missed" data-hits="0" data-linenumber="136">
1727
+
1708
1728
 
1709
1729
  <code class="ruby"> if opts[:only].include?(k.to_sym)</code>
1710
1730
  </li>
1711
1731
 
1712
- <li class="covered" data-hits="49" data-linenumber="137">
1713
- <span class="hits">49</span>
1732
+ <li class="missed" data-hits="0" data-linenumber="137">
1733
+
1714
1734
 
1715
1735
  <code class="ruby"> ret[k] = v.matcher(opts[k.to_sym] || {})</code>
1716
1736
  </li>
@@ -1727,8 +1747,8 @@
1727
1747
  <code class="ruby"> # Still try to pathify strings if this is an array or hash</code>
1728
1748
  </li>
1729
1749
 
1730
- <li class="covered" data-hits="10" data-linenumber="140">
1731
- <span class="hits">10</span>
1750
+ <li class="missed" data-hits="0" data-linenumber="140">
1751
+
1732
1752
 
1733
1753
  <code class="ruby"> if v.is_a?(Array) || v.is_a?(Hash)</code>
1734
1754
  </li>
@@ -1745,8 +1765,8 @@
1745
1765
  <code class="ruby"> else</code>
1746
1766
  </li>
1747
1767
 
1748
- <li class="covered" data-hits="10" data-linenumber="143">
1749
- <span class="hits">10</span>
1768
+ <li class="missed" data-hits="0" data-linenumber="143">
1769
+
1750
1770
 
1751
1771
  <code class="ruby"> ret[k] = v</code>
1752
1772
  </li>
@@ -1769,8 +1789,8 @@
1769
1789
  <code class="ruby"> end</code>
1770
1790
  </li>
1771
1791
 
1772
- <li class="covered" data-hits="40" data-linenumber="147">
1773
- <span class="hits">40</span>
1792
+ <li class="missed" data-hits="0" data-linenumber="147">
1793
+
1774
1794
 
1775
1795
  <code class="ruby"> ret</code>
1776
1796
  </li>
@@ -1799,8 +1819,8 @@
1799
1819
  <code class="ruby"> def pathify_strings</code>
1800
1820
  </li>
1801
1821
 
1802
- <li class="covered" data-hits="44" data-linenumber="152">
1803
- <span class="hits">44</span>
1822
+ <li class="missed" data-hits="0" data-linenumber="152">
1823
+
1804
1824
 
1805
1825
  <code class="ruby"> if self.first == &quot;:matcher&quot;</code>
1806
1826
  </li>
@@ -1817,8 +1837,8 @@
1817
1837
  <code class="ruby"> else</code>
1818
1838
  </li>
1819
1839
 
1820
- <li class="covered" data-hits="44" data-linenumber="155">
1821
- <span class="hits">44</span>
1840
+ <li class="missed" data-hits="0" data-linenumber="155">
1841
+
1822
1842
 
1823
1843
  <code class="ruby"> val = self</code>
1824
1844
  </li>
@@ -1829,20 +1849,20 @@
1829
1849
  <code class="ruby"> end</code>
1830
1850
  </li>
1831
1851
 
1832
- <li class="covered" data-hits="44" data-linenumber="157">
1833
- <span class="hits">44</span>
1852
+ <li class="missed" data-hits="0" data-linenumber="157">
1853
+
1834
1854
 
1835
1855
  <code class="ruby"> val.each_with_index do |v,k|</code>
1836
1856
  </li>
1837
1857
 
1838
- <li class="covered" data-hits="104" data-linenumber="158">
1839
- <span class="hits">104</span>
1858
+ <li class="missed" data-hits="0" data-linenumber="158">
1859
+
1840
1860
 
1841
1861
  <code class="ruby"> if v.is_a?(Array) || v.is_a?(Hash)</code>
1842
1862
  </li>
1843
1863
 
1844
- <li class="covered" data-hits="38" data-linenumber="159">
1845
- <span class="hits">38</span>
1864
+ <li class="missed" data-hits="0" data-linenumber="159">
1865
+
1846
1866
 
1847
1867
  <code class="ruby"> val[k] = v.pathify_strings</code>
1848
1868
  </li>
@@ -1853,8 +1873,8 @@
1853
1873
  <code class="ruby"> elsif v.instance_of?(String) || v.is_a?(Numeric)</code>
1854
1874
  </li>
1855
1875
 
1856
- <li class="covered" data-hits="66" data-linenumber="161">
1857
- <span class="hits">66</span>
1876
+ <li class="missed" data-hits="0" data-linenumber="161">
1877
+
1858
1878
 
1859
1879
  <code class="ruby"> val[k] = PathString.new(URI.decode(v.to_s))</code>
1860
1880
  </li>
@@ -1871,8 +1891,8 @@
1871
1891
  <code class="ruby"> end</code>
1872
1892
  </li>
1873
1893
 
1874
- <li class="covered" data-hits="44" data-linenumber="164">
1875
- <span class="hits">44</span>
1894
+ <li class="missed" data-hits="0" data-linenumber="164">
1895
+
1876
1896
 
1877
1897
  <code class="ruby"> val</code>
1878
1898
  </li>
@@ -1895,20 +1915,20 @@
1895
1915
  <code class="ruby"> def matcher(opts = {})</code>
1896
1916
  </li>
1897
1917
 
1898
- <li class="covered" data-hits="5" data-linenumber="168">
1899
- <span class="hits">5</span>
1918
+ <li class="missed" data-hits="0" data-linenumber="168">
1919
+
1900
1920
 
1901
1921
  <code class="ruby"> klone = self.clone</code>
1902
1922
  </li>
1903
1923
 
1904
- <li class="covered" data-hits="5" data-linenumber="169">
1905
- <span class="hits">5</span>
1924
+ <li class="missed" data-hits="0" data-linenumber="169">
1925
+
1906
1926
 
1907
1927
  <code class="ruby"> klone.unshift(&quot;:matcher&quot;)</code>
1908
1928
  </li>
1909
1929
 
1910
- <li class="covered" data-hits="5" data-linenumber="170">
1911
- <span class="hits">5</span>
1930
+ <li class="missed" data-hits="0" data-linenumber="170">
1931
+
1912
1932
 
1913
1933
  <code class="ruby"> VariableArray.new(klone.collect(&amp;:matcher))</code>
1914
1934
  </li>
@@ -1943,14 +1963,14 @@
1943
1963
  <code class="ruby"> define_method &quot;==_with_variable_array&quot; do |other|</code>
1944
1964
  </li>
1945
1965
 
1946
- <li class="covered" data-hits="32" data-linenumber="176">
1947
- <span class="hits">32</span>
1966
+ <li class="missed" data-hits="0" data-linenumber="176">
1967
+
1948
1968
 
1949
1969
  <code class="ruby"> return other == self if other.is_a?(VariableArray)</code>
1950
1970
  </li>
1951
1971
 
1952
- <li class="covered" data-hits="30" data-linenumber="177">
1953
- <span class="hits">30</span>
1972
+ <li class="missed" data-hits="0" data-linenumber="177">
1973
+
1954
1974
 
1955
1975
  <code class="ruby"> self.send(&quot;==_without_variable_array&quot;,other)</code>
1956
1976
  </li>
@@ -1995,14 +2015,14 @@
1995
2015
  </pre>
1996
2016
  </div>
1997
2017
 
1998
- <div class="source_table" id="9082f1e417147c61ee326c565b15a99cad953b35">
2018
+ <div class="source_table" id="7ee6b0eb3c9dcde6be408d6b4f636325ec8416f6">
1999
2019
  <div class="header">
2000
- <h3>lib/hash_dealer.rb</h3>
2001
- <h4><span class="green">97.37 %</span> covered</h4>
2020
+ <h3>lib/hash.rb</h3>
2021
+ <h4><span class="red">36.84 %</span> covered</h4>
2002
2022
  <div>
2003
- <b>38</b> relevant lines.
2004
- <span class="green"><b>37</b> lines covered</span> and
2005
- <span class="red"><b>1</b> lines missed.</span>
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>
2006
2026
  </div>
2007
2027
  </div>
2008
2028
 
@@ -2012,430 +2032,802 @@
2012
2032
  <li class="covered" data-hits="1" data-linenumber="1">
2013
2033
  <span class="hits">1</span>
2014
2034
 
2015
- <code class="ruby">require 'colorize'</code>
2035
+ <code class="ruby">class HashDealer</code>
2016
2036
  </li>
2017
2037
 
2018
- <li class="never" data-hits="" data-linenumber="2">
2019
-
2038
+ <li class="covered" data-hits="1" data-linenumber="2">
2039
+ <span class="hits">1</span>
2020
2040
 
2021
- <code class="ruby"></code>
2041
+ <code class="ruby"> class Hash &lt; ::Hash</code>
2022
2042
  </li>
2023
2043
 
2024
- <li class="covered" data-hits="1" data-linenumber="3">
2025
- <span class="hits">1</span>
2044
+ <li class="never" data-hits="" data-linenumber="3">
2026
2045
 
2027
- <code class="ruby">require File.expand_path('../path_string', __FILE__)</code>
2046
+
2047
+ <code class="ruby"></code>
2028
2048
  </li>
2029
2049
 
2030
2050
  <li class="covered" data-hits="1" data-linenumber="4">
2031
2051
  <span class="hits">1</span>
2032
2052
 
2033
- <code class="ruby">require File.expand_path('../variable_array', __FILE__)</code>
2053
+ <code class="ruby"> def initialize(optional_attributes = [])</code>
2034
2054
  </li>
2035
2055
 
2036
- <li class="covered" data-hits="1" data-linenumber="5">
2037
- <span class="hits">1</span>
2056
+ <li class="missed" data-hits="0" data-linenumber="5">
2038
2057
 
2039
- <code class="ruby">require File.expand_path('../core_extensions', __FILE__)</code>
2040
- </li>
2041
-
2042
- <li class="covered" data-hits="1" data-linenumber="6">
2043
- <span class="hits">1</span>
2044
2058
 
2045
- <code class="ruby">require File.expand_path('../matcher', __FILE__)</code>
2059
+ <code class="ruby"> @optional_attributes = optional_attributes</code>
2046
2060
  </li>
2047
2061
 
2048
- <li class="covered" data-hits="1" data-linenumber="7">
2049
- <span class="hits">1</span>
2062
+ <li class="never" data-hits="" data-linenumber="6">
2050
2063
 
2051
- <code class="ruby">require File.expand_path('../comparator', __FILE__)</code>
2064
+
2065
+ <code class="ruby"> end</code>
2052
2066
  </li>
2053
2067
 
2054
- <li class="never" data-hits="" data-linenumber="8">
2068
+ <li class="never" data-hits="" data-linenumber="7">
2055
2069
 
2056
2070
 
2057
2071
  <code class="ruby"></code>
2058
2072
  </li>
2059
2073
 
2060
- <li class="covered" data-hits="1" data-linenumber="9">
2074
+ <li class="covered" data-hits="1" data-linenumber="8">
2061
2075
  <span class="hits">1</span>
2062
2076
 
2063
- <code class="ruby">class HashDealer</code>
2077
+ <code class="ruby"> def eql?(other)</code>
2064
2078
  </li>
2065
2079
 
2066
- <li class="never" data-hits="" data-linenumber="10">
2080
+ <li class="missed" data-hits="0" data-linenumber="9">
2067
2081
 
2068
2082
 
2069
- <code class="ruby"> </code>
2083
+ <code class="ruby"> self_for_comparison = self.remove_optional_keys(self)</code>
2070
2084
  </li>
2071
2085
 
2072
- <li class="covered" data-hits="1" data-linenumber="11">
2073
- <span class="hits">1</span>
2086
+ <li class="missed" data-hits="0" data-linenumber="10">
2074
2087
 
2075
- <code class="ruby"> attr_accessor :parent</code>
2088
+
2089
+ <code class="ruby"> other_for_comparison = self.remove_optional_keys(other)</code>
2076
2090
  </li>
2077
2091
 
2078
- <li class="never" data-hits="" data-linenumber="12">
2092
+ <li class="never" data-hits="" data-linenumber="11">
2079
2093
 
2080
2094
 
2081
2095
  <code class="ruby"></code>
2082
2096
  </li>
2083
2097
 
2098
+ <li class="missed" data-hits="0" data-linenumber="12">
2099
+
2100
+
2101
+ <code class="ruby"> self_for_comparison.eql?(other_for_comparison)</code>
2102
+ </li>
2103
+
2084
2104
  <li class="never" data-hits="" data-linenumber="13">
2085
2105
 
2086
2106
 
2087
- <code class="ruby"> # cattr_accessor</code>
2107
+ <code class="ruby"> end</code>
2088
2108
  </li>
2089
2109
 
2090
- <li class="covered" data-hits="1" data-linenumber="14">
2091
- <span class="hits">1</span>
2110
+ <li class="never" data-hits="" data-linenumber="14">
2092
2111
 
2093
- <code class="ruby"> def self.hashes</code>
2112
+
2113
+ <code class="ruby"></code>
2094
2114
  </li>
2095
2115
 
2096
- <li class="covered" data-hits="212" data-linenumber="15">
2097
- <span class="hits">212</span>
2116
+ <li class="covered" data-hits="1" data-linenumber="15">
2117
+ <span class="hits">1</span>
2098
2118
 
2099
- <code class="ruby"> @hashes ||= {}</code>
2119
+ <code class="ruby"> def to_hash</code>
2100
2120
  </li>
2101
2121
 
2102
- <li class="never" data-hits="" data-linenumber="16">
2122
+ <li class="missed" data-hits="0" data-linenumber="16">
2103
2123
 
2104
2124
 
2105
- <code class="ruby"> end</code>
2125
+ <code class="ruby"> ret = ::Hash.new</code>
2106
2126
  </li>
2107
2127
 
2108
- <li class="never" data-hits="" data-linenumber="17">
2128
+ <li class="missed" data-hits="0" data-linenumber="17">
2109
2129
 
2110
2130
 
2111
- <code class="ruby"> </code>
2131
+ <code class="ruby"> self.each_pair do |k,v|</code>
2112
2132
  </li>
2113
2133
 
2114
- <li class="never" data-hits="" data-linenumber="18">
2134
+ <li class="missed" data-hits="0" data-linenumber="18">
2115
2135
 
2116
2136
 
2117
- <code class="ruby"> # define a method of the request factory</code>
2137
+ <code class="ruby"> ret[k] = v</code>
2118
2138
  </li>
2119
2139
 
2120
- <li class="covered" data-hits="1" data-linenumber="19">
2121
- <span class="hits">1</span>
2140
+ <li class="never" data-hits="" data-linenumber="19">
2122
2141
 
2123
- <code class="ruby"> def self.define(name, opts = {}, &amp;block)</code>
2142
+
2143
+ <code class="ruby"> end</code>
2124
2144
  </li>
2125
2145
 
2126
- <li class="covered" data-hits="23" data-linenumber="20">
2127
- <span class="hits">23</span>
2146
+ <li class="missed" data-hits="0" data-linenumber="20">
2128
2147
 
2129
- <code class="ruby"> self.hashes[name] = [opts, block]</code>
2148
+
2149
+ <code class="ruby"> ret</code>
2130
2150
  </li>
2131
2151
 
2132
2152
  <li class="never" data-hits="" data-linenumber="21">
2133
2153
 
2134
2154
 
2135
- <code class="ruby"> end</code>
2155
+ <code class="ruby"> end</code>
2136
2156
  </li>
2137
2157
 
2138
2158
  <li class="never" data-hits="" data-linenumber="22">
2139
2159
 
2140
2160
 
2141
- <code class="ruby"> </code>
2161
+ <code class="ruby"></code>
2142
2162
  </li>
2143
2163
 
2144
2164
  <li class="covered" data-hits="1" data-linenumber="23">
2145
2165
  <span class="hits">1</span>
2146
2166
 
2147
- <code class="ruby"> def self.roll(name, overrides = {})</code>
2167
+ <code class="ruby"> protected</code>
2148
2168
  </li>
2149
2169
 
2150
- <li class="covered" data-hits="40" data-linenumber="24">
2151
- <span class="hits">40</span>
2170
+ <li class="never" data-hits="" data-linenumber="24">
2152
2171
 
2153
- <code class="ruby"> raise Exception.new(&quot;No HashDealer called #{name}&quot;) unless self.hashes[name]</code>
2172
+
2173
+ <code class="ruby"></code>
2154
2174
  </li>
2155
2175
 
2156
- <li class="covered" data-hits="40" data-linenumber="25">
2157
- <span class="hits">40</span>
2176
+ <li class="covered" data-hits="1" data-linenumber="25">
2177
+ <span class="hits">1</span>
2158
2178
 
2159
- <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>
2179
+ <code class="ruby"> def remove_optional_keys(hash)</code>
2160
2180
  </li>
2161
2181
 
2162
- <li class="never" data-hits="" data-linenumber="26">
2182
+ <li class="missed" data-hits="0" data-linenumber="26">
2163
2183
 
2164
2184
 
2165
- <code class="ruby"></code>
2185
+ <code class="ruby"> hash = hash.clone.to_hash</code>
2166
2186
  </li>
2167
2187
 
2168
- <li class="covered" data-hits="40" data-linenumber="27">
2169
- <span class="hits">40</span>
2188
+ <li class="missed" data-hits="0" data-linenumber="27">
2170
2189
 
2171
- <code class="ruby"> self.hashes[name]._attributes(overrides)</code>
2190
+
2191
+ <code class="ruby"> @optional_attributes.each do |optional_attribute|</code>
2172
2192
  </li>
2173
2193
 
2174
- <li class="never" data-hits="" data-linenumber="28">
2194
+ <li class="missed" data-hits="0" data-linenumber="28">
2175
2195
 
2176
2196
 
2177
- <code class="ruby"> end</code>
2197
+ <code class="ruby"> hash.delete(optional_attribute)</code>
2178
2198
  </li>
2179
2199
 
2180
2200
  <li class="never" data-hits="" data-linenumber="29">
2181
2201
 
2182
2202
 
2183
- <code class="ruby"> </code>
2203
+ <code class="ruby"> end</code>
2184
2204
  </li>
2185
2205
 
2186
- <li class="never" data-hits="" data-linenumber="30">
2206
+ <li class="missed" data-hits="0" data-linenumber="30">
2187
2207
 
2188
2208
 
2189
- <code class="ruby"> # initializer just calls the block from within our DSL</code>
2209
+ <code class="ruby"> hash</code>
2190
2210
  </li>
2191
2211
 
2192
- <li class="covered" data-hits="1" data-linenumber="31">
2193
- <span class="hits">1</span>
2212
+ <li class="never" data-hits="" data-linenumber="31">
2194
2213
 
2195
- <code class="ruby"> def initialize(opts = {}, &amp;block)</code>
2196
- </li>
2197
-
2198
- <li class="covered" data-hits="23" data-linenumber="32">
2199
- <span class="hits">23</span>
2200
2214
 
2201
- <code class="ruby"> @parent = opts[:parent]</code>
2215
+ <code class="ruby"> end</code>
2202
2216
  </li>
2203
2217
 
2204
- <li class="covered" data-hits="23" data-linenumber="33">
2205
- <span class="hits">23</span>
2218
+ <li class="never" data-hits="" data-linenumber="32">
2206
2219
 
2207
- <code class="ruby"> instance_eval(&amp;block)</code>
2220
+
2221
+ <code class="ruby"></code>
2208
2222
  </li>
2209
2223
 
2210
- <li class="never" data-hits="" data-linenumber="34">
2224
+ <li class="never" data-hits="" data-linenumber="33">
2211
2225
 
2212
2226
 
2213
2227
  <code class="ruby"> end</code>
2214
2228
  </li>
2215
2229
 
2216
- <li class="never" data-hits="" data-linenumber="35">
2230
+ <li class="never" data-hits="" data-linenumber="34">
2217
2231
 
2218
2232
 
2219
- <code class="ruby"> </code>
2233
+ <code class="ruby">end</code>
2220
2234
  </li>
2221
2235
 
2222
- <li class="never" data-hits="" data-linenumber="36">
2223
-
2224
-
2225
- <code class="ruby"> # set the value as the root element for attributes</code>
2226
- </li>
2236
+ </ol>
2237
+ </pre>
2238
+ </div>
2227
2239
 
2228
- <li class="covered" data-hits="1" data-linenumber="37">
2240
+ <div class="source_table" id="9082f1e417147c61ee326c565b15a99cad953b35">
2241
+ <div class="header">
2242
+ <h3>lib/hash_dealer.rb</h3>
2243
+ <h4><span class="red">39.58 %</span> covered</h4>
2244
+ <div>
2245
+ <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>
2248
+ </div>
2249
+ </div>
2250
+
2251
+ <pre>
2252
+ <ol>
2253
+
2254
+ <li class="covered" data-hits="1" data-linenumber="1">
2255
+ <span class="hits">1</span>
2256
+
2257
+ <code class="ruby">require 'colorize'</code>
2258
+ </li>
2259
+
2260
+ <li class="never" data-hits="" data-linenumber="2">
2261
+
2262
+
2263
+ <code class="ruby"></code>
2264
+ </li>
2265
+
2266
+ <li class="covered" data-hits="1" data-linenumber="3">
2267
+ <span class="hits">1</span>
2268
+
2269
+ <code class="ruby">require File.expand_path('../path_string', __FILE__)</code>
2270
+ </li>
2271
+
2272
+ <li class="covered" data-hits="1" data-linenumber="4">
2273
+ <span class="hits">1</span>
2274
+
2275
+ <code class="ruby">require File.expand_path('../variable_array', __FILE__)</code>
2276
+ </li>
2277
+
2278
+ <li class="covered" data-hits="1" data-linenumber="5">
2279
+ <span class="hits">1</span>
2280
+
2281
+ <code class="ruby">require File.expand_path('../core_extensions', __FILE__)</code>
2282
+ </li>
2283
+
2284
+ <li class="covered" data-hits="1" data-linenumber="6">
2285
+ <span class="hits">1</span>
2286
+
2287
+ <code class="ruby">require File.expand_path('../matcher', __FILE__)</code>
2288
+ </li>
2289
+
2290
+ <li class="covered" data-hits="1" data-linenumber="7">
2291
+ <span class="hits">1</span>
2292
+
2293
+ <code class="ruby">require File.expand_path('../comparator', __FILE__)</code>
2294
+ </li>
2295
+
2296
+ <li class="covered" data-hits="1" data-linenumber="8">
2297
+ <span class="hits">1</span>
2298
+
2299
+ <code class="ruby">require File.expand_path('../hash', __FILE__)</code>
2300
+ </li>
2301
+
2302
+ <li class="never" data-hits="" data-linenumber="9">
2303
+
2304
+
2305
+ <code class="ruby"></code>
2306
+ </li>
2307
+
2308
+ <li class="covered" data-hits="1" data-linenumber="10">
2309
+ <span class="hits">1</span>
2310
+
2311
+ <code class="ruby">class HashDealer</code>
2312
+ </li>
2313
+
2314
+ <li class="never" data-hits="" data-linenumber="11">
2315
+
2316
+
2317
+ <code class="ruby"> </code>
2318
+ </li>
2319
+
2320
+ <li class="covered" data-hits="1" data-linenumber="12">
2321
+ <span class="hits">1</span>
2322
+
2323
+ <code class="ruby"> attr_accessor :parent</code>
2324
+ </li>
2325
+
2326
+ <li class="covered" data-hits="1" data-linenumber="13">
2327
+ <span class="hits">1</span>
2328
+
2329
+ <code class="ruby"> attr_accessor :optional_attributes</code>
2330
+ </li>
2331
+
2332
+ <li class="never" data-hits="" data-linenumber="14">
2333
+
2334
+
2335
+ <code class="ruby"></code>
2336
+ </li>
2337
+
2338
+ <li class="never" data-hits="" data-linenumber="15">
2339
+
2340
+
2341
+ <code class="ruby"> # cattr_accessor</code>
2342
+ </li>
2343
+
2344
+ <li class="covered" data-hits="1" data-linenumber="16">
2345
+ <span class="hits">1</span>
2346
+
2347
+ <code class="ruby"> def self.hashes</code>
2348
+ </li>
2349
+
2350
+ <li class="missed" data-hits="0" data-linenumber="17">
2351
+
2352
+
2353
+ <code class="ruby"> @hashes ||= {}</code>
2354
+ </li>
2355
+
2356
+ <li class="never" data-hits="" data-linenumber="18">
2357
+
2358
+
2359
+ <code class="ruby"> end</code>
2360
+ </li>
2361
+
2362
+ <li class="never" data-hits="" data-linenumber="19">
2363
+
2364
+
2365
+ <code class="ruby"> </code>
2366
+ </li>
2367
+
2368
+ <li class="never" data-hits="" data-linenumber="20">
2369
+
2370
+
2371
+ <code class="ruby"> # define a method of the request factory</code>
2372
+ </li>
2373
+
2374
+ <li class="covered" data-hits="1" data-linenumber="21">
2375
+ <span class="hits">1</span>
2376
+
2377
+ <code class="ruby"> def self.define(name, opts = {}, &amp;block)</code>
2378
+ </li>
2379
+
2380
+ <li class="missed" data-hits="0" data-linenumber="22">
2381
+
2382
+
2383
+ <code class="ruby"> self.hashes[name] = [opts, block]</code>
2384
+ </li>
2385
+
2386
+ <li class="never" data-hits="" data-linenumber="23">
2387
+
2388
+
2389
+ <code class="ruby"> end</code>
2390
+ </li>
2391
+
2392
+ <li class="never" data-hits="" data-linenumber="24">
2393
+
2394
+
2395
+ <code class="ruby"> </code>
2396
+ </li>
2397
+
2398
+ <li class="covered" data-hits="1" data-linenumber="25">
2399
+ <span class="hits">1</span>
2400
+
2401
+ <code class="ruby"> def self.roll(name, overrides = {})</code>
2402
+ </li>
2403
+
2404
+ <li class="missed" data-hits="0" data-linenumber="26">
2405
+
2406
+
2407
+ <code class="ruby"> raise Exception.new(&quot;No HashDealer called #{name}&quot;) unless self.hashes[name]</code>
2408
+ </li>
2409
+
2410
+ <li class="missed" data-hits="0" data-linenumber="27">
2411
+
2412
+
2413
+ <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
+ </li>
2415
+
2416
+ <li class="never" data-hits="" data-linenumber="28">
2417
+
2418
+
2419
+ <code class="ruby"></code>
2420
+ </li>
2421
+
2422
+ <li class="missed" data-hits="0" data-linenumber="29">
2423
+
2424
+
2425
+ <code class="ruby"> self.hashes[name]._attributes(overrides)</code>
2426
+ </li>
2427
+
2428
+ <li class="never" data-hits="" data-linenumber="30">
2429
+
2430
+
2431
+ <code class="ruby"> end</code>
2432
+ </li>
2433
+
2434
+ <li class="never" data-hits="" data-linenumber="31">
2435
+
2436
+
2437
+ <code class="ruby"> </code>
2438
+ </li>
2439
+
2440
+ <li class="never" data-hits="" data-linenumber="32">
2441
+
2442
+
2443
+ <code class="ruby"> # initializer just calls the block from within our DSL</code>
2444
+ </li>
2445
+
2446
+ <li class="covered" data-hits="1" data-linenumber="33">
2447
+ <span class="hits">1</span>
2448
+
2449
+ <code class="ruby"> def initialize(opts = {}, &amp;block)</code>
2450
+ </li>
2451
+
2452
+ <li class="missed" data-hits="0" data-linenumber="34">
2453
+
2454
+
2455
+ <code class="ruby"> @parent = opts[:parent]</code>
2456
+ </li>
2457
+
2458
+ <li class="missed" data-hits="0" data-linenumber="35">
2459
+
2460
+
2461
+ <code class="ruby"> @optional_attributes = []</code>
2462
+ </li>
2463
+
2464
+ <li class="missed" data-hits="0" data-linenumber="36">
2465
+
2466
+
2467
+ <code class="ruby"> instance_eval(&amp;block)</code>
2468
+ </li>
2469
+
2470
+ <li class="never" data-hits="" data-linenumber="37">
2471
+
2472
+
2473
+ <code class="ruby"> end</code>
2474
+ </li>
2475
+
2476
+ <li class="never" data-hits="" data-linenumber="38">
2477
+
2478
+
2479
+ <code class="ruby"> </code>
2480
+ </li>
2481
+
2482
+ <li class="never" data-hits="" data-linenumber="39">
2483
+
2484
+
2485
+ <code class="ruby"> # set the value as the root element for attributes</code>
2486
+ </li>
2487
+
2488
+ <li class="covered" data-hits="1" data-linenumber="40">
2229
2489
  <span class="hits">1</span>
2230
2490
 
2231
2491
  <code class="ruby"> def root(value)</code>
2232
2492
  </li>
2233
2493
 
2234
- <li class="covered" data-hits="3" data-linenumber="38">
2235
- <span class="hits">3</span>
2494
+ <li class="missed" data-hits="0" data-linenumber="41">
2495
+
2236
2496
 
2237
2497
  <code class="ruby"> @attributes = value</code>
2238
2498
  </li>
2239
2499
 
2240
- <li class="never" data-hits="" data-linenumber="39">
2500
+ <li class="never" data-hits="" data-linenumber="42">
2241
2501
 
2242
2502
 
2243
2503
  <code class="ruby"> end</code>
2244
2504
  </li>
2245
2505
 
2246
- <li class="never" data-hits="" data-linenumber="40">
2506
+ <li class="never" data-hits="" data-linenumber="43">
2247
2507
 
2248
2508
 
2249
2509
  <code class="ruby"></code>
2250
2510
  </li>
2251
2511
 
2252
- <li class="covered" data-hits="1" data-linenumber="41">
2512
+ <li class="covered" data-hits="1" data-linenumber="44">
2253
2513
  <span class="hits">1</span>
2254
2514
 
2255
2515
  <code class="ruby"> def [](val)</code>
2256
2516
  </li>
2257
2517
 
2258
- <li class="missed" data-hits="0" data-linenumber="42">
2518
+ <li class="missed" data-hits="0" data-linenumber="45">
2259
2519
 
2260
2520
 
2261
2521
  <code class="ruby"> @attributes[val]</code>
2262
2522
  </li>
2263
2523
 
2264
- <li class="never" data-hits="" data-linenumber="43">
2524
+ <li class="never" data-hits="" data-linenumber="46">
2265
2525
 
2266
2526
 
2267
2527
  <code class="ruby"> end</code>
2268
2528
  </li>
2269
2529
 
2270
- <li class="never" data-hits="" data-linenumber="44">
2530
+ <li class="never" data-hits="" data-linenumber="47">
2271
2531
 
2272
2532
 
2273
2533
  <code class="ruby"> </code>
2274
2534
  </li>
2275
2535
 
2276
- <li class="never" data-hits="" data-linenumber="45">
2536
+ <li class="never" data-hits="" data-linenumber="48">
2277
2537
 
2278
2538
 
2279
2539
  <code class="ruby"> # get the stored attributes for this HashDealer</code>
2280
2540
  </li>
2281
2541
 
2282
- <li class="covered" data-hits="1" data-linenumber="46">
2542
+ <li class="covered" data-hits="1" data-linenumber="49">
2283
2543
  <span class="hits">1</span>
2284
2544
 
2285
2545
  <code class="ruby"> def _attributes(overrides)</code>
2286
2546
  </li>
2287
2547
 
2288
- <li class="never" data-hits="" data-linenumber="47">
2548
+ <li class="never" data-hits="" data-linenumber="50">
2289
2549
 
2290
2550
 
2291
2551
  <code class="ruby"> # allows us to set a root value</code>
2292
2552
  </li>
2293
2553
 
2294
- <li class="covered" data-hits="40" data-linenumber="48">
2295
- <span class="hits">40</span>
2554
+ <li class="missed" data-hits="0" data-linenumber="51">
2555
+
2296
2556
 
2297
2557
  <code class="ruby"> return @attributes.clone unless @attributes.is_a?(Hash)</code>
2298
2558
  </li>
2299
2559
 
2300
- <li class="covered" data-hits="38" data-linenumber="49">
2301
- <span class="hits">38</span>
2560
+ <li class="never" data-hits="" data-linenumber="52">
2561
+
2562
+
2563
+ <code class="ruby"></code>
2564
+ </li>
2565
+
2566
+ <li class="missed" data-hits="0" data-linenumber="53">
2567
+
2568
+
2569
+ <code class="ruby"> if @parent.present?</code>
2570
+ </li>
2571
+
2572
+ <li class="missed" data-hits="0" data-linenumber="54">
2573
+
2574
+
2575
+ <code class="ruby"> att = HashDealer.roll(@parent.to_sym)</code>
2576
+ </li>
2577
+
2578
+ <li class="never" data-hits="" data-linenumber="55">
2579
+
2580
+
2581
+ <code class="ruby"> else</code>
2582
+ </li>
2583
+
2584
+ <li class="missed" data-hits="0" data-linenumber="56">
2585
+
2586
+
2587
+ <code class="ruby"> att = HashDealer::Hash.new(self.optional_attributes)</code>
2588
+ </li>
2589
+
2590
+ <li class="never" data-hits="" data-linenumber="57">
2591
+
2592
+
2593
+ <code class="ruby"> end</code>
2594
+ </li>
2595
+
2596
+ <li class="never" data-hits="" data-linenumber="58">
2597
+
2302
2598
 
2303
- <code class="ruby"> att = @parent ? HashDealer.roll(@parent.to_sym) : Hash.new</code>
2599
+ <code class="ruby"></code>
2304
2600
  </li>
2305
2601
 
2306
- <li class="covered" data-hits="38" data-linenumber="50">
2307
- <span class="hits">38</span>
2602
+ <li class="missed" data-hits="0" data-linenumber="59">
2603
+
2308
2604
 
2309
2605
  <code class="ruby"> @attributes.each do |k,v|</code>
2310
2606
  </li>
2311
2607
 
2312
- <li class="covered" data-hits="60" data-linenumber="51">
2313
- <span class="hits">60</span>
2608
+ <li class="missed" data-hits="0" data-linenumber="60">
2609
+
2314
2610
 
2315
2611
  <code class="ruby"> att[k] = v.is_a?(Proc) ? v.call(att.merge(overrides)) : v</code>
2316
2612
  </li>
2317
2613
 
2318
- <li class="never" data-hits="" data-linenumber="52">
2614
+ <li class="never" data-hits="" data-linenumber="61">
2319
2615
 
2320
2616
 
2321
2617
  <code class="ruby"> end</code>
2322
2618
  </li>
2323
2619
 
2324
- <li class="never" data-hits="" data-linenumber="53">
2620
+ <li class="never" data-hits="" data-linenumber="62">
2325
2621
 
2326
2622
 
2327
2623
  <code class="ruby"> # if we have a hash as the first arg, it would override the attributes</code>
2328
2624
  </li>
2329
2625
 
2330
- <li class="covered" data-hits="38" data-linenumber="54">
2331
- <span class="hits">38</span>
2626
+ <li class="missed" data-hits="0" data-linenumber="63">
2627
+
2332
2628
 
2333
2629
  <code class="ruby"> overrides.each_pair do |k,v|</code>
2334
2630
  </li>
2335
2631
 
2336
- <li class="covered" data-hits="2" data-linenumber="55">
2337
- <span class="hits">2</span>
2632
+ <li class="missed" data-hits="0" data-linenumber="64">
2633
+
2338
2634
 
2339
2635
  <code class="ruby"> att[k.to_sym] = v if att.has_key?(k.to_sym)</code>
2340
2636
  </li>
2341
2637
 
2342
- <li class="never" data-hits="" data-linenumber="56">
2638
+ <li class="never" data-hits="" data-linenumber="65">
2343
2639
 
2344
2640
 
2345
2641
  <code class="ruby"> end</code>
2346
2642
  </li>
2347
2643
 
2348
- <li class="covered" data-hits="38" data-linenumber="57">
2349
- <span class="hits">38</span>
2644
+ <li class="missed" data-hits="0" data-linenumber="66">
2645
+
2350
2646
 
2351
2647
  <code class="ruby"> att</code>
2352
2648
  </li>
2353
2649
 
2354
- <li class="never" data-hits="" data-linenumber="58">
2650
+ <li class="never" data-hits="" data-linenumber="67">
2355
2651
 
2356
2652
 
2357
2653
  <code class="ruby"> end</code>
2358
2654
  </li>
2359
2655
 
2360
- <li class="never" data-hits="" data-linenumber="59">
2656
+ <li class="never" data-hits="" data-linenumber="68">
2361
2657
 
2362
2658
 
2363
2659
  <code class="ruby"> </code>
2364
2660
  </li>
2365
2661
 
2366
- <li class="covered" data-hits="1" data-linenumber="60">
2662
+ <li class="covered" data-hits="1" data-linenumber="69">
2367
2663
  <span class="hits">1</span>
2368
2664
 
2369
2665
  <code class="ruby"> protected</code>
2370
2666
  </li>
2371
2667
 
2372
- <li class="never" data-hits="" data-linenumber="61">
2668
+ <li class="never" data-hits="" data-linenumber="70">
2373
2669
 
2374
2670
 
2375
2671
  <code class="ruby"> </code>
2376
2672
  </li>
2377
2673
 
2378
- <li class="never" data-hits="" data-linenumber="62">
2674
+ <li class="never" data-hits="" data-linenumber="71">
2379
2675
 
2380
2676
 
2381
2677
  <code class="ruby"> # method missing</code>
2382
2678
  </li>
2383
2679
 
2384
- <li class="covered" data-hits="1" data-linenumber="63">
2680
+ <li class="covered" data-hits="1" data-linenumber="72">
2385
2681
  <span class="hits">1</span>
2386
2682
 
2387
2683
  <code class="ruby"> def method_missing(meth, *args, &amp;block)</code>
2388
2684
  </li>
2389
2685
 
2390
- <li class="covered" data-hits="31" data-linenumber="64">
2391
- <span class="hits">31</span>
2686
+ <li class="never" data-hits="" data-linenumber="73">
2687
+
2688
+
2689
+ <code class="ruby"></code>
2690
+ </li>
2691
+
2692
+ <li class="missed" data-hits="0" data-linenumber="74">
2693
+
2694
+
2695
+ <code class="ruby"> unless args.length &gt; 0 || block_given?</code>
2696
+ </li>
2697
+
2698
+ <li class="never" data-hits="" data-linenumber="75">
2699
+
2700
+
2701
+ <code class="ruby"> raise Exception.new(</code>
2702
+ </li>
2703
+
2704
+ <li class="never" data-hits="" data-linenumber="76">
2705
+
2706
+
2707
+ <code class="ruby"> &quot;Please provide either a String or a block to #{meth}&quot;</code>
2708
+ </li>
2709
+
2710
+ <li class="missed" data-hits="0" data-linenumber="77">
2711
+
2712
+
2713
+ <code class="ruby"> )</code>
2714
+ </li>
2715
+
2716
+ <li class="never" data-hits="" data-linenumber="78">
2717
+
2718
+
2719
+ <code class="ruby"> end</code>
2720
+ </li>
2721
+
2722
+ <li class="never" data-hits="" data-linenumber="79">
2723
+
2724
+
2725
+ <code class="ruby"> # a second arg is the options hash</code>
2726
+ </li>
2727
+
2728
+ <li class="missed" data-hits="0" data-linenumber="80">
2729
+
2730
+
2731
+ <code class="ruby"> opts = args[1] || {}</code>
2732
+ </li>
2733
+
2734
+ <li class="never" data-hits="" data-linenumber="81">
2735
+
2736
+
2737
+ <code class="ruby"> </code>
2738
+ </li>
2739
+
2740
+ <li class="never" data-hits="" data-linenumber="82">
2741
+
2742
+
2743
+ <code class="ruby"> # the value is the first arg</code>
2744
+ </li>
2745
+
2746
+ <li class="missed" data-hits="0" data-linenumber="83">
2747
+
2748
+
2749
+ <code class="ruby"> value = args[0]</code>
2750
+ </li>
2751
+
2752
+ <li class="never" data-hits="" data-linenumber="84">
2753
+
2754
+
2755
+ <code class="ruby"> </code>
2756
+ </li>
2757
+
2758
+ <li class="missed" data-hits="0" data-linenumber="85">
2759
+
2760
+
2761
+ <code class="ruby"> if opts[:optional]</code>
2762
+ </li>
2763
+
2764
+ <li class="missed" data-hits="0" data-linenumber="86">
2765
+
2766
+
2767
+ <code class="ruby"> @optional_attributes &lt;&lt; meth.to_sym</code>
2768
+ </li>
2769
+
2770
+ <li class="never" data-hits="" data-linenumber="87">
2771
+
2772
+
2773
+ <code class="ruby"> end</code>
2774
+ </li>
2775
+
2776
+ <li class="never" data-hits="" data-linenumber="88">
2777
+
2392
2778
 
2393
- <code class="ruby"> raise Exception.new(&quot;Please provide either a String or a block to #{meth}&quot;) unless (args.length == 1 || (args.empty? &amp;&amp; block_given?))</code>
2779
+ <code class="ruby"></code>
2394
2780
  </li>
2395
2781
 
2396
- <li class="covered" data-hits="31" data-linenumber="65">
2397
- <span class="hits">31</span>
2782
+ <li class="missed" data-hits="0" data-linenumber="89">
2783
+
2398
2784
 
2399
2785
  <code class="ruby"> @attributes ||= Hash.new</code>
2400
2786
  </li>
2401
2787
 
2402
- <li class="covered" data-hits="31" data-linenumber="66">
2403
- <span class="hits">31</span>
2788
+ <li class="never" data-hits="" data-linenumber="90">
2789
+
2790
+
2791
+ <code class="ruby"> </code>
2792
+ </li>
2793
+
2794
+ <li class="missed" data-hits="0" data-linenumber="91">
2795
+
2404
2796
 
2405
2797
  <code class="ruby"> if block_given?</code>
2406
2798
  </li>
2407
2799
 
2408
- <li class="covered" data-hits="5" data-linenumber="67">
2409
- <span class="hits">5</span>
2800
+ <li class="missed" data-hits="0" data-linenumber="92">
2801
+
2410
2802
 
2411
2803
  <code class="ruby"> @attributes[meth.to_sym] = block</code>
2412
2804
  </li>
2413
2805
 
2414
- <li class="never" data-hits="" data-linenumber="68">
2806
+ <li class="never" data-hits="" data-linenumber="93">
2415
2807
 
2416
2808
 
2417
2809
  <code class="ruby"> else</code>
2418
2810
  </li>
2419
2811
 
2420
- <li class="covered" data-hits="26" data-linenumber="69">
2421
- <span class="hits">26</span>
2812
+ <li class="missed" data-hits="0" data-linenumber="94">
2813
+
2422
2814
 
2423
- <code class="ruby"> @attributes[meth.to_sym] = args.first</code>
2815
+ <code class="ruby"> @attributes[meth.to_sym] = value</code>
2424
2816
  </li>
2425
2817
 
2426
- <li class="never" data-hits="" data-linenumber="70">
2818
+ <li class="never" data-hits="" data-linenumber="95">
2427
2819
 
2428
2820
 
2429
2821
  <code class="ruby"> end</code>
2430
2822
  </li>
2431
2823
 
2432
- <li class="never" data-hits="" data-linenumber="71">
2824
+ <li class="never" data-hits="" data-linenumber="96">
2433
2825
 
2434
2826
 
2435
2827
  <code class="ruby"> end</code>
2436
2828
  </li>
2437
2829
 
2438
- <li class="never" data-hits="" data-linenumber="72">
2830
+ <li class="never" data-hits="" data-linenumber="97">
2439
2831
 
2440
2832
 
2441
2833
  <code class="ruby">end</code>
@@ -2448,11 +2840,11 @@
2448
2840
  <div class="source_table" id="4cc7721b735165eef9b1e5afd4a168c1a72d5103">
2449
2841
  <div class="header">
2450
2842
  <h3>lib/matcher.rb</h3>
2451
- <h4><span class="red">48.84 %</span> covered</h4>
2843
+ <h4><span class="red">11.63 %</span> covered</h4>
2452
2844
  <div>
2453
2845
  <b>43</b> relevant lines.
2454
- <span class="green"><b>21</b> lines covered</span> and
2455
- <span class="red"><b>22</b> lines missed.</span>
2846
+ <span class="green"><b>5</b> lines covered</span> and
2847
+ <span class="red"><b>38</b> lines missed.</span>
2456
2848
  </div>
2457
2849
  </div>
2458
2850
 
@@ -2567,8 +2959,8 @@
2567
2959
  <code class="ruby"> </code>
2568
2960
  </li>
2569
2961
 
2570
- <li class="covered" data-hits="10" data-linenumber="19">
2571
- <span class="hits">10</span>
2962
+ <li class="missed" data-hits="0" data-linenumber="19">
2963
+
2572
2964
 
2573
2965
  <code class="ruby"> actual = Comparator.normalize_value(actual)</code>
2574
2966
  </li>
@@ -2579,26 +2971,26 @@
2579
2971
  <code class="ruby"> </code>
2580
2972
  </li>
2581
2973
 
2582
- <li class="covered" data-hits="10" data-linenumber="21">
2583
- <span class="hits">10</span>
2974
+ <li class="missed" data-hits="0" data-linenumber="21">
2975
+
2584
2976
 
2585
2977
  <code class="ruby"> match do |expected|</code>
2586
2978
  </li>
2587
2979
 
2588
- <li class="covered" data-hits="10" data-linenumber="22">
2589
- <span class="hits">10</span>
2980
+ <li class="missed" data-hits="0" data-linenumber="22">
2981
+
2590
2982
 
2591
2983
  <code class="ruby"> expected = Comparator.normalize_value(expected)</code>
2592
2984
  </li>
2593
2985
 
2594
- <li class="covered" data-hits="10" data-linenumber="23">
2595
- <span class="hits">10</span>
2986
+ <li class="missed" data-hits="0" data-linenumber="23">
2987
+
2596
2988
 
2597
2989
  <code class="ruby"> @diff = Comparator.diff(actual, expected)</code>
2598
2990
  </li>
2599
2991
 
2600
- <li class="covered" data-hits="10" data-linenumber="24">
2601
- <span class="hits">10</span>
2992
+ <li class="missed" data-hits="0" data-linenumber="24">
2993
+
2602
2994
 
2603
2995
  <code class="ruby"> @diff == {}</code>
2604
2996
  </li>
@@ -2615,8 +3007,8 @@
2615
3007
  <code class="ruby"> </code>
2616
3008
  </li>
2617
3009
 
2618
- <li class="covered" data-hits="10" data-linenumber="27">
2619
- <span class="hits">10</span>
3010
+ <li class="missed" data-hits="0" data-linenumber="27">
3011
+
2620
3012
 
2621
3013
  <code class="ruby"> failure_message_for_should do |container|</code>
2622
3014
  </li>
@@ -2657,8 +3049,8 @@
2657
3049
  <code class="ruby"> </code>
2658
3050
  </li>
2659
3051
 
2660
- <li class="covered" data-hits="10" data-linenumber="34">
2661
- <span class="hits">10</span>
3052
+ <li class="missed" data-hits="0" data-linenumber="34">
3053
+
2662
3054
 
2663
3055
  <code class="ruby"> failure_message_for_should_not do |container|</code>
2664
3056
  </li>
@@ -2723,8 +3115,8 @@
2723
3115
  <code class="ruby"> </code>
2724
3116
  </li>
2725
3117
 
2726
- <li class="covered" data-hits="2" data-linenumber="45">
2727
- <span class="hits">2</span>
3118
+ <li class="missed" data-hits="0" data-linenumber="45">
3119
+
2728
3120
 
2729
3121
  <code class="ruby"> actual = Comparator.normalize_value(actual)</code>
2730
3122
  </li>
@@ -2735,38 +3127,38 @@
2735
3127
  <code class="ruby"> </code>
2736
3128
  </li>
2737
3129
 
2738
- <li class="covered" data-hits="2" data-linenumber="47">
2739
- <span class="hits">2</span>
3130
+ <li class="missed" data-hits="0" data-linenumber="47">
3131
+
2740
3132
 
2741
3133
  <code class="ruby"> match do |expected|</code>
2742
3134
  </li>
2743
3135
 
2744
- <li class="covered" data-hits="2" data-linenumber="48">
2745
- <span class="hits">2</span>
3136
+ <li class="missed" data-hits="0" data-linenumber="48">
3137
+
2746
3138
 
2747
3139
  <code class="ruby"> expected = Comparator.normalize_value(expected)</code>
2748
3140
  </li>
2749
3141
 
2750
- <li class="covered" data-hits="2" data-linenumber="49">
2751
- <span class="hits">2</span>
3142
+ <li class="missed" data-hits="0" data-linenumber="49">
3143
+
2752
3144
 
2753
3145
  <code class="ruby"> expected = expected.first if expected.is_a?(Array)</code>
2754
3146
  </li>
2755
3147
 
2756
- <li class="covered" data-hits="2" data-linenumber="50">
2757
- <span class="hits">2</span>
3148
+ <li class="missed" data-hits="0" data-linenumber="50">
3149
+
2758
3150
 
2759
3151
  <code class="ruby"> actual = actual.first if actual.is_a?(Array)</code>
2760
3152
  </li>
2761
3153
 
2762
- <li class="covered" data-hits="2" data-linenumber="51">
2763
- <span class="hits">2</span>
3154
+ <li class="missed" data-hits="0" data-linenumber="51">
3155
+
2764
3156
 
2765
3157
  <code class="ruby"> @diff = Comparator.diff(actual, expected)</code>
2766
3158
  </li>
2767
3159
 
2768
- <li class="covered" data-hits="2" data-linenumber="52">
2769
- <span class="hits">2</span>
3160
+ <li class="missed" data-hits="0" data-linenumber="52">
3161
+
2770
3162
 
2771
3163
  <code class="ruby"> @diff == {}</code>
2772
3164
  </li>
@@ -2783,8 +3175,8 @@
2783
3175
  <code class="ruby"> </code>
2784
3176
  </li>
2785
3177
 
2786
- <li class="covered" data-hits="2" data-linenumber="55">
2787
- <span class="hits">2</span>
3178
+ <li class="missed" data-hits="0" data-linenumber="55">
3179
+
2788
3180
 
2789
3181
  <code class="ruby"> failure_message_for_should do |container|</code>
2790
3182
  </li>
@@ -2825,8 +3217,8 @@
2825
3217
  <code class="ruby"> </code>
2826
3218
  </li>
2827
3219
 
2828
- <li class="covered" data-hits="2" data-linenumber="62">
2829
- <span class="hits">2</span>
3220
+ <li class="missed" data-hits="0" data-linenumber="62">
3221
+
2830
3222
 
2831
3223
  <code class="ruby"> failure_message_for_should_not do |container|</code>
2832
3224
  </li>
@@ -2880,11 +3272,11 @@
2880
3272
  <div class="source_table" id="a262d63e5dc399019853b13f0e4b947eb9908f86">
2881
3273
  <div class="header">
2882
3274
  <h3>lib/path_string.rb</h3>
2883
- <h4><span class="red">69.57 %</span> covered</h4>
3275
+ <h4><span class="red">18.84 %</span> covered</h4>
2884
3276
  <div>
2885
3277
  <b>69</b> relevant lines.
2886
- <span class="green"><b>48</b> lines covered</span> and
2887
- <span class="red"><b>21</b> lines missed.</span>
3278
+ <span class="green"><b>13</b> lines covered</span> and
3279
+ <span class="red"><b>56</b> lines missed.</span>
2888
3280
  </div>
2889
3281
  </div>
2890
3282
 
@@ -2927,26 +3319,26 @@
2927
3319
  <code class="ruby"> # if either is a string that starts with a :, return true</code>
2928
3320
  </li>
2929
3321
 
2930
- <li class="covered" data-hits="54" data-linenumber="7">
2931
- <span class="hits">54</span>
3322
+ <li class="missed" data-hits="0" data-linenumber="7">
3323
+
2932
3324
 
2933
3325
  <code class="ruby"> if self =~ /^:/ || (other.is_a?(Numeric) &amp;&amp; self =~ /^:\d+$/) || other =~ /^:/</code>
2934
3326
  </li>
2935
3327
 
2936
- <li class="covered" data-hits="34" data-linenumber="8">
2937
- <span class="hits">34</span>
3328
+ <li class="missed" data-hits="0" data-linenumber="8">
3329
+
2938
3330
 
2939
3331
  <code class="ruby"> return true</code>
2940
3332
  </li>
2941
3333
 
2942
- <li class="covered" data-hits="20" data-linenumber="9">
2943
- <span class="hits">20</span>
3334
+ <li class="missed" data-hits="0" data-linenumber="9">
3335
+
2944
3336
 
2945
3337
  <code class="ruby"> elsif self =~ /\/:/ || other =~ /\/:/</code>
2946
3338
  </li>
2947
3339
 
2948
- <li class="covered" data-hits="1" data-linenumber="10">
2949
- <span class="hits">1</span>
3340
+ <li class="missed" data-hits="0" data-linenumber="10">
3341
+
2950
3342
 
2951
3343
  <code class="ruby"> return self.class.paths_match?(self, other)</code>
2952
3344
  </li>
@@ -2957,8 +3349,8 @@
2957
3349
  <code class="ruby"> else</code>
2958
3350
  </li>
2959
3351
 
2960
- <li class="covered" data-hits="19" data-linenumber="12">
2961
- <span class="hits">19</span>
3352
+ <li class="missed" data-hits="0" data-linenumber="12">
3353
+
2962
3354
 
2963
3355
  <code class="ruby"> super</code>
2964
3356
  </li>
@@ -2993,8 +3385,8 @@
2993
3385
  <code class="ruby"> def self.paths_match?(a, b)</code>
2994
3386
  </li>
2995
3387
 
2996
- <li class="covered" data-hits="2" data-linenumber="18">
2997
- <span class="hits">2</span>
3388
+ <li class="missed" data-hits="0" data-linenumber="18">
3389
+
2998
3390
 
2999
3391
  <code class="ruby"> self.get_zipped_array(a, b).each do |kp, ep|</code>
3000
3392
  </li>
@@ -3005,8 +3397,8 @@
3005
3397
  <code class="ruby"> # only known path can have things prefixed with colons which is protected</code>
3006
3398
  </li>
3007
3399
 
3008
- <li class="covered" data-hits="6" data-linenumber="20">
3009
- <span class="hits">6</span>
3400
+ <li class="missed" data-hits="0" data-linenumber="20">
3401
+
3010
3402
 
3011
3403
  <code class="ruby"> if kp.nil? || ep.nil?</code>
3012
3404
  </li>
@@ -3041,8 +3433,8 @@
3041
3433
  <code class="ruby"> end</code>
3042
3434
  </li>
3043
3435
 
3044
- <li class="covered" data-hits="2" data-linenumber="26">
3045
- <span class="hits">2</span>
3436
+ <li class="missed" data-hits="0" data-linenumber="26">
3437
+
3046
3438
 
3047
3439
  <code class="ruby"> return true</code>
3048
3440
  </li>
@@ -3065,20 +3457,20 @@
3065
3457
  <code class="ruby"> def self.as_sorted_json(val)</code>
3066
3458
  </li>
3067
3459
 
3068
- <li class="covered" data-hits="6" data-linenumber="30">
3069
- <span class="hits">6</span>
3460
+ <li class="missed" data-hits="0" data-linenumber="30">
3461
+
3070
3462
 
3071
3463
  <code class="ruby"> val = self.sort_json(val)</code>
3072
3464
  </li>
3073
3465
 
3074
- <li class="covered" data-hits="6" data-linenumber="31">
3075
- <span class="hits">6</span>
3466
+ <li class="missed" data-hits="0" data-linenumber="31">
3467
+
3076
3468
 
3077
3469
  <code class="ruby"> val = val.pathify_strings</code>
3078
3470
  </li>
3079
3471
 
3080
- <li class="covered" data-hits="6" data-linenumber="32">
3081
- <span class="hits">6</span>
3472
+ <li class="missed" data-hits="0" data-linenumber="32">
3473
+
3082
3474
 
3083
3475
  <code class="ruby"> val</code>
3084
3476
  </li>
@@ -3107,32 +3499,32 @@
3107
3499
  <code class="ruby"> def self.sort_json(val)</code>
3108
3500
  </li>
3109
3501
 
3110
- <li class="covered" data-hits="8" data-linenumber="37">
3111
- <span class="hits">8</span>
3502
+ <li class="missed" data-hits="0" data-linenumber="37">
3503
+
3112
3504
 
3113
3505
  <code class="ruby"> return val if val.is_a?(TimeDateMatcher)</code>
3114
3506
  </li>
3115
3507
 
3116
- <li class="covered" data-hits="8" data-linenumber="38">
3117
- <span class="hits">8</span>
3508
+ <li class="missed" data-hits="0" data-linenumber="38">
3509
+
3118
3510
 
3119
3511
  <code class="ruby"> val = ActiveSupport::JSON.decode(val) if val.is_a?(String)</code>
3120
3512
  </li>
3121
3513
 
3122
- <li class="covered" data-hits="8" data-linenumber="39">
3123
- <span class="hits">8</span>
3514
+ <li class="missed" data-hits="0" data-linenumber="39">
3515
+
3124
3516
 
3125
3517
  <code class="ruby"> val = self.stringify_keys(val).sort if val.is_a?(Hash)</code>
3126
3518
  </li>
3127
3519
 
3128
- <li class="covered" data-hits="104" data-linenumber="40">
3129
- <span class="hits">104</span>
3520
+ <li class="missed" data-hits="0" data-linenumber="40">
3521
+
3130
3522
 
3131
3523
  <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>
3132
3524
  </li>
3133
3525
 
3134
- <li class="covered" data-hits="8" data-linenumber="41">
3135
- <span class="hits">8</span>
3526
+ <li class="missed" data-hits="0" data-linenumber="41">
3527
+
3136
3528
 
3137
3529
  <code class="ruby"> val.sort</code>
3138
3530
  </li>
@@ -3359,20 +3751,20 @@
3359
3751
  <code class="ruby"> def self.stringify_keys(hash)</code>
3360
3752
  </li>
3361
3753
 
3362
- <li class="covered" data-hits="8" data-linenumber="79">
3363
- <span class="hits">8</span>
3754
+ <li class="missed" data-hits="0" data-linenumber="79">
3755
+
3364
3756
 
3365
3757
  <code class="ruby"> new_hash = hash.class.new</code>
3366
3758
  </li>
3367
3759
 
3368
- <li class="covered" data-hits="8" data-linenumber="80">
3369
- <span class="hits">8</span>
3760
+ <li class="missed" data-hits="0" data-linenumber="80">
3761
+
3370
3762
 
3371
3763
  <code class="ruby"> hash.each_pair do |k,v|</code>
3372
3764
  </li>
3373
3765
 
3374
- <li class="covered" data-hits="36" data-linenumber="81">
3375
- <span class="hits">36</span>
3766
+ <li class="missed" data-hits="0" data-linenumber="81">
3767
+
3376
3768
 
3377
3769
  <code class="ruby"> new_hash[k.to_s] = case v</code>
3378
3770
  </li>
@@ -3383,8 +3775,8 @@
3383
3775
  <code class="ruby"> when Hash</code>
3384
3776
  </li>
3385
3777
 
3386
- <li class="covered" data-hits="1" data-linenumber="83">
3387
- <span class="hits">1</span>
3778
+ <li class="missed" data-hits="0" data-linenumber="83">
3779
+
3388
3780
 
3389
3781
  <code class="ruby"> self.stringify_keys(v)</code>
3390
3782
  </li>
@@ -3395,8 +3787,8 @@
3395
3787
  <code class="ruby"> when Array</code>
3396
3788
  </li>
3397
3789
 
3398
- <li class="covered" data-hits="4" data-linenumber="85">
3399
- <span class="hits">4</span>
3790
+ <li class="missed" data-hits="0" data-linenumber="85">
3791
+
3400
3792
 
3401
3793
  <code class="ruby"> self.stringify_array_keys(v)</code>
3402
3794
  </li>
@@ -3407,8 +3799,8 @@
3407
3799
  <code class="ruby"> else</code>
3408
3800
  </li>
3409
3801
 
3410
- <li class="covered" data-hits="31" data-linenumber="87">
3411
- <span class="hits">31</span>
3802
+ <li class="missed" data-hits="0" data-linenumber="87">
3803
+
3412
3804
 
3413
3805
  <code class="ruby"> v </code>
3414
3806
  </li>
@@ -3425,8 +3817,8 @@
3425
3817
  <code class="ruby"> end</code>
3426
3818
  </li>
3427
3819
 
3428
- <li class="covered" data-hits="8" data-linenumber="90">
3429
- <span class="hits">8</span>
3820
+ <li class="missed" data-hits="0" data-linenumber="90">
3821
+
3430
3822
 
3431
3823
  <code class="ruby"> new_hash</code>
3432
3824
  </li>
@@ -3455,14 +3847,14 @@
3455
3847
  <code class="ruby"> def self.stringify_array_keys(array)</code>
3456
3848
  </li>
3457
3849
 
3458
- <li class="covered" data-hits="4" data-linenumber="95">
3459
- <span class="hits">4</span>
3850
+ <li class="missed" data-hits="0" data-linenumber="95">
3851
+
3460
3852
 
3461
3853
  <code class="ruby"> array.collect{|v|</code>
3462
3854
  </li>
3463
3855
 
3464
- <li class="covered" data-hits="8" data-linenumber="96">
3465
- <span class="hits">8</span>
3856
+ <li class="missed" data-hits="0" data-linenumber="96">
3857
+
3466
3858
 
3467
3859
  <code class="ruby"> case v</code>
3468
3860
  </li>
@@ -3497,8 +3889,8 @@
3497
3889
  <code class="ruby"> else</code>
3498
3890
  </li>
3499
3891
 
3500
- <li class="covered" data-hits="8" data-linenumber="102">
3501
- <span class="hits">8</span>
3892
+ <li class="missed" data-hits="0" data-linenumber="102">
3893
+
3502
3894
 
3503
3895
  <code class="ruby"> v</code>
3504
3896
  </li>
@@ -3539,8 +3931,8 @@
3539
3931
  <code class="ruby"> # make these strings</code>
3540
3932
  </li>
3541
3933
 
3542
- <li class="covered" data-hits="2" data-linenumber="109">
3543
- <span class="hits">2</span>
3934
+ <li class="missed" data-hits="0" data-linenumber="109">
3935
+
3544
3936
 
3545
3937
  <code class="ruby"> known_path, entered_path = known_path.to_s, entered_path.to_s</code>
3546
3938
  </li>
@@ -3551,44 +3943,44 @@
3551
3943
  <code class="ruby"> # Remove the any beginning or trailing slashes from both paths if they exist</code>
3552
3944
  </li>
3553
3945
 
3554
- <li class="covered" data-hits="2" data-linenumber="111">
3555
- <span class="hits">2</span>
3946
+ <li class="missed" data-hits="0" data-linenumber="111">
3947
+
3556
3948
 
3557
3949
  <code class="ruby"> known_path = known_path[1..-1] if known_path.start_with?(&quot;/&quot;)</code>
3558
3950
  </li>
3559
3951
 
3560
- <li class="covered" data-hits="2" data-linenumber="112">
3561
- <span class="hits">2</span>
3952
+ <li class="missed" data-hits="0" data-linenumber="112">
3953
+
3562
3954
 
3563
3955
  <code class="ruby"> known_path = known_path[0..-2] if known_path.end_with?(&quot;/&quot;)</code>
3564
3956
  </li>
3565
3957
 
3566
- <li class="covered" data-hits="2" data-linenumber="113">
3567
- <span class="hits">2</span>
3958
+ <li class="missed" data-hits="0" data-linenumber="113">
3959
+
3568
3960
 
3569
3961
  <code class="ruby"> entered_path = entered_path[1..-1] if entered_path.start_with?(&quot;/&quot;)</code>
3570
3962
  </li>
3571
3963
 
3572
- <li class="covered" data-hits="2" data-linenumber="114">
3573
- <span class="hits">2</span>
3964
+ <li class="missed" data-hits="0" data-linenumber="114">
3965
+
3574
3966
 
3575
3967
  <code class="ruby"> entered_path = entered_path[0..-2] if entered_path.end_with?(&quot;/&quot;)</code>
3576
3968
  </li>
3577
3969
 
3578
- <li class="covered" data-hits="2" data-linenumber="115">
3579
- <span class="hits">2</span>
3970
+ <li class="missed" data-hits="0" data-linenumber="115">
3971
+
3580
3972
 
3581
3973
  <code class="ruby"> known_path = known_path.split(&quot;/&quot;)</code>
3582
3974
  </li>
3583
3975
 
3584
- <li class="covered" data-hits="2" data-linenumber="116">
3585
- <span class="hits">2</span>
3976
+ <li class="missed" data-hits="0" data-linenumber="116">
3977
+
3586
3978
 
3587
3979
  <code class="ruby"> entered_path = entered_path.split(&quot;/&quot;)</code>
3588
3980
  </li>
3589
3981
 
3590
- <li class="covered" data-hits="2" data-linenumber="117">
3591
- <span class="hits">2</span>
3982
+ <li class="missed" data-hits="0" data-linenumber="117">
3983
+
3592
3984
 
3593
3985
  <code class="ruby"> if known_path.length &lt; entered_path.length</code>
3594
3986
  </li>
@@ -3617,8 +4009,8 @@
3617
4009
  <code class="ruby"> end</code>
3618
4010
  </li>
3619
4011
 
3620
- <li class="covered" data-hits="2" data-linenumber="122">
3621
- <span class="hits">2</span>
4012
+ <li class="missed" data-hits="0" data-linenumber="122">
4013
+
3622
4014
 
3623
4015
  <code class="ruby"> return known_path.zip(entered_path)</code>
3624
4016
  </li>
@@ -3648,11 +4040,11 @@
3648
4040
  <div class="source_table" id="a53828a5413df9e3a1d0192504eac81ee4166020">
3649
4041
  <div class="header">
3650
4042
  <h3>lib/variable_array.rb</h3>
3651
- <h4><span class="green">90.91 %</span> covered</h4>
4043
+ <h4><span class="red">36.36 %</span> covered</h4>
3652
4044
  <div>
3653
4045
  <b>11</b> relevant lines.
3654
- <span class="green"><b>10</b> lines covered</span> and
3655
- <span class="red"><b>1</b> lines missed.</span>
4046
+ <span class="green"><b>4</b> lines covered</span> and
4047
+ <span class="red"><b>7</b> lines missed.</span>
3656
4048
  </div>
3657
4049
  </div>
3658
4050
 
@@ -3671,20 +4063,20 @@
3671
4063
  <code class="ruby"> def ==(other)</code>
3672
4064
  </li>
3673
4065
 
3674
- <li class="covered" data-hits="7" data-linenumber="3">
3675
- <span class="hits">7</span>
4066
+ <li class="missed" data-hits="0" data-linenumber="3">
4067
+
3676
4068
 
3677
4069
  <code class="ruby"> if other.is_a?(Array)</code>
3678
4070
  </li>
3679
4071
 
3680
- <li class="covered" data-hits="7" data-linenumber="4">
3681
- <span class="hits">7</span>
4072
+ <li class="missed" data-hits="0" data-linenumber="4">
4073
+
3682
4074
 
3683
4075
  <code class="ruby"> comp = self[1..(self.length - 1)]</code>
3684
4076
  </li>
3685
4077
 
3686
- <li class="covered" data-hits="7" data-linenumber="5">
3687
- <span class="hits">7</span>
4078
+ <li class="missed" data-hits="0" data-linenumber="5">
4079
+
3688
4080
 
3689
4081
  <code class="ruby"> return comp.first == other.first</code>
3690
4082
  </li>
@@ -3719,20 +4111,20 @@
3719
4111
  <code class="ruby"> def collect(&amp;block)</code>
3720
4112
  </li>
3721
4113
 
3722
- <li class="covered" data-hits="3" data-linenumber="11">
3723
- <span class="hits">3</span>
4114
+ <li class="missed" data-hits="0" data-linenumber="11">
4115
+
3724
4116
 
3725
4117
  <code class="ruby"> self.class.new.tap do |ret|</code>
3726
4118
  </li>
3727
4119
 
3728
- <li class="covered" data-hits="3" data-linenumber="12">
3729
- <span class="hits">3</span>
4120
+ <li class="missed" data-hits="0" data-linenumber="12">
4121
+
3730
4122
 
3731
4123
  <code class="ruby"> self.each_with_index do |el, i|</code>
3732
4124
  </li>
3733
4125
 
3734
- <li class="covered" data-hits="6" data-linenumber="13">
3735
- <span class="hits">6</span>
4126
+ <li class="missed" data-hits="0" data-linenumber="13">
4127
+
3736
4128
 
3737
4129
  <code class="ruby"> ret[i] = block.call(el)</code>
3738
4130
  </li>