csv_decision 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/README.md +26 -2
- data/csv_decision.gemspec +1 -1
- data/doc/CSVDecision/CellValidationError.html +2 -2
- data/doc/CSVDecision/Columns/Default.html +203 -23
- data/doc/CSVDecision/Columns/Dictionary.html +118 -25
- data/doc/CSVDecision/Columns.html +213 -31
- data/doc/CSVDecision/Data.html +1 -1
- data/doc/CSVDecision/Decide.html +1 -1
- data/doc/CSVDecision/Decision.html +1 -1
- data/doc/CSVDecision/Defaults.html +291 -0
- data/doc/CSVDecision/Dictionary/Entry.html +584 -47
- data/doc/CSVDecision/Dictionary.html +20 -20
- data/doc/CSVDecision/Error.html +2 -2
- data/doc/CSVDecision/FileError.html +1 -1
- data/doc/CSVDecision/Header.html +110 -33
- data/doc/CSVDecision/Input.html +1 -1
- data/doc/CSVDecision/Load.html +1 -1
- data/doc/CSVDecision/Matchers/Constant.html +12 -37
- data/doc/CSVDecision/Matchers/Function.html +1 -1
- data/doc/CSVDecision/Matchers/Guard.html +15 -13
- data/doc/CSVDecision/Matchers/Matcher.html +1 -1
- data/doc/CSVDecision/Matchers/Numeric.html +13 -21
- data/doc/CSVDecision/Matchers/Pattern.html +14 -14
- data/doc/CSVDecision/Matchers/Proc.html +1 -1
- data/doc/CSVDecision/Matchers/Range.html +13 -58
- data/doc/CSVDecision/Matchers/Symbol.html +1 -1
- data/doc/CSVDecision/Matchers.html +9 -9
- data/doc/CSVDecision/Options.html +1 -1
- data/doc/CSVDecision/Parse.html +90 -19
- data/doc/CSVDecision/Result.html +1 -1
- data/doc/CSVDecision/ScanRow.html +17 -17
- data/doc/CSVDecision/Table.html +50 -48
- data/doc/CSVDecision/TableValidationError.html +143 -0
- data/doc/CSVDecision/Validate.html +422 -0
- data/doc/CSVDecision.html +8 -8
- data/doc/_index.html +33 -1
- data/doc/class_list.html +1 -1
- data/doc/file.README.html +27 -3
- data/doc/index.html +27 -3
- data/doc/method_list.html +193 -89
- data/doc/top-level-namespace.html +1 -1
- data/lib/csv_decision/columns.rb +28 -27
- data/lib/csv_decision/defaults.rb +47 -0
- data/lib/csv_decision/dictionary.rb +104 -112
- data/lib/csv_decision/header.rb +13 -10
- data/lib/csv_decision/input.rb +53 -5
- data/lib/csv_decision/matchers/constant.rb +1 -2
- data/lib/csv_decision/matchers/guard.rb +3 -2
- data/lib/csv_decision/matchers/numeric.rb +4 -6
- data/lib/csv_decision/matchers/pattern.rb +6 -8
- data/lib/csv_decision/matchers/range.rb +1 -3
- data/lib/csv_decision/matchers.rb +7 -7
- data/lib/csv_decision/parse.rb +24 -3
- data/lib/csv_decision/scan_row.rb +16 -16
- data/lib/csv_decision/table.rb +3 -7
- data/lib/csv_decision/validate.rb +85 -0
- data/lib/csv_decision.rb +3 -1
- data/spec/csv_decision/columns_spec.rb +38 -22
- data/spec/csv_decision/examples_spec.rb +17 -0
- data/spec/csv_decision/matchers/range_spec.rb +0 -32
- data/spec/csv_decision/table_spec.rb +39 -0
- metadata +7 -2
@@ -142,7 +142,7 @@
|
|
142
142
|
<li class="public ">
|
143
143
|
<span class="summary_signature">
|
144
144
|
|
145
|
-
<a href="#
|
145
|
+
<a href="#defaults-instance_method" title="#defaults (instance method)">#<strong>defaults</strong> ⇒ Object </a>
|
146
146
|
|
147
147
|
|
148
148
|
|
@@ -156,7 +156,57 @@
|
|
156
156
|
<span class="private note title">private</span>
|
157
157
|
|
158
158
|
|
159
|
-
<span class="summary_desc"><div class='inline'
|
159
|
+
<span class="summary_desc"><div class='inline'>
|
160
|
+
<p>Input columns with defaults specified.</p>
|
161
|
+
</div></span>
|
162
|
+
|
163
|
+
</li>
|
164
|
+
|
165
|
+
|
166
|
+
<li class="public ">
|
167
|
+
<span class="summary_signature">
|
168
|
+
|
169
|
+
<a href="#defaults=-instance_method" title="#defaults= (instance method)">#<strong>defaults=</strong>(value) ⇒ Object </a>
|
170
|
+
|
171
|
+
|
172
|
+
|
173
|
+
</span>
|
174
|
+
|
175
|
+
|
176
|
+
|
177
|
+
|
178
|
+
|
179
|
+
|
180
|
+
<span class="private note title">private</span>
|
181
|
+
|
182
|
+
|
183
|
+
<span class="summary_desc"><div class='inline'>
|
184
|
+
<p>Set defaults for columns with defaults specified.</p>
|
185
|
+
</div></span>
|
186
|
+
|
187
|
+
</li>
|
188
|
+
|
189
|
+
|
190
|
+
<li class="public ">
|
191
|
+
<span class="summary_signature">
|
192
|
+
|
193
|
+
<a href="#dictionary-instance_method" title="#dictionary (instance method)">#<strong>dictionary</strong> ⇒ Hash{Symbol=>[false, Integer]} </a>
|
194
|
+
|
195
|
+
|
196
|
+
|
197
|
+
</span>
|
198
|
+
|
199
|
+
|
200
|
+
|
201
|
+
|
202
|
+
|
203
|
+
|
204
|
+
<span class="private note title">private</span>
|
205
|
+
|
206
|
+
|
207
|
+
<span class="summary_desc"><div class='inline'>
|
208
|
+
<p>Dictionary of all input and output column names.</p>
|
209
|
+
</div></span>
|
160
210
|
|
161
211
|
</li>
|
162
212
|
|
@@ -214,7 +264,7 @@
|
|
214
264
|
<li class="public ">
|
215
265
|
<span class="summary_signature">
|
216
266
|
|
217
|
-
<a href="#input_keys-instance_method" title="#input_keys (instance method)">#<strong>input_keys</strong> ⇒
|
267
|
+
<a href="#input_keys-instance_method" title="#input_keys (instance method)">#<strong>input_keys</strong> ⇒ Array<Symbol> </a>
|
218
268
|
|
219
269
|
|
220
270
|
|
@@ -228,7 +278,9 @@
|
|
228
278
|
<span class="private note title">private</span>
|
229
279
|
|
230
280
|
|
231
|
-
<span class="summary_desc"><div class='inline'
|
281
|
+
<span class="summary_desc"><div class='inline'>
|
282
|
+
<p>All input column symbols.</p>
|
283
|
+
</div></span>
|
232
284
|
|
233
285
|
</li>
|
234
286
|
|
@@ -337,7 +389,6 @@
|
|
337
389
|
<pre class="lines">
|
338
390
|
|
339
391
|
|
340
|
-
83
|
341
392
|
84
|
342
393
|
85
|
343
394
|
86
|
@@ -346,10 +397,11 @@
|
|
346
397
|
89
|
347
398
|
90
|
348
399
|
91
|
349
|
-
92
|
400
|
+
92
|
401
|
+
93</pre>
|
350
402
|
</td>
|
351
403
|
<td>
|
352
|
-
<pre class="code"><span class="info file"># File 'lib/csv_decision/columns.rb', line
|
404
|
+
<pre class="code"><span class="info file"># File 'lib/csv_decision/columns.rb', line 84</span>
|
353
405
|
|
354
406
|
<span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_table'>table</span><span class='rparen'>)</span>
|
355
407
|
<span class='comment'># If a column does not have a valid header cell, then it's empty of data.
|
@@ -374,9 +426,54 @@
|
|
374
426
|
|
375
427
|
|
376
428
|
<div class="method_details first">
|
377
|
-
<h3 class="signature first" id="
|
429
|
+
<h3 class="signature first" id="defaults-instance_method">
|
430
|
+
|
431
|
+
#<strong>defaults</strong> ⇒ <tt>Object</tt>
|
432
|
+
|
433
|
+
|
434
|
+
|
435
|
+
|
436
|
+
|
437
|
+
</h3><div class="docstring">
|
438
|
+
<div class="discussion">
|
439
|
+
<p class="note private">
|
440
|
+
<strong>This method is part of a private API.</strong>
|
441
|
+
You should avoid using this method if possible, as it may be removed or be changed in the future.
|
442
|
+
</p>
|
443
|
+
|
444
|
+
<p>Input columns with defaults specified</p>
|
445
|
+
|
446
|
+
|
447
|
+
</div>
|
448
|
+
</div>
|
449
|
+
<div class="tags">
|
450
|
+
|
451
|
+
|
452
|
+
</div><table class="source_code">
|
453
|
+
<tr>
|
454
|
+
<td>
|
455
|
+
<pre class="lines">
|
456
|
+
|
457
|
+
|
458
|
+
45
|
459
|
+
46
|
460
|
+
47</pre>
|
461
|
+
</td>
|
462
|
+
<td>
|
463
|
+
<pre class="code"><span class="info file"># File 'lib/csv_decision/columns.rb', line 45</span>
|
464
|
+
|
465
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_defaults'>defaults</span>
|
466
|
+
<span class='ivar'>@dictionary</span><span class='op'>&.</span><span class='id identifier rubyid_defaults'>defaults</span>
|
467
|
+
<span class='kw'>end</span></pre>
|
468
|
+
</td>
|
469
|
+
</tr>
|
470
|
+
</table>
|
471
|
+
</div>
|
472
|
+
|
473
|
+
<div class="method_details ">
|
474
|
+
<h3 class="signature " id="defaults=-instance_method">
|
378
475
|
|
379
|
-
#<strong>
|
476
|
+
#<strong>defaults=</strong>(value) ⇒ <tt>Object</tt>
|
380
477
|
|
381
478
|
|
382
479
|
|
@@ -389,6 +486,8 @@
|
|
389
486
|
You should avoid using this method if possible, as it may be removed or be changed in the future.
|
390
487
|
</p>
|
391
488
|
|
489
|
+
<p>Set defaults for columns with defaults specified</p>
|
490
|
+
|
392
491
|
|
393
492
|
</div>
|
394
493
|
</div>
|
@@ -401,12 +500,75 @@
|
|
401
500
|
<pre class="lines">
|
402
501
|
|
403
502
|
|
404
|
-
|
405
|
-
|
406
|
-
|
503
|
+
50
|
504
|
+
51
|
505
|
+
52</pre>
|
407
506
|
</td>
|
408
507
|
<td>
|
409
|
-
<pre class="code"><span class="info file"># File 'lib/csv_decision/columns.rb', line
|
508
|
+
<pre class="code"><span class="info file"># File 'lib/csv_decision/columns.rb', line 50</span>
|
509
|
+
|
510
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_defaults='>defaults=</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
|
511
|
+
<span class='ivar'>@dictionary</span><span class='period'>.</span><span class='id identifier rubyid_defaults'>defaults</span> <span class='op'>=</span> <span class='id identifier rubyid_value'>value</span>
|
512
|
+
<span class='kw'>end</span></pre>
|
513
|
+
</td>
|
514
|
+
</tr>
|
515
|
+
</table>
|
516
|
+
</div>
|
517
|
+
|
518
|
+
<div class="method_details ">
|
519
|
+
<h3 class="signature " id="dictionary-instance_method">
|
520
|
+
|
521
|
+
#<strong>dictionary</strong> ⇒ <tt>Hash{Symbol=>[false, Integer]}</tt>
|
522
|
+
|
523
|
+
|
524
|
+
|
525
|
+
|
526
|
+
|
527
|
+
</h3><div class="docstring">
|
528
|
+
<div class="discussion">
|
529
|
+
<p class="note private">
|
530
|
+
<strong>This method is part of a private API.</strong>
|
531
|
+
You should avoid using this method if possible, as it may be removed or be changed in the future.
|
532
|
+
</p>
|
533
|
+
|
534
|
+
<p>Returns Dictionary of all input and output column names.</p>
|
535
|
+
|
536
|
+
|
537
|
+
</div>
|
538
|
+
</div>
|
539
|
+
<div class="tags">
|
540
|
+
|
541
|
+
<p class="tag_title">Returns:</p>
|
542
|
+
<ul class="return">
|
543
|
+
|
544
|
+
<li>
|
545
|
+
|
546
|
+
|
547
|
+
<span class='type'>(<tt>Hash{Symbol=>[false, Integer]}</tt>)</span>
|
548
|
+
|
549
|
+
|
550
|
+
|
551
|
+
—
|
552
|
+
<div class='inline'>
|
553
|
+
<p>Dictionary of all input and output column names.</p>
|
554
|
+
</div>
|
555
|
+
|
556
|
+
</li>
|
557
|
+
|
558
|
+
</ul>
|
559
|
+
|
560
|
+
</div><table class="source_code">
|
561
|
+
<tr>
|
562
|
+
<td>
|
563
|
+
<pre class="lines">
|
564
|
+
|
565
|
+
|
566
|
+
56
|
567
|
+
57
|
568
|
+
58</pre>
|
569
|
+
</td>
|
570
|
+
<td>
|
571
|
+
<pre class="code"><span class="info file"># File 'lib/csv_decision/columns.rb', line 56</span>
|
410
572
|
|
411
573
|
<span class='kw'>def</span> <span class='id identifier rubyid_dictionary'>dictionary</span>
|
412
574
|
<span class='ivar'>@dictionary</span><span class='period'>.</span><span class='id identifier rubyid_columns'>columns</span>
|
@@ -459,12 +621,12 @@
|
|
459
621
|
<pre class="lines">
|
460
622
|
|
461
623
|
|
462
|
-
|
463
|
-
|
464
|
-
|
624
|
+
74
|
625
|
+
75
|
626
|
+
76</pre>
|
465
627
|
</td>
|
466
628
|
<td>
|
467
|
-
<pre class="code"><span class="info file"># File 'lib/csv_decision/columns.rb', line
|
629
|
+
<pre class="code"><span class="info file"># File 'lib/csv_decision/columns.rb', line 74</span>
|
468
630
|
|
469
631
|
<span class='kw'>def</span> <span class='id identifier rubyid_ifs'>ifs</span>
|
470
632
|
<span class='ivar'>@dictionary</span><span class='period'>.</span><span class='id identifier rubyid_ifs'>ifs</span>
|
@@ -477,7 +639,7 @@
|
|
477
639
|
<div class="method_details ">
|
478
640
|
<h3 class="signature " id="input_keys-instance_method">
|
479
641
|
|
480
|
-
#<strong>input_keys</strong> ⇒ <tt>
|
642
|
+
#<strong>input_keys</strong> ⇒ <tt>Array<Symbol></tt>
|
481
643
|
|
482
644
|
|
483
645
|
|
@@ -490,11 +652,31 @@
|
|
490
652
|
You should avoid using this method if possible, as it may be removed or be changed in the future.
|
491
653
|
</p>
|
492
654
|
|
655
|
+
<p>Returns All input column symbols.</p>
|
656
|
+
|
493
657
|
|
494
658
|
</div>
|
495
659
|
</div>
|
496
660
|
<div class="tags">
|
497
661
|
|
662
|
+
<p class="tag_title">Returns:</p>
|
663
|
+
<ul class="return">
|
664
|
+
|
665
|
+
<li>
|
666
|
+
|
667
|
+
|
668
|
+
<span class='type'>(<tt>Array<Symbol></tt>)</span>
|
669
|
+
|
670
|
+
|
671
|
+
|
672
|
+
—
|
673
|
+
<div class='inline'>
|
674
|
+
<p>All input column symbols.</p>
|
675
|
+
</div>
|
676
|
+
|
677
|
+
</li>
|
678
|
+
|
679
|
+
</ul>
|
498
680
|
|
499
681
|
</div><table class="source_code">
|
500
682
|
<tr>
|
@@ -502,12 +684,12 @@
|
|
502
684
|
<pre class="lines">
|
503
685
|
|
504
686
|
|
505
|
-
|
506
|
-
|
507
|
-
|
687
|
+
79
|
688
|
+
80
|
689
|
+
81</pre>
|
508
690
|
</td>
|
509
691
|
<td>
|
510
|
-
<pre class="code"><span class="info file"># File 'lib/csv_decision/columns.rb', line
|
692
|
+
<pre class="code"><span class="info file"># File 'lib/csv_decision/columns.rb', line 79</span>
|
511
693
|
|
512
694
|
<span class='kw'>def</span> <span class='id identifier rubyid_input_keys'>input_keys</span>
|
513
695
|
<span class='ivar'>@dictionary</span><span class='period'>.</span><span class='id identifier rubyid_columns'>columns</span><span class='period'>.</span><span class='id identifier rubyid_select'>select</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid__k'>_k</span><span class='comma'>,</span> <span class='id identifier rubyid_v'>v</span><span class='op'>|</span> <span class='id identifier rubyid_v'>v</span> <span class='op'>==</span> <span class='symbol'>:in</span> <span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_keys'>keys</span>
|
@@ -560,12 +742,12 @@
|
|
560
742
|
<pre class="lines">
|
561
743
|
|
562
744
|
|
563
|
-
|
564
|
-
|
565
|
-
|
745
|
+
62
|
746
|
+
63
|
747
|
+
64</pre>
|
566
748
|
</td>
|
567
749
|
<td>
|
568
|
-
<pre class="code"><span class="info file"># File 'lib/csv_decision/columns.rb', line
|
750
|
+
<pre class="code"><span class="info file"># File 'lib/csv_decision/columns.rb', line 62</span>
|
569
751
|
|
570
752
|
<span class='kw'>def</span> <span class='id identifier rubyid_ins'>ins</span>
|
571
753
|
<span class='ivar'>@dictionary</span><span class='period'>.</span><span class='id identifier rubyid_ins'>ins</span>
|
@@ -618,12 +800,12 @@
|
|
618
800
|
<pre class="lines">
|
619
801
|
|
620
802
|
|
621
|
-
|
622
|
-
|
623
|
-
|
803
|
+
68
|
804
|
+
69
|
805
|
+
70</pre>
|
624
806
|
</td>
|
625
807
|
<td>
|
626
|
-
<pre class="code"><span class="info file"># File 'lib/csv_decision/columns.rb', line
|
808
|
+
<pre class="code"><span class="info file"># File 'lib/csv_decision/columns.rb', line 68</span>
|
627
809
|
|
628
810
|
<span class='kw'>def</span> <span class='id identifier rubyid_outs'>outs</span>
|
629
811
|
<span class='ivar'>@dictionary</span><span class='op'>&.</span><span class='id identifier rubyid_outs'>outs</span>
|
@@ -638,7 +820,7 @@
|
|
638
820
|
</div>
|
639
821
|
|
640
822
|
<div id="footer">
|
641
|
-
Generated on Sat Jan
|
823
|
+
Generated on Sat Jan 13 10:02:46 2018 by
|
642
824
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
643
825
|
0.9.12 (ruby-2.4.0).
|
644
826
|
</div>
|
data/doc/CSVDecision/Data.html
CHANGED
@@ -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 Sat Jan
|
472
|
+
Generated on Sat Jan 13 10:02:46 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>
|
data/doc/CSVDecision/Decide.html
CHANGED
@@ -428,7 +428,7 @@ hash. Otherwise a copy of the input hash is symbolized.</p>
|
|
428
428
|
</div>
|
429
429
|
|
430
430
|
<div id="footer">
|
431
|
-
Generated on Sat Jan
|
431
|
+
Generated on Sat Jan 13 10:02:46 2018 by
|
432
432
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
433
433
|
0.9.12 (ruby-2.4.0).
|
434
434
|
</div>
|
@@ -405,7 +405,7 @@
|
|
405
405
|
</div>
|
406
406
|
|
407
407
|
<div id="footer">
|
408
|
-
Generated on Sat Jan
|
408
|
+
Generated on Sat Jan 13 10:02:47 2018 by
|
409
409
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
410
410
|
0.9.12 (ruby-2.4.0).
|
411
411
|
</div>
|