csv_decision 0.3.1 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +5 -1
  3. data/csv_decision.gemspec +1 -1
  4. data/doc/CSVDecision/CellValidationError.html +1 -1
  5. data/doc/CSVDecision/Columns/Dictionary.html +1 -1
  6. data/doc/CSVDecision/Columns.html +1 -1
  7. data/doc/CSVDecision/Data.html +1 -1
  8. data/doc/CSVDecision/Decision.html +51 -147
  9. data/doc/CSVDecision/Defaults.html +1 -1
  10. data/doc/CSVDecision/Dictionary/Entry.html +1 -1
  11. data/doc/CSVDecision/Dictionary.html +1 -1
  12. data/doc/CSVDecision/Error.html +1 -1
  13. data/doc/CSVDecision/FileError.html +1 -1
  14. data/doc/CSVDecision/Header.html +1 -1
  15. data/doc/CSVDecision/Index.html +1 -1
  16. data/doc/CSVDecision/Input.html +2 -2
  17. data/doc/CSVDecision/Load.html +16 -11
  18. data/doc/CSVDecision/Matchers/Constant.html +1 -1
  19. data/doc/CSVDecision/Matchers/Function.html +3 -3
  20. data/doc/CSVDecision/Matchers/Guard.html +1 -1
  21. data/doc/CSVDecision/Matchers/Matcher.html +1 -1
  22. data/doc/CSVDecision/Matchers/Numeric.html +1 -1
  23. data/doc/CSVDecision/Matchers/Pattern.html +1 -1
  24. data/doc/CSVDecision/Matchers/Proc.html +1 -1
  25. data/doc/CSVDecision/Matchers/Range.html +1 -1
  26. data/doc/CSVDecision/Matchers/Symbol.html +1 -1
  27. data/doc/CSVDecision/Matchers.html +3 -3
  28. data/doc/CSVDecision/Options.html +1 -1
  29. data/doc/CSVDecision/Parse.html +3 -3
  30. data/doc/CSVDecision/Result.html +9 -22
  31. data/doc/CSVDecision/ScanRow.html +4 -6
  32. data/doc/CSVDecision/Table.html +10 -2
  33. data/doc/CSVDecision/TableValidationError.html +1 -1
  34. data/doc/CSVDecision/Validate.html +1 -1
  35. data/doc/CSVDecision.html +18 -13
  36. data/doc/_index.html +1 -1
  37. data/doc/file.README.html +1 -1
  38. data/doc/index.html +1 -1
  39. data/doc/method_list.html +63 -63
  40. data/doc/top-level-namespace.html +1 -1
  41. data/lib/csv_decision/decision.rb +47 -45
  42. data/lib/csv_decision/load.rb +5 -4
  43. data/lib/csv_decision/parse.rb +1 -1
  44. data/lib/csv_decision/result.rb +3 -3
  45. data/lib/csv_decision/scan_row.rb +4 -5
  46. data/lib/csv_decision/table.rb +4 -0
  47. data/spec/csv_decision/table_spec.rb +1 -0
  48. data/spec/data/valid/index_example.csv +1 -0
  49. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 40af539bd889c1b4bba0b9cced1c517121dd331d
4
- data.tar.gz: 60e3f727ad24252bd78ccfc3f6b69be77d2c7b4b
3
+ metadata.gz: fb96b1d411143422f0f4c1f97387eedc8201dde3
4
+ data.tar.gz: d8e8f472aef2fd94cd27f5e0f88dc367059b1622
5
5
  SHA512:
6
- metadata.gz: 22aae99d06ad663ebc6bed44d19c54a3e55b059f58e8dab1a9b1cb72114a104297d8513911afde5cec738dd3237034e8a55e8097f85e67991d79d647b78ea434
7
- data.tar.gz: e869bc5eaccbe556cd9e76b3ef5c0bc3d10daa2cc7f47ec4e8ec2151d0c8c4dbf2166dc4eed34357875ca2335aca3fe74957e1a16f6ff1ddefc474baf50505c8
6
+ metadata.gz: 2a37235cdddef0ccc57f09a11b07fe90a913bc7f7c6d917ce25eb8ad4f50ab511814079e0085f9dc705685fa34345cfbac77ae916139ef3a9e3a295fa9b7a714
7
+ data.tar.gz: 46dd898df746be2efbef4a1d5a9372067ee3a43bfaebe54ad9a212b82b615a2c28d4ac0fb60a52c8428e6f81b9eb7073464daccb7d4a64c67754280c498203e6
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
+ ## v0.3.2, 28 January 2018.
2
+ *Changes*
3
+ - Refactor code and update documentation.
4
+
1
5
  ## v0.3.1, 21 January 2018.
2
- *changes*
6
+ *Changes*
3
7
  - Optimize code.
4
8
 
5
9
  ## v0.3.0, 20 January 2018.
data/csv_decision.gemspec CHANGED
@@ -5,7 +5,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
5
 
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = 'csv_decision'
8
- spec.version = '0.3.1'
8
+ spec.version = '0.3.2'
9
9
  spec.authors = ['Brett Vickers']
10
10
  spec.email = ['brett@phillips-vickers.com']
11
11
  spec.description = 'CSV based Ruby decision tables.'
@@ -133,7 +133,7 @@
133
133
  </div>
134
134
 
135
135
  <div id="footer">
136
- Generated on Sun Jan 21 08:56:46 2018 by
136
+ Generated on Sun Jan 28 11:58:38 2018 by
137
137
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
138
138
  0.9.12 (ruby-2.4.0).
139
139
  </div>
@@ -697,7 +697,7 @@ of :outs.</p>
697
697
  </div>
698
698
 
699
699
  <div id="footer">
700
- Generated on Sun Jan 21 08:56:47 2018 by
700
+ Generated on Sun Jan 28 11:58:39 2018 by
701
701
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
702
702
  0.9.12 (ruby-2.4.0).
703
703
  </div>
@@ -1167,7 +1167,7 @@
1167
1167
  </div>
1168
1168
 
1169
1169
  <div id="footer">
1170
- Generated on Sun Jan 21 08:56:46 2018 by
1170
+ Generated on Sun Jan 28 11:58:38 2018 by
1171
1171
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1172
1172
  0.9.12 (ruby-2.4.0).
1173
1173
  </div>
@@ -469,7 +469,7 @@ array of arrays. Strips out empty columns/rows and comment cells.</p>
469
469
  </div>
470
470
 
471
471
  <div id="footer">
472
- Generated on Sun Jan 21 08:56:46 2018 by
472
+ Generated on Sun Jan 28 11:58:38 2018 by
473
473
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
474
474
  0.9.12 (ruby-2.4.0).
475
475
  </div>
@@ -132,7 +132,7 @@
132
132
  <li class="public ">
133
133
  <span class="summary_signature">
134
134
 
135
- <a href="#make-class_method" title="make (class method)">.<strong>make</strong>(table:, input:, symbolize_keys:) &#x21d2; Hash </a>
135
+ <a href="#make-class_method" title="make (class method)">.<strong>make</strong>(table:, input:, symbolize_keys:) &#x21d2; Hash{Symbol=&gt;Object} </a>
136
136
 
137
137
 
138
138
 
@@ -165,7 +165,7 @@
165
165
  <li class="public ">
166
166
  <span class="summary_signature">
167
167
 
168
- <a href="#index-instance_method" title="#index (instance method)">#<strong>index</strong>(table:, input:) &#x21d2; {Symbol=&gt;Object} </a>
168
+ <a href="#index_scan-instance_method" title="#index_scan (instance method)">#<strong>index_scan</strong> &#x21d2; Hash{Symbol=&gt;Object} </a>
169
169
 
170
170
 
171
171
 
@@ -215,7 +215,7 @@
215
215
  <li class="public ">
216
216
  <span class="summary_signature">
217
217
 
218
- <a href="#scan-instance_method" title="#scan (instance method)">#<strong>scan</strong>(table:, hash:, scan_cols:) &#x21d2; Hash{Symbol=&gt;Object} </a>
218
+ <a href="#table_scan-instance_method" title="#table_scan (instance method)">#<strong>table_scan</strong> &#x21d2; Hash{Symbol=&gt;Object} </a>
219
219
 
220
220
 
221
221
 
@@ -308,6 +308,8 @@
308
308
  <pre class="lines">
309
309
 
310
310
 
311
+ 32
312
+ 33
311
313
  34
312
314
  35
313
315
  36
@@ -318,21 +320,25 @@
318
320
  41
319
321
  42
320
322
  43
321
- 44</pre>
323
+ 44
324
+ 45</pre>
322
325
  </td>
323
326
  <td>
324
- <pre class="code"><span class="info file"># File 'lib/csv_decision/decision.rb', line 34</span>
327
+ <pre class="code"><span class="info file"># File 'lib/csv_decision/decision.rb', line 32</span>
325
328
 
326
329
  <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='label'>table:</span><span class='comma'>,</span> <span class='label'>input:</span><span class='rparen'>)</span>
327
330
  <span class='comment'># The result object is a hash of values, and each value will be an array if this is
328
331
  </span> <span class='comment'># a multi-row result for the +first_match: false+ option.
329
- </span> <span class='ivar'>@result</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="Result.html" title="CSVDecision::Result (class)">Result</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="Result.html#initialize-instance_method" title="CSVDecision::Result#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='label'>table:</span> <span class='id identifier rubyid_table'>table</span><span class='comma'>,</span> <span class='label'>input:</span> <span class='id identifier rubyid_input'>input</span><span class='rparen'>)</span>
332
+ </span> <span class='ivar'>@result</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="Result.html" title="CSVDecision::Result (class)">Result</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="Result.html#initialize-instance_method" title="CSVDecision::Result#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='label'>table:</span> <span class='id identifier rubyid_table'>table</span><span class='comma'>,</span> <span class='label'>input:</span> <span class='id identifier rubyid_input'>input</span><span class='lbracket'>[</span><span class='symbol'>:hash</span><span class='rbracket'>]</span><span class='rparen'>)</span>
330
333
 
331
334
  <span class='comment'># All rows picked by the matching process. An array if +first_match: false+,
332
335
  </span> <span class='comment'># otherwise a single row.
333
336
  </span> <span class='ivar'>@rows_picked</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
334
337
 
335
338
  <span class='ivar'>@first_match</span> <span class='op'>=</span> <span class='id identifier rubyid_table'>table</span><span class='period'>.</span><span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:first_match</span><span class='rbracket'>]</span>
339
+
340
+ <span class='ivar'>@table</span> <span class='op'>=</span> <span class='id identifier rubyid_table'>table</span>
341
+ <span class='ivar'>@input</span> <span class='op'>=</span> <span class='id identifier rubyid_input'>input</span>
336
342
  <span class='kw'>end</span></pre>
337
343
  </td>
338
344
  </tr>
@@ -349,7 +355,7 @@
349
355
  <div class="method_details first">
350
356
  <h3 class="signature first" id="make-class_method">
351
357
 
352
- .<strong>make</strong>(table:, input:, symbolize_keys:) &#x21d2; <tt>Hash</tt>
358
+ .<strong>make</strong>(table:, input:, symbolize_keys:) &#x21d2; <tt>Hash{Symbol=&gt;Object}</tt>
353
359
 
354
360
 
355
361
 
@@ -408,7 +414,7 @@
408
414
  <span class='name'>symbolize_keys</span>
409
415
 
410
416
 
411
- <span class='type'>(<tt>true</tt>, <tt>false</tt>)</span>
417
+ <span class='type'>(<tt>Boolean</tt>)</span>
412
418
 
413
419
 
414
420
 
@@ -428,7 +434,7 @@ hash. Otherwise a copy of the input hash is symbolized.</p>
428
434
  <li>
429
435
 
430
436
 
431
- <span class='type'>(<tt>Hash</tt>)</span>
437
+ <span class='type'>(<tt>Hash{Symbol=&gt;Object}</tt>)</span>
432
438
 
433
439
 
434
440
 
@@ -457,9 +463,7 @@ hash. Otherwise a copy of the input hash is symbolized.</p>
457
463
  25
458
464
  26
459
465
  27
460
- 28
461
- 29
462
- 30</pre>
466
+ 28</pre>
463
467
  </td>
464
468
  <td>
465
469
  <pre class="code"><span class="info file"># File 'lib/csv_decision/decision.rb', line 18</span>
@@ -470,12 +474,10 @@ hash. Otherwise a copy of the input hash is symbolized.</p>
470
474
 
471
475
  <span class='comment'># The decision object collects the results of the search and
472
476
  </span> <span class='comment'># calculates the final result
473
- </span> <span class='id identifier rubyid_decision'>decision</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="" title="CSVDecision::Decision (class)">Decision</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="#initialize-instance_method" title="CSVDecision::Decision#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='label'>table:</span> <span class='id identifier rubyid_table'>table</span><span class='comma'>,</span> <span class='label'>input:</span> <span class='id identifier rubyid_input'>input</span><span class='lbracket'>[</span><span class='symbol'>:hash</span><span class='rbracket'>]</span><span class='rparen'>)</span>
477
+ </span> <span class='id identifier rubyid_decision'>decision</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="" title="CSVDecision::Decision (class)">Decision</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="#initialize-instance_method" title="CSVDecision::Decision#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='label'>table:</span> <span class='id identifier rubyid_table'>table</span><span class='comma'>,</span> <span class='label'>input:</span> <span class='id identifier rubyid_input'>input</span><span class='rparen'>)</span>
474
478
 
475
479
  <span class='comment'># Use the table&#39;s index if present
476
- </span> <span class='kw'>return</span> <span class='id identifier rubyid_decision'>decision</span><span class='period'>.</span><span class='id identifier rubyid_index'>index</span><span class='lparen'>(</span><span class='label'>table:</span> <span class='id identifier rubyid_table'>table</span><span class='comma'>,</span> <span class='label'>input:</span> <span class='id identifier rubyid_input'>input</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_table'>table</span><span class='period'>.</span><span class='id identifier rubyid_index'>index</span>
477
-
478
- <span class='id identifier rubyid_decision'>decision</span><span class='period'>.</span><span class='id identifier rubyid_scan'>scan</span><span class='lparen'>(</span><span class='label'>table:</span> <span class='id identifier rubyid_table'>table</span><span class='comma'>,</span> <span class='label'>hash:</span> <span class='id identifier rubyid_input'>input</span><span class='lbracket'>[</span><span class='symbol'>:hash</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='label'>scan_cols:</span> <span class='id identifier rubyid_input'>input</span><span class='lbracket'>[</span><span class='symbol'>:scan_cols</span><span class='rbracket'>]</span><span class='rparen'>)</span>
480
+ </span> <span class='id identifier rubyid_table'>table</span><span class='period'>.</span><span class='id identifier rubyid_index'>index</span> <span class='op'>?</span> <span class='id identifier rubyid_decision'>decision</span><span class='period'>.</span><span class='id identifier rubyid_index_scan'>index_scan</span> <span class='op'>:</span> <span class='id identifier rubyid_decision'>decision</span><span class='period'>.</span><span class='id identifier rubyid_table_scan'>table_scan</span>
479
481
  <span class='kw'>end</span></pre>
480
482
  </td>
481
483
  </tr>
@@ -489,9 +491,9 @@ hash. Otherwise a copy of the input hash is symbolized.</p>
489
491
 
490
492
 
491
493
  <div class="method_details first">
492
- <h3 class="signature first" id="index-instance_method">
494
+ <h3 class="signature first" id="index_scan-instance_method">
493
495
 
494
- #<strong>index</strong>(table:, input:) &#x21d2; <tt>{Symbol=&gt;Object}</tt>
496
+ #<strong>index_scan</strong> &#x21d2; <tt>Hash{Symbol=&gt;Object}</tt>
495
497
 
496
498
 
497
499
 
@@ -510,66 +512,14 @@ hash. Otherwise a copy of the input hash is symbolized.</p>
510
512
  </div>
511
513
  </div>
512
514
  <div class="tags">
513
- <p class="tag_title">Parameters:</p>
514
- <ul class="param">
515
-
516
- <li>
517
-
518
- <span class='name'>input</span>
519
-
520
-
521
- <span class='type'>(<tt>Hash</tt>)</span>
522
-
523
-
524
-
525
- &mdash;
526
- <div class='inline'>
527
- <p>Hash of parsed input data.</p>
528
- </div>
529
-
530
- </li>
531
-
532
- <li>
533
-
534
- <span class='name'>table</span>
535
-
536
-
537
- <span class='type'>(<tt><span class='object_link'><a href="Table.html" title="CSVDecision::Table (class)">CSVDecision::Table</a></span></tt>)</span>
538
-
539
-
540
-
541
- &mdash;
542
- <div class='inline'>
543
- <p>Decision table being processed.</p>
544
- </div>
545
-
546
- </li>
547
515
 
548
- <li>
549
-
550
- <span class='name'>input</span>
551
-
552
-
553
- <span class='type'>(<tt>Hash{Symbol=&gt;Object}</tt>)</span>
554
-
555
-
556
-
557
- &mdash;
558
- <div class='inline'>
559
- <p>Input hash data structure.</p>
560
- </div>
561
-
562
- </li>
563
-
564
- </ul>
565
-
566
516
  <p class="tag_title">Returns:</p>
567
517
  <ul class="return">
568
518
 
569
519
  <li>
570
520
 
571
521
 
572
- <span class='type'>(<tt>{Symbol=&gt;Object}</tt>)</span>
522
+ <span class='type'>(<tt>Hash{Symbol=&gt;Object}</tt>)</span>
573
523
 
574
524
 
575
525
 
@@ -588,8 +538,6 @@ hash. Otherwise a copy of the input hash is symbolized.</p>
588
538
  <pre class="lines">
589
539
 
590
540
 
591
- 62
592
- 63
593
541
  64
594
542
  65
595
543
  66
@@ -602,26 +550,22 @@ hash. Otherwise a copy of the input hash is symbolized.</p>
602
550
  73
603
551
  74
604
552
  75
605
- 76
606
- 77</pre>
553
+ 76</pre>
607
554
  </td>
608
555
  <td>
609
- <pre class="code"><span class="info file"># File 'lib/csv_decision/decision.rb', line 62</span>
556
+ <pre class="code"><span class="info file"># File 'lib/csv_decision/decision.rb', line 64</span>
610
557
 
611
- <span class='kw'>def</span> <span class='id identifier rubyid_index'>index</span><span class='lparen'>(</span><span class='label'>table:</span><span class='comma'>,</span> <span class='label'>input:</span><span class='rparen'>)</span>
612
- <span class='comment'># If the index lookup fails, there&#39;s no match
613
- </span> <span class='kw'>return</span> <span class='lbrace'>{</span><span class='rbrace'>}</span> <span class='kw'>unless</span> <span class='lparen'>(</span><span class='id identifier rubyid_index_rows'>index_rows</span> <span class='op'>=</span> <span class='id identifier rubyid_table'>table</span><span class='period'>.</span><span class='id identifier rubyid_index'>index</span><span class='period'>.</span><span class='id identifier rubyid_hash'>hash</span><span class='lbracket'>[</span><span class='id identifier rubyid_input'>input</span><span class='lbracket'>[</span><span class='symbol'>:key</span><span class='rbracket'>]</span><span class='rbracket'>]</span><span class='rparen'>)</span>
558
+ <span class='kw'>def</span> <span class='id identifier rubyid_index_scan'>index_scan</span>
559
+ <span class='comment'># If the index lookup fails, there&#39;s no match.
560
+ </span> <span class='kw'>return</span> <span class='lbrace'>{</span><span class='rbrace'>}</span> <span class='kw'>unless</span> <span class='lparen'>(</span><span class='id identifier rubyid_index_rows'>index_rows</span> <span class='op'>=</span> <span class='const'>Array</span><span class='lparen'>(</span><span class='ivar'>@table</span><span class='period'>.</span><span class='id identifier rubyid_index'>index</span><span class='period'>.</span><span class='id identifier rubyid_hash'>hash</span><span class='lbracket'>[</span><span class='ivar'>@input</span><span class='lbracket'>[</span><span class='symbol'>:key</span><span class='rbracket'>]</span><span class='rbracket'>]</span><span class='rparen'>)</span><span class='rparen'>)</span>
561
+
562
+ <span class='id identifier rubyid_hash'>hash</span> <span class='op'>=</span> <span class='ivar'>@input</span><span class='lbracket'>[</span><span class='symbol'>:hash</span><span class='rbracket'>]</span>
563
+ <span class='id identifier rubyid_scan_cols'>scan_cols</span> <span class='op'>=</span> <span class='ivar'>@input</span><span class='lbracket'>[</span><span class='symbol'>:scan_cols</span><span class='rbracket'>]</span>
614
564
 
615
565
  <span class='kw'>if</span> <span class='ivar'>@first_match</span>
616
- <span class='id identifier rubyid_index_scan_first_match'>index_scan_first_match</span><span class='lparen'>(</span><span class='label'>table:</span> <span class='id identifier rubyid_table'>table</span><span class='comma'>,</span>
617
- <span class='label'>scan_cols:</span> <span class='id identifier rubyid_input'>input</span><span class='lbracket'>[</span><span class='symbol'>:scan_cols</span><span class='rbracket'>]</span><span class='comma'>,</span>
618
- <span class='label'>hash:</span> <span class='id identifier rubyid_input'>input</span><span class='lbracket'>[</span><span class='symbol'>:hash</span><span class='rbracket'>]</span><span class='comma'>,</span>
619
- <span class='label'>index_rows:</span> <span class='const'>Array</span><span class='lparen'>(</span><span class='id identifier rubyid_index_rows'>index_rows</span><span class='rparen'>)</span><span class='rparen'>)</span>
566
+ <span class='id identifier rubyid_index_scan_first_match'>index_scan_first_match</span><span class='lparen'>(</span><span class='label'>scan_cols:</span> <span class='id identifier rubyid_scan_cols'>scan_cols</span><span class='comma'>,</span> <span class='label'>hash:</span> <span class='id identifier rubyid_hash'>hash</span><span class='comma'>,</span> <span class='label'>index_rows:</span> <span class='id identifier rubyid_index_rows'>index_rows</span><span class='rparen'>)</span>
620
567
  <span class='kw'>else</span>
621
- <span class='id identifier rubyid_index_scan_accumulate'>index_scan_accumulate</span><span class='lparen'>(</span><span class='label'>table:</span> <span class='id identifier rubyid_table'>table</span><span class='comma'>,</span>
622
- <span class='label'>scan_cols:</span> <span class='id identifier rubyid_input'>input</span><span class='lbracket'>[</span><span class='symbol'>:scan_cols</span><span class='rbracket'>]</span><span class='comma'>,</span>
623
- <span class='label'>hash:</span> <span class='id identifier rubyid_input'>input</span><span class='lbracket'>[</span><span class='symbol'>:hash</span><span class='rbracket'>]</span><span class='comma'>,</span>
624
- <span class='label'>index_rows:</span> <span class='const'>Array</span><span class='lparen'>(</span><span class='id identifier rubyid_index_rows'>index_rows</span><span class='rparen'>)</span><span class='rparen'>)</span>
568
+ <span class='id identifier rubyid_index_scan_accumulate'>index_scan_accumulate</span><span class='lparen'>(</span><span class='label'>scan_cols:</span> <span class='id identifier rubyid_scan_cols'>scan_cols</span><span class='comma'>,</span> <span class='label'>hash:</span> <span class='id identifier rubyid_hash'>hash</span><span class='comma'>,</span> <span class='label'>index_rows:</span> <span class='id identifier rubyid_index_rows'>index_rows</span><span class='rparen'>)</span>
625
569
  <span class='kw'>end</span>
626
570
  <span class='kw'>end</span></pre>
627
571
  </td>
@@ -630,9 +574,9 @@ hash. Otherwise a copy of the input hash is symbolized.</p>
630
574
  </div>
631
575
 
632
576
  <div class="method_details ">
633
- <h3 class="signature " id="scan-instance_method">
577
+ <h3 class="signature " id="table_scan-instance_method">
634
578
 
635
- #<strong>scan</strong>(table:, hash:, scan_cols:) &#x21d2; <tt>Hash{Symbol=&gt;Object}</tt>
579
+ #<strong>table_scan</strong> &#x21d2; <tt>Hash{Symbol=&gt;Object}</tt>
636
580
 
637
581
 
638
582
 
@@ -651,59 +595,7 @@ hash. Otherwise a copy of the input hash is symbolized.</p>
651
595
  </div>
652
596
  </div>
653
597
  <div class="tags">
654
- <p class="tag_title">Parameters:</p>
655
- <ul class="param">
656
-
657
- <li>
658
-
659
- <span class='name'>hash</span>
660
-
661
-
662
- <span class='type'>(<tt>Hash</tt>)</span>
663
-
664
-
665
-
666
- &mdash;
667
- <div class='inline'>
668
- <p>Input hash.</p>
669
- </div>
670
-
671
- </li>
672
-
673
- <li>
674
-
675
- <span class='name'>scan_cols</span>
676
-
677
-
678
- <span class='type'>(<tt>Hash{<span class='object_link'><a href="Index.html" title="CSVDecision::Index (class)">Index</a></span>=&gt;Object}</tt>)</span>
679
-
680
-
681
-
682
- &mdash;
683
- <div class='inline'>
684
- <p>Input column values to scan.</p>
685
- </div>
686
-
687
- </li>
688
598
 
689
- <li>
690
-
691
- <span class='name'>table</span>
692
-
693
-
694
- <span class='type'>(<tt><span class='object_link'><a href="Table.html" title="CSVDecision::Table (class)">CSVDecision::Table</a></span></tt>)</span>
695
-
696
-
697
-
698
- &mdash;
699
- <div class='inline'>
700
- <p>Decision table being processed.</p>
701
- </div>
702
-
703
- </li>
704
-
705
- </ul>
706
-
707
599
  <p class="tag_title">Returns:</p>
708
600
  <ul class="return">
709
601
 
@@ -729,17 +621,29 @@ hash. Otherwise a copy of the input hash is symbolized.</p>
729
621
  <pre class="lines">
730
622
 
731
623
 
624
+ 50
625
+ 51
732
626
  52
733
627
  53
734
628
  54
735
- 55</pre>
629
+ 55
630
+ 56
631
+ 57
632
+ 58
633
+ 59</pre>
736
634
  </td>
737
635
  <td>
738
- <pre class="code"><span class="info file"># File 'lib/csv_decision/decision.rb', line 52</span>
636
+ <pre class="code"><span class="info file"># File 'lib/csv_decision/decision.rb', line 50</span>
637
+
638
+ <span class='kw'>def</span> <span class='id identifier rubyid_table_scan'>table_scan</span>
639
+ <span class='id identifier rubyid_hash'>hash</span> <span class='op'>=</span> <span class='ivar'>@input</span><span class='lbracket'>[</span><span class='symbol'>:hash</span><span class='rbracket'>]</span>
640
+ <span class='id identifier rubyid_scan_cols'>scan_cols</span> <span class='op'>=</span> <span class='ivar'>@input</span><span class='lbracket'>[</span><span class='symbol'>:scan_cols</span><span class='rbracket'>]</span>
739
641
 
740
- <span class='kw'>def</span> <span class='id identifier rubyid_scan'>scan</span><span class='lparen'>(</span><span class='label'>table:</span><span class='comma'>,</span> <span class='label'>hash:</span><span class='comma'>,</span> <span class='label'>scan_cols:</span><span class='rparen'>)</span>
741
- <span class='kw'>return</span> <span class='id identifier rubyid_scan_first_match'>scan_first_match</span><span class='lparen'>(</span><span class='label'>table:</span> <span class='id identifier rubyid_table'>table</span><span class='comma'>,</span> <span class='label'>hash:</span> <span class='id identifier rubyid_hash'>hash</span><span class='comma'>,</span> <span class='label'>scan_cols:</span> <span class='id identifier rubyid_scan_cols'>scan_cols</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='ivar'>@first_match</span>
742
- <span class='id identifier rubyid_scan_accumulate'>scan_accumulate</span><span class='lparen'>(</span><span class='label'>table:</span> <span class='id identifier rubyid_table'>table</span><span class='comma'>,</span> <span class='label'>hash:</span> <span class='id identifier rubyid_hash'>hash</span><span class='comma'>,</span> <span class='label'>scan_cols:</span> <span class='id identifier rubyid_scan_cols'>scan_cols</span><span class='rparen'>)</span>
642
+ <span class='kw'>if</span> <span class='ivar'>@first_match</span>
643
+ <span class='id identifier rubyid_scan_first_match'>scan_first_match</span><span class='lparen'>(</span><span class='label'>hash:</span> <span class='id identifier rubyid_hash'>hash</span><span class='comma'>,</span> <span class='label'>scan_cols:</span> <span class='id identifier rubyid_scan_cols'>scan_cols</span><span class='rparen'>)</span>
644
+ <span class='kw'>else</span>
645
+ <span class='id identifier rubyid_scan_accumulate'>scan_accumulate</span><span class='lparen'>(</span><span class='label'>hash:</span> <span class='id identifier rubyid_hash'>hash</span><span class='comma'>,</span> <span class='label'>scan_cols:</span> <span class='id identifier rubyid_scan_cols'>scan_cols</span><span class='rparen'>)</span>
646
+ <span class='kw'>end</span>
743
647
  <span class='kw'>end</span></pre>
744
648
  </td>
745
649
  </tr>
@@ -751,7 +655,7 @@ hash. Otherwise a copy of the input hash is symbolized.</p>
751
655
  </div>
752
656
 
753
657
  <div id="footer">
754
- Generated on Sun Jan 21 08:56:47 2018 by
658
+ Generated on Sun Jan 28 11:58:39 2018 by
755
659
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
756
660
  0.9.12 (ruby-2.4.0).
757
661
  </div>
@@ -281,7 +281,7 @@ We have already determined that this row must be present.</p>
281
281
  </div>
282
282
 
283
283
  <div id="footer">
284
- Generated on Sun Jan 21 08:56:46 2018 by
284
+ Generated on Sun Jan 28 11:58:38 2018 by
285
285
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
286
286
  0.9.12 (ruby-2.4.0).
287
287
  </div>
@@ -1137,7 +1137,7 @@ type, which is looked up in the above table.</p>
1137
1137
  </div>
1138
1138
 
1139
1139
  <div id="footer">
1140
- Generated on Sun Jan 21 08:56:47 2018 by
1140
+ Generated on Sun Jan 28 11:58:39 2018 by
1141
1141
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1142
1142
  0.9.12 (ruby-2.4.0).
1143
1143
  </div>
@@ -416,7 +416,7 @@ the header row.</p>
416
416
  </div>
417
417
 
418
418
  <div id="footer">
419
- Generated on Sun Jan 21 08:56:46 2018 by
419
+ Generated on Sun Jan 28 11:58:38 2018 by
420
420
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
421
421
  0.9.12 (ruby-2.4.0).
422
422
  </div>
@@ -129,7 +129,7 @@
129
129
  </div>
130
130
 
131
131
  <div id="footer">
132
- Generated on Sun Jan 21 08:56:46 2018 by
132
+ Generated on Sun Jan 28 11:58:38 2018 by
133
133
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
134
134
  0.9.12 (ruby-2.4.0).
135
135
  </div>
@@ -133,7 +133,7 @@
133
133
  </div>
134
134
 
135
135
  <div id="footer">
136
- Generated on Sun Jan 21 08:56:46 2018 by
136
+ Generated on Sun Jan 28 11:58:38 2018 by
137
137
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
138
138
  0.9.12 (ruby-2.4.0).
139
139
  </div>
@@ -637,7 +637,7 @@ method name - note any spaces will have been replaced with underscores.</p>
637
637
  </div>
638
638
 
639
639
  <div id="footer">
640
- Generated on Sun Jan 21 08:56:46 2018 by
640
+ Generated on Sun Jan 28 11:58:38 2018 by
641
641
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
642
642
  0.9.12 (ruby-2.4.0).
643
643
  </div>
@@ -731,7 +731,7 @@ indexes.</p>
731
731
  </div>
732
732
 
733
733
  <div id="footer">
734
- Generated on Sun Jan 21 08:56:46 2018 by
734
+ Generated on Sun Jan 28 11:58:38 2018 by
735
735
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
736
736
  0.9.12 (ruby-2.4.0).
737
737
  </div>
@@ -204,7 +204,7 @@
204
204
  <span class='name'>symbolize_keys</span>
205
205
 
206
206
 
207
- <span class='type'>(<tt>true</tt>, <tt>false</tt>)</span>
207
+ <span class='type'>(<tt>Boolean</tt>)</span>
208
208
 
209
209
 
210
210
 
@@ -268,7 +268,7 @@ hash. Otherwise a copy of the input hash is symbolized.</p>
268
268
  </div>
269
269
 
270
270
  <div id="footer">
271
- Generated on Sun Jan 21 08:56:46 2018 by
271
+ Generated on Sun Jan 28 11:58:38 2018 by
272
272
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
273
273
  0.9.12 (ruby-2.4.0).
274
274
  </div>