csv_decision 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/.codeclimate.yml +2 -1
  3. data/README.md +2 -2
  4. data/csv_decision.gemspec +6 -2
  5. data/doc/CSVDecision/CellValidationError.html +1 -1
  6. data/doc/CSVDecision/Columns/Dictionary.html +1 -1
  7. data/doc/CSVDecision/Columns/Entry.html +1 -1
  8. data/doc/CSVDecision/Columns.html +1 -1
  9. data/doc/CSVDecision/Constant.html +1 -1
  10. data/doc/CSVDecision/Data.html +1 -1
  11. data/doc/CSVDecision/Decide.html +1 -1
  12. data/doc/CSVDecision/Decision.html +1 -1
  13. data/doc/CSVDecision/Error.html +1 -1
  14. data/doc/CSVDecision/FileError.html +1 -1
  15. data/doc/CSVDecision/Function.html +1 -1
  16. data/doc/CSVDecision/Header.html +1 -1
  17. data/doc/CSVDecision/Input.html +1 -1
  18. data/doc/CSVDecision/Load.html +1 -1
  19. data/doc/CSVDecision/Matchers/Constant.html +1 -1
  20. data/doc/CSVDecision/Matchers/Function.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/Range.html +1 -1
  25. data/doc/CSVDecision/Matchers/Symbol.html +1 -1
  26. data/doc/CSVDecision/Matchers.html +1 -1
  27. data/doc/CSVDecision/Numeric.html +1 -1
  28. data/doc/CSVDecision/Options.html +1 -1
  29. data/doc/CSVDecision/Parse.html +1 -1
  30. data/doc/CSVDecision/ScanRow.html +1 -1
  31. data/doc/CSVDecision/Symbol.html +1 -1
  32. data/doc/CSVDecision/Table.html +1 -1
  33. data/doc/CSVDecision.html +1 -1
  34. data/doc/_index.html +1 -1
  35. data/doc/file.README.html +34 -22
  36. data/doc/index.html +34 -22
  37. data/doc/top-level-namespace.html +1 -1
  38. metadata +4 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0ae0f8b7985c3403c552bac2d32f6d6dbcf72046
4
- data.tar.gz: 447fc311c43a0ed399866f8a032b4abd56583790
3
+ metadata.gz: e1b5a8bfea227e57ed0e764bf33e5a775a1a3152
4
+ data.tar.gz: e2d30cf7ac67b04da3a22b48cb27a21134125f10
5
5
  SHA512:
6
- metadata.gz: 2e0bac50f203c9c4403894da74f853885792f0d4d80a09e8452c89bf98af7390a1d89b220fe03b65bf4ca0b8a2f88ca6b76797833a922920967071abc7b36bb4
7
- data.tar.gz: f1f479e5d022cad346d50dfcfdd73093dadc14df906ca8cc09574a5fb5b4c8cdf89f354b9750d3468f01fb5c63e82394d9f7a2118f054a74e8460f69289a7550
6
+ metadata.gz: b084083ee126ef6e14dd9f9bc482b4770285a35b1925afaeea0c910cb2f8ba5ba3858868a9e30fb2cb9f1def61d91c941917dbc66ba3c887f8834a7a03d67a88
7
+ data.tar.gz: ee186e950e64c9c47bddc0714ce8aa076a2dd01684c5548b6de21dfb24a0c5c697eefa80c4a42bf34c90500e5d350a28c9d8316053bed7c3945b3117ecb3dda0
data/.codeclimate.yml CHANGED
@@ -1,2 +1,3 @@
1
1
  exclude_patterns:
2
- - "doc/"
2
+ - "doc/"
3
+ - "spec/"
data/README.md CHANGED
@@ -16,7 +16,7 @@ It accepts decision tables implemented as a
16
16
  which can then be used to execute complex conditional logic against an input hash,
17
17
  producing a decision as an output hash.
18
18
 
19
- ### CSV Decision features
19
+ ### CSV Decision features
20
20
  * Fast decision-time performance (see `benchmark.rb`).
21
21
  * In addition to simple string matching, can match common Ruby constants,
22
22
  regular expressions, numeric comparisons and Ruby-style ranges.
@@ -28,7 +28,7 @@ producing a decision as an output hash.
28
28
  * Either returns the first matching row as a hash, or accumulates all matches as an
29
29
  array of hashes.
30
30
 
31
- ### Planned features
31
+ ### Planned features
32
32
  `csv_decision` is still a work in progress, and will be enhanced to support
33
33
  the following features:
34
34
  * Input columns may be indexed for faster lookup performance.
data/csv_decision.gemspec CHANGED
@@ -5,11 +5,15 @@ $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.0.4'
8
+ spec.version = '0.0.5'
9
9
  spec.authors = ['Brett Vickers']
10
10
  spec.email = ['brett@phillips-vickers.com']
11
11
  spec.description = 'CSV based Ruby decision tables.'
12
- spec.summary = spec.description
12
+ spec.summary = <<~DESC
13
+ CSV Decision implements CSV file based Ruby decision tables. It accepts decision tables implemented as a
14
+ which can then be used to execute complex conditional logic against an input hash,
15
+ producing a decision as an output hash.
16
+ DESC
13
17
  spec.homepage = 'https://github.com/bpvickers/csv_decision.git'
14
18
  spec.license = 'MIT'
15
19
 
@@ -133,7 +133,7 @@
133
133
  </div>
134
134
 
135
135
  <div id="footer">
136
- Generated on Tue Dec 26 18:31:37 2017 by
136
+ Generated on Tue Dec 26 21:20:20 2017 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.3.0).
139
139
  </div>
@@ -400,7 +400,7 @@ interspersed and need not have unique names.</p>
400
400
  </div>
401
401
 
402
402
  <div id="footer">
403
- Generated on Tue Dec 26 18:31:38 2017 by
403
+ Generated on Tue Dec 26 21:20:20 2017 by
404
404
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
405
405
  0.9.12 (ruby-2.3.0).
406
406
  </div>
@@ -311,7 +311,7 @@
311
311
  </div>
312
312
 
313
313
  <div id="footer">
314
- Generated on Tue Dec 26 18:31:38 2017 by
314
+ Generated on Tue Dec 26 21:20:20 2017 by
315
315
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
316
316
  0.9.12 (ruby-2.3.0).
317
317
  </div>
@@ -466,7 +466,7 @@
466
466
  </div>
467
467
 
468
468
  <div id="footer">
469
- Generated on Tue Dec 26 18:31:38 2017 by
469
+ Generated on Tue Dec 26 21:20:20 2017 by
470
470
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
471
471
  0.9.12 (ruby-2.3.0).
472
472
  </div>
@@ -285,7 +285,7 @@ some type of function.</p>
285
285
  </div>
286
286
 
287
287
  <div id="footer">
288
- Generated on Tue Dec 26 18:31:37 2017 by
288
+ Generated on Tue Dec 26 21:20:19 2017 by
289
289
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
290
290
  0.9.12 (ruby-2.3.0).
291
291
  </div>
@@ -334,7 +334,7 @@ array of arrays. Strips out empty columns/rows and comment cells</p>
334
334
  </div>
335
335
 
336
336
  <div id="footer">
337
- Generated on Tue Dec 26 18:31:37 2017 by
337
+ Generated on Tue Dec 26 21:20:19 2017 by
338
338
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
339
339
  0.9.12 (ruby-2.3.0).
340
340
  </div>
@@ -424,7 +424,7 @@ hash. Otherwise a copy of the input hash is symbolized.</p>
424
424
  </div>
425
425
 
426
426
  <div id="footer">
427
- Generated on Tue Dec 26 18:31:37 2017 by
427
+ Generated on Tue Dec 26 21:20:19 2017 by
428
428
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
429
429
  0.9.12 (ruby-2.3.0).
430
430
  </div>
@@ -594,7 +594,7 @@
594
594
  </div>
595
595
 
596
596
  <div id="footer">
597
- Generated on Tue Dec 26 18:31:38 2017 by
597
+ Generated on Tue Dec 26 21:20:20 2017 by
598
598
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
599
599
  0.9.12 (ruby-2.3.0).
600
600
  </div>
@@ -129,7 +129,7 @@
129
129
  </div>
130
130
 
131
131
  <div id="footer">
132
- Generated on Tue Dec 26 18:31:37 2017 by
132
+ Generated on Tue Dec 26 21:20:20 2017 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.3.0).
135
135
  </div>
@@ -133,7 +133,7 @@
133
133
  </div>
134
134
 
135
135
  <div id="footer">
136
- Generated on Tue Dec 26 18:31:37 2017 by
136
+ Generated on Tue Dec 26 21:20:20 2017 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.3.0).
139
139
  </div>
@@ -219,7 +219,7 @@
219
219
  </div>
220
220
 
221
221
  <div id="footer">
222
- Generated on Tue Dec 26 18:31:37 2017 by
222
+ Generated on Tue Dec 26 21:20:19 2017 by
223
223
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
224
224
  0.9.12 (ruby-2.3.0).
225
225
  </div>
@@ -510,7 +510,7 @@ method name - note any spaces will have been replaced with underscores.</p>
510
510
  </div>
511
511
 
512
512
  <div id="footer">
513
- Generated on Tue Dec 26 18:31:37 2017 by
513
+ Generated on Tue Dec 26 21:20:19 2017 by
514
514
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
515
515
  0.9.12 (ruby-2.3.0).
516
516
  </div>
@@ -295,7 +295,7 @@ column. Defaults to nil if the key is missing in the input hash.</p>
295
295
  </div>
296
296
 
297
297
  <div id="footer">
298
- Generated on Tue Dec 26 18:31:37 2017 by
298
+ Generated on Tue Dec 26 21:20:19 2017 by
299
299
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
300
300
  0.9.12 (ruby-2.3.0).
301
301
  </div>
@@ -215,7 +215,7 @@
215
215
  </div>
216
216
 
217
217
  <div id="footer">
218
- Generated on Tue Dec 26 18:31:37 2017 by
218
+ Generated on Tue Dec 26 21:20:19 2017 by
219
219
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
220
220
  0.9.12 (ruby-2.3.0).
221
221
  </div>
@@ -232,7 +232,7 @@
232
232
  </div>
233
233
 
234
234
  <div id="footer">
235
- Generated on Tue Dec 26 18:31:38 2017 by
235
+ Generated on Tue Dec 26 21:20:20 2017 by
236
236
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
237
237
  0.9.12 (ruby-2.3.0).
238
238
  </div>
@@ -332,7 +332,7 @@ some type of function.</p>
332
332
  </div>
333
333
 
334
334
  <div id="footer">
335
- Generated on Tue Dec 26 18:31:38 2017 by
335
+ Generated on Tue Dec 26 21:20:20 2017 by
336
336
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
337
337
  0.9.12 (ruby-2.3.0).
338
338
  </div>
@@ -315,7 +315,7 @@ some type of function.</p>
315
315
  </div>
316
316
 
317
317
  <div id="footer">
318
- Generated on Tue Dec 26 18:31:38 2017 by
318
+ Generated on Tue Dec 26 21:20:20 2017 by
319
319
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
320
320
  0.9.12 (ruby-2.3.0).
321
321
  </div>
@@ -267,7 +267,7 @@ some type of function.</p>
267
267
  </div>
268
268
 
269
269
  <div id="footer">
270
- Generated on Tue Dec 26 18:31:38 2017 by
270
+ Generated on Tue Dec 26 21:20:20 2017 by
271
271
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
272
272
  0.9.12 (ruby-2.3.0).
273
273
  </div>
@@ -590,7 +590,7 @@ some type of function.</p>
590
590
  </div>
591
591
 
592
592
  <div id="footer">
593
- Generated on Tue Dec 26 18:31:38 2017 by
593
+ Generated on Tue Dec 26 21:20:20 2017 by
594
594
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
595
595
  0.9.12 (ruby-2.3.0).
596
596
  </div>
@@ -403,7 +403,7 @@ some type of function.</p>
403
403
  </div>
404
404
 
405
405
  <div id="footer">
406
- Generated on Tue Dec 26 18:31:38 2017 by
406
+ Generated on Tue Dec 26 21:20:20 2017 by
407
407
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
408
408
  0.9.12 (ruby-2.3.0).
409
409
  </div>
@@ -270,7 +270,7 @@ some type of function.</p>
270
270
  </div>
271
271
 
272
272
  <div id="footer">
273
- Generated on Tue Dec 26 18:31:38 2017 by
273
+ Generated on Tue Dec 26 21:20:20 2017 by
274
274
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
275
275
  0.9.12 (ruby-2.3.0).
276
276
  </div>
@@ -1519,7 +1519,7 @@ non-capturing group.</p>
1519
1519
  </div>
1520
1520
 
1521
1521
  <div id="footer">
1522
- Generated on Tue Dec 26 18:31:37 2017 by
1522
+ Generated on Tue Dec 26 21:20:20 2017 by
1523
1523
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1524
1524
  0.9.12 (ruby-2.3.0).
1525
1525
  </div>
@@ -249,7 +249,7 @@ some type of function.</p>
249
249
  </div>
250
250
 
251
251
  <div id="footer">
252
- Generated on Tue Dec 26 18:31:37 2017 by
252
+ Generated on Tue Dec 26 21:20:19 2017 by
253
253
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
254
254
  0.9.12 (ruby-2.3.0).
255
255
  </div>
@@ -435,7 +435,7 @@ set.</p>
435
435
  </div>
436
436
 
437
437
  <div id="footer">
438
- Generated on Tue Dec 26 18:31:37 2017 by
438
+ Generated on Tue Dec 26 21:20:19 2017 by
439
439
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
440
440
  0.9.12 (ruby-2.3.0).
441
441
  </div>
@@ -260,7 +260,7 @@
260
260
  </div>
261
261
 
262
262
  <div id="footer">
263
- Generated on Tue Dec 26 18:31:37 2017 by
263
+ Generated on Tue Dec 26 21:20:19 2017 by
264
264
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
265
265
  0.9.12 (ruby-2.3.0).
266
266
  </div>
@@ -736,7 +736,7 @@ non-string constant.</p>
736
736
  </div>
737
737
 
738
738
  <div id="footer">
739
- Generated on Tue Dec 26 18:31:38 2017 by
739
+ Generated on Tue Dec 26 21:20:20 2017 by
740
740
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
741
741
  0.9.12 (ruby-2.3.0).
742
742
  </div>
@@ -246,7 +246,7 @@ some type of function.</p>
246
246
  </div>
247
247
 
248
248
  <div id="footer">
249
- Generated on Tue Dec 26 18:31:37 2017 by
249
+ Generated on Tue Dec 26 21:20:19 2017 by
250
250
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
251
251
  0.9.12 (ruby-2.3.0).
252
252
  </div>
@@ -1105,7 +1105,7 @@ and last row index given.</p>
1105
1105
  </div>
1106
1106
 
1107
1107
  <div id="footer">
1108
- Generated on Tue Dec 26 18:31:38 2017 by
1108
+ Generated on Tue Dec 26 21:20:20 2017 by
1109
1109
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1110
1110
  0.9.12 (ruby-2.3.0).
1111
1111
  </div>
data/doc/CSVDecision.html CHANGED
@@ -642,7 +642,7 @@ table.decide(topic: &#39;finance&#39;, region: &#39;Europe&#39;) #=&gt; team_mem
642
642
  </div>
643
643
 
644
644
  <div id="footer">
645
- Generated on Tue Dec 26 18:31:37 2017 by
645
+ Generated on Tue Dec 26 21:20:19 2017 by
646
646
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
647
647
  0.9.12 (ruby-2.3.0).
648
648
  </div>
data/doc/_index.html CHANGED
@@ -400,7 +400,7 @@
400
400
  </div>
401
401
 
402
402
  <div id="footer">
403
- Generated on Tue Dec 26 18:31:36 2017 by
403
+ Generated on Tue Dec 26 21:20:18 2017 by
404
404
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
405
405
  0.9.12 (ruby-2.3.0).
406
406
  </div>
data/doc/file.README.html CHANGED
@@ -82,27 +82,39 @@ href="https://en.wikipedia.org/wiki/Comma-separated_values">CSV file</a>,
82
82
  which can then be used to execute complex conditional logic against an
83
83
  input hash, producing a decision as an output hash.</p>
84
84
 
85
- <p>### CSV Decision features * Fast decision-time performance (see
86
- <code>benchmark.rb</code>). * In addition to simple string matching, can
87
- match common Ruby constants, regular expressions, numeric comparisons and
88
- Ruby-style ranges. * Can use column symbols in comparisons for guard
89
- conditions e.g., &gt; :column. * Accepts data as a file, CSV string or
90
- an array of arrays. (For safety all input data is force encoded to UTF-8,
91
- and non-ascii strings are converted to empty strings.) * All CSV cells are
92
- parsed for correctness, and helpful error messages generated for bad
93
- inputs. * Either returns the first matching row as a hash, or accumulates
94
- all matches as an array of hashes.</p>
95
-
96
- <p>### Planned features <code>csv_decision</code> is still a work in
97
- progress, and will be enhanced to support the following features: * Input
98
- columns may be indexed for faster lookup performance. * May use functions
99
- in the output columns to formulate the final decision. * Input hash values
100
- may be conditionally defaulted using a constant or a function call * Use
101
- of column symbol references or built-in guard functions in the input
102
- columns for matching. * Output columns may use interpolated strings
103
- referencing column symbols. * May be extended with user-defined Ruby
104
- functions for tailored logic. * Can use post-match guard conditions to
105
- filter the results of multi-row decision output.</p>
85
+ <h3 id="label-CSV+Decision+features">CSV Decision features</h3>
86
+ <ul><li>
87
+ <p>Fast decision-time performance (see <code>benchmark.rb</code>).</p>
88
+ </li><li>
89
+ <p>In addition to simple string matching, can match common Ruby constants,
90
+ regular expressions, numeric comparisons and Ruby-style ranges.</p>
91
+ </li><li>
92
+ <p>Can use column symbols in comparisons for guard conditions e.g., &gt;
93
+ :column.</p>
94
+ </li><li>
95
+ <p>Accepts data as a file, CSV string or an array of arrays. (For safety all
96
+ input data is force encoded to UTF-8, and non-ascii strings are converted
97
+ to empty strings.)</p>
98
+ </li><li>
99
+ <p>All CSV cells are parsed for correctness, and helpful error messages
100
+ generated for bad inputs.</p>
101
+ </li><li>
102
+ <p>Either returns the first matching row as a hash, or accumulates all matches
103
+ as an array of hashes.</p>
104
+ </li></ul>
105
+
106
+ <h3 id="label-Planned+features">Planned features</h3>
107
+
108
+ <p><code>csv_decision</code> is still a work in progress, and will be enhanced
109
+ to support the following features: * Input columns may be indexed for
110
+ faster lookup performance. * May use functions in the output columns to
111
+ formulate the final decision. * Input hash values may be conditionally
112
+ defaulted using a constant or a function call * Use of column symbol
113
+ references or built-in guard functions in the input columns for matching.
114
+ * Output columns may use interpolated strings referencing column symbols.
115
+ * May be extended with user-defined Ruby functions for tailored logic. *
116
+ Can use post-match guard conditions to filter the results of multi-row
117
+ decision output.</p>
106
118
 
107
119
  <p>### Why use <code>csv_decision</code>?</p>
108
120
 
@@ -254,7 +266,7 @@ bundle install rspec </code></p>
254
266
  </div></div>
255
267
 
256
268
  <div id="footer">
257
- Generated on Tue Dec 26 18:31:37 2017 by
269
+ Generated on Tue Dec 26 21:20:19 2017 by
258
270
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
259
271
  0.9.12 (ruby-2.3.0).
260
272
  </div>
data/doc/index.html CHANGED
@@ -82,27 +82,39 @@ href="https://en.wikipedia.org/wiki/Comma-separated_values">CSV file</a>,
82
82
  which can then be used to execute complex conditional logic against an
83
83
  input hash, producing a decision as an output hash.</p>
84
84
 
85
- <p>### CSV Decision features * Fast decision-time performance (see
86
- <code>benchmark.rb</code>). * In addition to simple string matching, can
87
- match common Ruby constants, regular expressions, numeric comparisons and
88
- Ruby-style ranges. * Can use column symbols in comparisons for guard
89
- conditions e.g., &gt; :column. * Accepts data as a file, CSV string or
90
- an array of arrays. (For safety all input data is force encoded to UTF-8,
91
- and non-ascii strings are converted to empty strings.) * All CSV cells are
92
- parsed for correctness, and helpful error messages generated for bad
93
- inputs. * Either returns the first matching row as a hash, or accumulates
94
- all matches as an array of hashes.</p>
95
-
96
- <p>### Planned features <code>csv_decision</code> is still a work in
97
- progress, and will be enhanced to support the following features: * Input
98
- columns may be indexed for faster lookup performance. * May use functions
99
- in the output columns to formulate the final decision. * Input hash values
100
- may be conditionally defaulted using a constant or a function call * Use
101
- of column symbol references or built-in guard functions in the input
102
- columns for matching. * Output columns may use interpolated strings
103
- referencing column symbols. * May be extended with user-defined Ruby
104
- functions for tailored logic. * Can use post-match guard conditions to
105
- filter the results of multi-row decision output.</p>
85
+ <h3 id="label-CSV+Decision+features">CSV Decision features</h3>
86
+ <ul><li>
87
+ <p>Fast decision-time performance (see <code>benchmark.rb</code>).</p>
88
+ </li><li>
89
+ <p>In addition to simple string matching, can match common Ruby constants,
90
+ regular expressions, numeric comparisons and Ruby-style ranges.</p>
91
+ </li><li>
92
+ <p>Can use column symbols in comparisons for guard conditions e.g., &gt;
93
+ :column.</p>
94
+ </li><li>
95
+ <p>Accepts data as a file, CSV string or an array of arrays. (For safety all
96
+ input data is force encoded to UTF-8, and non-ascii strings are converted
97
+ to empty strings.)</p>
98
+ </li><li>
99
+ <p>All CSV cells are parsed for correctness, and helpful error messages
100
+ generated for bad inputs.</p>
101
+ </li><li>
102
+ <p>Either returns the first matching row as a hash, or accumulates all matches
103
+ as an array of hashes.</p>
104
+ </li></ul>
105
+
106
+ <h3 id="label-Planned+features">Planned features</h3>
107
+
108
+ <p><code>csv_decision</code> is still a work in progress, and will be enhanced
109
+ to support the following features: * Input columns may be indexed for
110
+ faster lookup performance. * May use functions in the output columns to
111
+ formulate the final decision. * Input hash values may be conditionally
112
+ defaulted using a constant or a function call * Use of column symbol
113
+ references or built-in guard functions in the input columns for matching.
114
+ * Output columns may use interpolated strings referencing column symbols.
115
+ * May be extended with user-defined Ruby functions for tailored logic. *
116
+ Can use post-match guard conditions to filter the results of multi-row
117
+ decision output.</p>
106
118
 
107
119
  <p>### Why use <code>csv_decision</code>?</p>
108
120
 
@@ -254,7 +266,7 @@ bundle install rspec </code></p>
254
266
  </div></div>
255
267
 
256
268
  <div id="footer">
257
- Generated on Tue Dec 26 18:31:36 2017 by
269
+ Generated on Tue Dec 26 21:20:19 2017 by
258
270
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
259
271
  0.9.12 (ruby-2.3.0).
260
272
  </div>
@@ -100,7 +100,7 @@
100
100
  </div>
101
101
 
102
102
  <div id="footer">
103
- Generated on Tue Dec 26 18:31:37 2017 by
103
+ Generated on Tue Dec 26 21:20:19 2017 by
104
104
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
105
105
  0.9.12 (ruby-2.3.0).
106
106
  </div>
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: csv_decision
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brett Vickers
@@ -314,7 +314,9 @@ rubyforge_project:
314
314
  rubygems_version: 2.6.10
315
315
  signing_key:
316
316
  specification_version: 4
317
- summary: CSV based Ruby decision tables.
317
+ summary: CSV Decision implements CSV file based Ruby decision tables. It accepts
318
+ decision tables implemented as a which can then be used to execute complex conditional
319
+ logic against an input hash, producing a decision as an output hash.
318
320
  test_files:
319
321
  - spec/csv_decision/columns_spec.rb
320
322
  - spec/csv_decision/constant_spec.rb