csv_decision2 0.5.1 → 0.5.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 (102) hide show
  1. checksums.yaml +4 -4
  2. data/Dockerfile +1 -1
  3. data/README.md +16 -16
  4. data/benchmarks/rufus_decision.rb +5 -7
  5. data/csv_decision2.gemspec +2 -2
  6. data/doc/CSVDecision/CellValidationError.html +117 -110
  7. data/doc/CSVDecision/Columns/Default.html +537 -508
  8. data/doc/CSVDecision/Columns/Dictionary.html +729 -686
  9. data/doc/CSVDecision/Columns/Entry.html +457 -433
  10. data/doc/CSVDecision/Columns.html +1134 -1051
  11. data/doc/CSVDecision/Constant.html +205 -191
  12. data/doc/CSVDecision/Data.html +423 -398
  13. data/doc/CSVDecision/Decide.html +236 -225
  14. data/doc/CSVDecision/Decision.html +872 -825
  15. data/doc/CSVDecision/Defaults.html +243 -230
  16. data/doc/CSVDecision/Dictionary/Entry.html +1026 -964
  17. data/doc/CSVDecision/Dictionary.html +377 -355
  18. data/doc/CSVDecision/Error.html +116 -105
  19. data/doc/CSVDecision/FileError.html +117 -110
  20. data/doc/CSVDecision/Function.html +181 -168
  21. data/doc/CSVDecision/Guard.html +200 -185
  22. data/doc/CSVDecision/Header.html +557 -523
  23. data/doc/CSVDecision/Index.html +652 -617
  24. data/doc/CSVDecision/Input.html +329 -312
  25. data/doc/CSVDecision/Load.html +232 -220
  26. data/doc/CSVDecision/Matchers/Constant.html +432 -399
  27. data/doc/CSVDecision/Matchers/Function.html +451 -415
  28. data/doc/CSVDecision/Matchers/Guard.html +459 -424
  29. data/doc/CSVDecision/Matchers/Matcher.html +470 -426
  30. data/doc/CSVDecision/Matchers/Numeric.html +375 -346
  31. data/doc/CSVDecision/Matchers/Pattern.html +429 -396
  32. data/doc/CSVDecision/Matchers/Proc.html +617 -575
  33. data/doc/CSVDecision/Matchers/Range.html +331 -302
  34. data/doc/CSVDecision/Matchers/Symbol.html +386 -353
  35. data/doc/CSVDecision/Matchers.html +1509 -1393
  36. data/doc/CSVDecision/Numeric.html +201 -188
  37. data/doc/CSVDecision/Options.html +376 -357
  38. data/doc/CSVDecision/Parse.html +217 -204
  39. data/doc/CSVDecision/Paths.html +664 -629
  40. data/doc/CSVDecision/Result.html +1076 -1005
  41. data/doc/CSVDecision/Scan/InputHashes.html +305 -288
  42. data/doc/CSVDecision/Scan.html +262 -249
  43. data/doc/CSVDecision/ScanRow.html +749 -705
  44. data/doc/CSVDecision/Symbol.html +204 -191
  45. data/doc/CSVDecision/Table.html +1391 -1305
  46. data/doc/CSVDecision/TableValidationError.html +117 -110
  47. data/doc/CSVDecision/Validate.html +353 -337
  48. data/doc/CSVDecision.html +623 -552
  49. data/doc/_index.html +488 -448
  50. data/doc/class_list.html +250 -45
  51. data/doc/file.README.html +304 -278
  52. data/doc/index.html +304 -278
  53. data/doc/method_list.html +1159 -1017
  54. data/doc/top-level-namespace.html +79 -75
  55. data/lib/{csv_decision → csv_decision2}/columns.rb +7 -7
  56. data/lib/{csv_decision → csv_decision2}/data.rb +1 -1
  57. data/lib/{csv_decision → csv_decision2}/decision.rb +5 -5
  58. data/lib/{csv_decision → csv_decision2}/defaults.rb +2 -2
  59. data/lib/{csv_decision → csv_decision2}/dictionary.rb +2 -2
  60. data/lib/{csv_decision → csv_decision2}/header.rb +5 -5
  61. data/lib/{csv_decision → csv_decision2}/index.rb +5 -5
  62. data/lib/{csv_decision → csv_decision2}/input.rb +3 -3
  63. data/lib/{csv_decision → csv_decision2}/load.rb +6 -6
  64. data/lib/{csv_decision → csv_decision2}/matchers/constant.rb +2 -2
  65. data/lib/{csv_decision → csv_decision2}/matchers/function.rb +2 -2
  66. data/lib/{csv_decision → csv_decision2}/matchers/guard.rb +2 -2
  67. data/lib/{csv_decision → csv_decision2}/matchers/numeric.rb +2 -2
  68. data/lib/{csv_decision → csv_decision2}/matchers/pattern.rb +2 -2
  69. data/lib/{csv_decision → csv_decision2}/matchers/range.rb +2 -2
  70. data/lib/{csv_decision → csv_decision2}/matchers/symbol.rb +2 -2
  71. data/lib/{csv_decision → csv_decision2}/matchers.rb +5 -5
  72. data/lib/{csv_decision → csv_decision2}/options.rb +3 -3
  73. data/lib/{csv_decision → csv_decision2}/parse.rb +14 -14
  74. data/lib/{csv_decision → csv_decision2}/paths.rb +5 -5
  75. data/lib/{csv_decision → csv_decision2}/result.rb +2 -2
  76. data/lib/{csv_decision → csv_decision2}/scan.rb +3 -3
  77. data/lib/{csv_decision → csv_decision2}/scan_row.rb +2 -2
  78. data/lib/{csv_decision → csv_decision2}/table.rb +8 -8
  79. data/lib/{csv_decision → csv_decision2}/validate.rb +2 -2
  80. data/lib/csv_decision2.rb +45 -0
  81. data/spec/{csv_decision → csv_decision2}/columns_spec.rb +44 -44
  82. data/spec/{csv_decision → csv_decision2}/constant_spec.rb +4 -4
  83. data/spec/{csv_decision → csv_decision2}/data_spec.rb +11 -11
  84. data/spec/{csv_decision → csv_decision2}/decision_spec.rb +6 -6
  85. data/spec/{csv_decision → csv_decision2}/examples_spec.rb +14 -14
  86. data/spec/{csv_decision → csv_decision2}/index_spec.rb +8 -8
  87. data/spec/{csv_decision → csv_decision2}/input_spec.rb +9 -9
  88. data/spec/{csv_decision → csv_decision2}/load_spec.rb +8 -8
  89. data/spec/{csv_decision → csv_decision2}/matchers/function_spec.rb +7 -7
  90. data/spec/{csv_decision → csv_decision2}/matchers/guard_spec.rb +14 -14
  91. data/spec/{csv_decision → csv_decision2}/matchers/numeric_spec.rb +5 -5
  92. data/spec/{csv_decision → csv_decision2}/matchers/pattern_spec.rb +6 -6
  93. data/spec/{csv_decision → csv_decision2}/matchers/range_spec.rb +5 -5
  94. data/spec/{csv_decision → csv_decision2}/matchers/symbol_spec.rb +6 -6
  95. data/spec/{csv_decision → csv_decision2}/options_spec.rb +18 -18
  96. data/spec/csv_decision2/parse_spec.rb +44 -0
  97. data/spec/{csv_decision → csv_decision2}/table_spec.rb +17 -17
  98. data/spec/csv_decision2_spec.rb +7 -0
  99. metadata +64 -64
  100. data/lib/csv_decision.rb +0 -45
  101. data/spec/csv_decision/parse_spec.rb +0 -44
  102. data/spec/csv_decision_spec.rb +0 -7
@@ -1,23 +1,24 @@
1
1
  <!DOCTYPE html>
2
2
  <html>
3
- <head>
4
- <meta charset="utf-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>
7
- Class: CSVDecision::Matchers
8
-
3
+
4
+ <head>
5
+ <meta charset="utf-8">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
+ <title>
8
+ Class: CSVDecision2::Matchers
9
+
9
10
  &mdash; Documentation by YARD 0.9.12
10
-
11
- </title>
11
+
12
+ </title>
12
13
 
13
14
  <link rel="stylesheet" href="../css/style.css" type="text/css" charset="utf-8" />
14
15
 
15
16
  <link rel="stylesheet" href="../css/common.css" type="text/css" charset="utf-8" />
16
17
 
17
- <script type="text/javascript" charset="utf-8">
18
- pathId = "CSVDecision::Matchers";
19
- relpath = '../';
20
- </script>
18
+ <script type="text/javascript" charset="utf-8">
19
+ pathId = "CSVDecision2::Matchers";
20
+ relpath = '../';
21
+ </script>
21
22
 
22
23
 
23
24
  <script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
@@ -25,1013 +26,1109 @@
25
26
  <script type="text/javascript" charset="utf-8" src="../js/app.js"></script>
26
27
 
27
28
 
28
- </head>
29
- <body>
30
- <div class="nav_wrap">
31
- <iframe id="nav" src="../class_list.html?1"></iframe>
32
- <div id="resizer"></div>
33
- </div>
29
+ </head>
30
+
31
+ <body>
32
+ <div class="nav_wrap">
33
+ <iframe id="nav" src="../class_list.html?1"></iframe>
34
+ <div id="resizer"></div>
35
+ </div>
36
+
37
+ <div id="main" tabindex="-1">
38
+ <div id="header">
39
+ <div id="menu">
40
+
41
+ <a href="../_index.html">Index (M)</a> &raquo;
42
+ <span class='title'><span class='object_link'><a href="../CSVDecision2.html"
43
+ title="CSVDecision (module)">CSVDecision</a></span></span>
44
+ &raquo;
45
+ <span class="title">Matchers</span>
46
+
47
+ </div>
48
+
49
+ <div id="search">
50
+
51
+ <a class="full_list_link" id="class_list_link" href="../class_list.html">
52
+
53
+ <svg width="24" height="24">
54
+ <rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
55
+ <rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
56
+ <rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
57
+ </svg>
58
+ </a>
59
+
60
+ </div>
61
+ <div class="clear"></div>
62
+ </div>
63
+
64
+ <div id="content">
65
+ <h1>Class: CSVDecision2::Matchers
66
+
67
+
68
+ <span class="private note title">Private</span>
69
+ </h1>
70
+ <div class="box_info">
71
+
72
+ <dl>
73
+ <dt>Inherits:</dt>
74
+ <dd>
75
+ <span class="inheritName">Object</span>
76
+
77
+ <ul class="fullTree">
78
+ <li>Object</li>
79
+
80
+ <li class="next">CSVDecision2::Matchers</li>
81
+
82
+ </ul>
83
+ <a href="#" class="inheritanceTree">show all</a>
84
+
85
+ </dd>
86
+ </dl>
87
+
88
+
89
+
90
+
91
+
92
+
93
+
94
+
95
+
96
+
97
+
98
+ <dl>
99
+ <dt>Defined in:</dt>
100
+ <dd>lib/csv_decision2.rb<span class="defines">,<br />
101
+ lib/csv_decision2/matchers.rb,<br /> lib/csv_decision2/matchers/guard.rb,<br />
102
+ lib/csv_decision2/matchers/range.rb,<br /> lib/csv_decision2/matchers/symbol.rb,<br />
103
+ lib/csv_decision2/matchers/numeric.rb,<br /> lib/csv_decision2/matchers/pattern.rb,<br />
104
+ lib/csv_decision2/matchers/constant.rb,<br /> lib/csv_decision2/matchers/function.rb</span>
105
+ </dd>
106
+ </dl>
107
+
108
+ </div>
109
+
110
+ <h2>Overview</h2>
111
+ <div class="docstring">
112
+ <div class="discussion">
113
+ <p class="note private">
114
+ <strong>This class is part of a private API.</strong>
115
+ You should avoid using this class if possible, as it may be removed or be changed in the future.
116
+ </p>
117
+
118
+ <p>Methods to assign a matcher to data cells</p>
119
+
120
+
121
+ </div>
122
+ </div>
123
+ <div class="tags">
124
+
125
+
126
+ </div>
127
+ <h2>Defined Under Namespace</h2>
128
+ <p class="children">
129
+
130
+
131
+
132
+
133
+ <strong class="classes">Classes:</strong> <span class='object_link'><a href="Matchers/Constant.html"
134
+ title="CSVDecision2::Matchers::Constant (class)">Constant</a></span>, <span class='object_link'><a
135
+ href="Matchers/Function.html" title="CSVDecision2::Matchers::Function (class)">Function</a></span>, <span
136
+ class='object_link'><a href="Matchers/Guard.html"
137
+ title="CSVDecision2::Matchers::Guard (class)">Guard</a></span>, <span class='object_link'><a
138
+ href="Matchers/Matcher.html" title="CSVDecision2::Matchers::Matcher (class)">Matcher</a></span>, <span
139
+ class='object_link'><a href="Matchers/Numeric.html"
140
+ title="CSVDecision2::Matchers::Numeric (class)">Numeric</a></span>, <span class='object_link'><a
141
+ href="Matchers/Pattern.html" title="CSVDecision2::Matchers::Pattern (class)">Pattern</a></span>, <span
142
+ class='object_link'><a href="Matchers/Proc.html" title="CSVDecision2::Matchers::Proc (class)">Proc</a></span>,
143
+ <span class='object_link'><a href="Matchers/Range.html"
144
+ title="CSVDecision2::Matchers::Range (class)">Range</a></span>, <span class='object_link'><a
145
+ href="Matchers/Symbol.html" title="CSVDecision2::Matchers::Symbol (class)">Symbol</a></span>
146
+
147
+
148
+ </p>
149
+
150
+ <h2>Constant Summary</h2>
151
+ <dl class="constants">
152
+
153
+ <dt id="NEGATE-constant" class="">NEGATE =
154
+ <div class="docstring">
155
+ <div class="discussion">
156
+ <p class="note private">
157
+ <strong>This constant is part of a private API.</strong>
158
+ You should avoid using this constant if possible, as it may be removed or be changed in the future.
159
+ </p>
160
+
161
+ <p>Negation sign prefixed to ranges and functions.</p>
162
+
163
+
164
+ </div>
165
+ </div>
166
+ <div class="tags">
167
+
168
+
169
+ </div>
170
+ </dt>
171
+ <dd>
172
+ <pre
173
+ class="code"><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>!</span><span class='tstring_end'>&#39;</span></span></pre>
174
+ </dd>
175
+
176
+ <dt id="INEQUALITY-constant" class="">INEQUALITY =
177
+ <div class="docstring">
178
+ <div class="discussion">
179
+ <p class="note private">
180
+ <strong>This constant is part of a private API.</strong>
181
+ You should avoid using this constant if possible, as it may be removed or be changed in the future.
182
+ </p>
183
+
184
+ <p>Symbols used for inequality</p>
185
+
186
+
187
+ </div>
188
+ </div>
189
+ <div class="tags">
190
+
191
+
192
+ </div>
193
+ </dt>
194
+ <dd>
195
+ <pre
196
+ class="code"><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>!=|!</span><span class='tstring_end'>&#39;</span></span></pre>
197
+ </dd>
198
+
199
+ <dt id="INEQUALITY_RE-constant" class="">INEQUALITY_RE =
200
+ <div class="docstring">
201
+ <div class="discussion">
202
+ <p class="note private">
203
+ <strong>This constant is part of a private API.</strong>
204
+ You should avoid using this constant if possible, as it may be removed or be changed in the future.
205
+ </p>
206
+
207
+ <p>Match Regexp for inequality</p>
208
+
209
+
210
+ </div>
211
+ </div>
212
+ <div class="tags">
213
+
214
+
215
+ </div>
216
+ </dt>
217
+ <dd>
218
+ <pre
219
+ class="code"><span class='id identifier rubyid_regexp'>regexp</span><span class='lparen'>(</span><span class='const'><span class='object_link'><a href="#INEQUALITY-constant" title="CSVDecision2::Matchers::INEQUALITY (constant)">INEQUALITY</a></span></span><span class='rparen'>)</span></pre>
220
+ </dd>
221
+
222
+ <dt id="EQUALS-constant" class="">EQUALS =
223
+ <div class="docstring">
224
+ <div class="discussion">
225
+ <p class="note private">
226
+ <strong>This constant is part of a private API.</strong>
227
+ You should avoid using this constant if possible, as it may be removed or be changed in the future.
228
+ </p>
229
+
230
+ <p>Equality, cell constants and functions specified by prefixing the value
231
+ with one of these 3 symbols.</p>
232
+
233
+
234
+ </div>
235
+ </div>
236
+ <div class="tags">
237
+
238
+
239
+ </div>
240
+ </dt>
241
+ <dd>
242
+ <pre
243
+ class="code"><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>==|:=|=</span><span class='tstring_end'>&#39;</span></span></pre>
244
+ </dd>
245
+
246
+ <dt id="EQUALS_RE-constant" class="">EQUALS_RE =
247
+ <div class="docstring">
248
+ <div class="discussion">
249
+ <p class="note private">
250
+ <strong>This constant is part of a private API.</strong>
251
+ You should avoid using this constant if possible, as it may be removed or be changed in the future.
252
+ </p>
253
+
254
+ <p>Match Regexp for equality</p>
255
+
256
+
257
+ </div>
258
+ </div>
259
+ <div class="tags">
260
+
261
+
262
+ </div>
263
+ </dt>
264
+ <dd>
265
+ <pre
266
+ class="code"><span class='id identifier rubyid_regexp'>regexp</span><span class='lparen'>(</span><span class='const'><span class='object_link'><a href="#EQUALS-constant" title="CSVDecision2::Matchers::EQUALS (constant)">EQUALS</a></span></span><span class='rparen'>)</span></pre>
267
+ </dd>
268
+
269
+ <dt id="METHOD_NAME_RE-constant" class="">METHOD_NAME_RE =
270
+ <div class="docstring">
271
+ <div class="discussion">
272
+ <p class="note private">
273
+ <strong>This constant is part of a private API.</strong>
274
+ You should avoid using this constant if possible, as it may be removed or be changed in the future.
275
+ </p>
276
+
277
+ <p>Method names are stricter than CSV column names.</p>
278
+
279
+
280
+ </div>
281
+ </div>
282
+ <div class="tags">
283
+
284
+
285
+ </div>
286
+ </dt>
287
+ <dd>
288
+ <pre
289
+ class="code"><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\A[_a-z][_a-z0-9]*[?!=]?\z</span><span class='regexp_end'>/</span></span></pre>
290
+ </dd>
291
+
292
+ <dt id="NUMERIC-constant" class="">NUMERIC =
293
+ <div class="docstring">
294
+ <div class="discussion">
295
+ <p class="note private">
296
+ <strong>This constant is part of a private API.</strong>
297
+ You should avoid using this constant if possible, as it may be removed or be changed in the future.
298
+ </p>
299
+
300
+ <p>Regular expression used to recognise a numeric string with or without a
301
+ decimal point.</p>
302
+
303
+
304
+ </div>
305
+ </div>
306
+ <div class="tags">
307
+
308
+
309
+ </div>
310
+ </dt>
311
+ <dd>
312
+ <pre
313
+ class="code"><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>[-+]?\d*(?&lt;decimal&gt;\.?)\d*</span><span class='tstring_end'>&#39;</span></span></pre>
314
+ </dd>
315
+
316
+ </dl>
317
+
318
+
319
+
320
+
321
+ <h2>Instance Attribute Summary <small><a href="#" class="summary_toggle">collapse</a></small></h2>
322
+ <ul class="summary">
323
+
324
+ <li class="public ">
325
+ <span class="summary_signature">
326
+
327
+ <a href="#ins-instance_method" title="#ins (instance method)">#<strong>ins</strong> &#x21d2;
328
+ Array&lt;Matchers::Matcher&gt; </a>
329
+
330
+
331
+
332
+ </span>
333
+
334
+
335
+
336
+
337
+ <span class="note title readonly">readonly</span>
338
+
339
+
340
+
341
+
342
+
343
+
344
+ <span class="private note title">private</span>
345
+
346
+
347
+ <span class="summary_desc">
348
+ <div class='inline'>
349
+ <p>Matchers for the input columns.</p>
350
+ </div>
351
+ </span>
352
+
353
+ </li>
354
+
355
+
356
+ <li class="public ">
357
+ <span class="summary_signature">
358
+
359
+ <a href="#outs-instance_method" title="#outs (instance method)">#<strong>outs</strong> &#x21d2;
360
+ Array&lt;Matchers::Matcher&gt; </a>
361
+
362
+
363
+
364
+ </span>
365
+
366
+
367
+
368
+
369
+ <span class="note title readonly">readonly</span>
370
+
371
+
372
+
373
+
374
+
375
+
376
+ <span class="private note title">private</span>
377
+
378
+
379
+ <span class="summary_desc">
380
+ <div class='inline'>
381
+ <p>Matchers for the output columns.</p>
382
+ </div>
383
+ </span>
384
+
385
+ </li>
386
+
387
+
388
+ </ul>
389
+
390
+
391
+
392
+
393
+
394
+ <h2>
395
+ Class Method Summary
396
+ <small><a href="#" class="summary_toggle">collapse</a></small>
397
+ </h2>
398
+
399
+ <ul class="summary">
400
+
401
+ <li class="public ">
402
+ <span class="summary_signature">
403
+
404
+ <a href="#compare%3F-class_method" title="compare? (class method)">.<strong>compare?</strong>(lhs:,
405
+ compare:, rhs:) &#x21d2; nil, Boolean </a>
406
+
407
+
408
+
409
+ </span>
410
+
411
+
412
+
413
+
414
+
415
+
416
+ <span class="private note title">private</span>
417
+
418
+
419
+ <span class="summary_desc">
420
+ <div class='inline'>
421
+ <p>Compare one object with another if they both respond to the compare method.</p>
422
+ </div>
423
+ </span>
424
+
425
+ </li>
426
+
427
+
428
+ <li class="public ">
429
+ <span class="summary_signature">
430
+
431
+ <a href="#normalize_operator-class_method"
432
+ title="normalize_operator (class method)">.<strong>normalize_operator</strong>(operator) &#x21d2; String
433
+ </a>
434
+
435
+
436
+
437
+ </span>
438
+
439
+
440
+
441
+
442
+
443
+
444
+ <span class="private note title">private</span>
445
+
446
+
447
+ <span class="summary_desc">
448
+ <div class='inline'>
449
+ <p>Normalize the operators which are a variation on equals/assignment.</p>
450
+ </div>
451
+ </span>
452
+
453
+ </li>
454
+
455
+
456
+ <li class="public ">
457
+ <span class="summary_signature">
458
+
459
+ <a href="#numeric-class_method" title="numeric (class method)">.<strong>numeric</strong>(value) &#x21d2;
460
+ nil, ... </a>
461
+
462
+
463
+
464
+ </span>
465
+
466
+
467
+
468
+
469
+
470
+
471
+ <span class="private note title">private</span>
472
+
473
+
474
+ <span class="summary_desc">
475
+ <div class='inline'>
476
+ <p>Validate a numeric value and convert it to an Integer or BigDecimal if a
477
+ valid numeric string.</p>
478
+ </div>
479
+ </span>
480
+
481
+ </li>
482
+
483
+
484
+ <li class="public ">
485
+ <span class="summary_signature">
486
+
487
+ <a href="#parse-class_method" title="parse (class method)">.<strong>parse</strong>(columns:, matchers:,
488
+ row:) &#x21d2; Array&lt;(Array, ScanRow)&gt; </a>
489
+
490
+
491
+
492
+ </span>
493
+
494
+
495
+
496
+
497
+
498
+
499
+ <span class="private note title">private</span>
500
+
501
+
502
+ <span class="summary_desc">
503
+ <div class='inline'>
504
+ <p>Parse the supplied input columns for the row supplied using an array of
505
+ matchers.</p>
506
+ </div>
507
+ </span>
508
+
509
+ </li>
510
+
511
+
512
+ <li class="public ">
513
+ <span class="summary_signature">
514
+
515
+ <a href="#regexp-class_method" title="regexp (class method)">.<strong>regexp</strong>(value) &#x21d2; Regexp
516
+ </a>
517
+
518
+
519
+
520
+ </span>
521
+
522
+
523
+
524
+
525
+
526
+
527
+ <span class="private note title">private</span>
528
+
529
+
530
+ <span class="summary_desc">
531
+ <div class='inline'>
532
+ <p>All regular expressions used for matching are anchored inside their own
533
+ non-capturing group.</p>
534
+ </div>
535
+ </span>
536
+
537
+ </li>
538
+
539
+
540
+ <li class="public ">
541
+ <span class="summary_signature">
542
+
543
+ <a href="#to_numeric-class_method" title="to_numeric (class method)">.<strong>to_numeric</strong>(value)
544
+ &#x21d2; nil, ... </a>
545
+
546
+
547
+
548
+ </span>
549
+
550
+
551
+
552
+
553
+
554
+
555
+ <span class="private note title">private</span>
556
+
557
+
558
+ <span class="summary_desc">
559
+ <div class='inline'>
560
+ <p>Convert a numeric string into an Integer or BigDecimal, otherwise return
561
+ nil.</p>
562
+ </div>
563
+ </span>
564
+
565
+ </li>
566
+
567
+
568
+ </ul>
569
+
570
+ <h2>
571
+ Instance Method Summary
572
+ <small><a href="#" class="summary_toggle">collapse</a></small>
573
+ </h2>
574
+
575
+ <ul class="summary">
576
+
577
+ <li class="public ">
578
+ <span class="summary_signature">
579
+
580
+ <a href="#initialize-instance_method"
581
+ title="#initialize (instance method)">#<strong>initialize</strong>(options) &#x21d2; Matchers </a>
582
+
583
+
584
+
585
+ </span>
586
+
587
+
588
+ <span class="note title constructor">constructor</span>
589
+
590
+
591
+
592
+
593
+
594
+ <span class="private note title">private</span>
595
+
596
+
597
+ <span class="summary_desc">
598
+ <div class='inline'>
599
+ <p>A new instance of Matchers.</p>
600
+ </div>
601
+ </span>
602
+
603
+ </li>
604
+
605
+
606
+ <li class="public ">
607
+ <span class="summary_signature">
608
+
609
+ <a href="#parse_ins-instance_method"
610
+ title="#parse_ins (instance method)">#<strong>parse_ins</strong>(columns:, row:) &#x21d2; Array&lt;(Array,
611
+ ScanRow)&gt; </a>
612
+
613
+
614
+
615
+ </span>
616
+
617
+
618
+
619
+
620
+
621
+
622
+ <span class="private note title">private</span>
623
+
624
+
625
+ <span class="summary_desc">
626
+ <div class='inline'>
627
+ <p>Parse the row&#39;s input columns using the input matchers.</p>
628
+ </div>
629
+ </span>
630
+
631
+ </li>
632
+
633
+
634
+ <li class="public ">
635
+ <span class="summary_signature">
636
+
637
+ <a href="#parse_outs-instance_method"
638
+ title="#parse_outs (instance method)">#<strong>parse_outs</strong>(columns:, row:) &#x21d2;
639
+ Array&lt;(Array, ScanRow)&gt; </a>
640
+
641
+
642
+
643
+ </span>
644
+
645
+
646
+
647
+
648
+
649
+
650
+ <span class="private note title">private</span>
651
+
652
+
653
+ <span class="summary_desc">
654
+ <div class='inline'>
655
+ <p>Parse the row&#39;s output columns using the output matchers.</p>
656
+ </div>
657
+ </span>
658
+
659
+ </li>
660
+
661
+
662
+ </ul>
663
+
664
+
665
+ <div id="constructor_details" class="method_details_list">
666
+ <h2>Constructor Details</h2>
667
+
668
+ <div class="method_details first">
669
+ <h3 class="signature first" id="initialize-instance_method">
670
+
671
+ #<strong>initialize</strong>(options) &#x21d2; <tt><span class='object_link'><a href=""
672
+ title="CSVDecision2::Matchers (class)">Matchers</a></span></tt>
673
+
674
+
675
+
676
+
677
+
678
+ </h3>
679
+ <div class="docstring">
680
+ <div class="discussion">
681
+ <p class="note private">
682
+ <strong>This method is part of a private API.</strong>
683
+ You should avoid using this method if possible, as it may be removed or be changed in the future.
684
+ </p>
685
+
686
+ <p>Returns a new instance of Matchers</p>
687
+
688
+
689
+ </div>
690
+ </div>
691
+ <div class="tags">
692
+ <p class="tag_title">Parameters:</p>
693
+ <ul class="param">
694
+
695
+ <li>
696
+
697
+ <span class='name'>options</span>
698
+
699
+
700
+ <span class='type'>(<tt>Hash{<span class='object_link'><a href="Matchers/Symbol.html"
701
+ title="CSVDecision2::Matchers::Symbol (class)">Symbol</a></span>=&gt;Object}</tt>)</span>
702
+
703
+
704
+
705
+ &mdash;
706
+ <div class='inline'>
707
+ <p>Options hash controlling how the table is parsed and interpreted.</p>
708
+ </div>
709
+
710
+ </li>
711
+
712
+ </ul>
713
+
714
+
715
+ </div>
716
+ <table class="source_code">
717
+ <tr>
718
+ <td>
719
+ <pre class="lines">
720
+
721
+
722
+ 167
723
+ 168
724
+ 169
725
+ 170
726
+ 171</pre>
727
+ </td>
728
+ <td>
729
+ <pre class="code"><span class="info file"># File 'lib/csv_decision2/matchers.rb', line 167</span>
730
+
731
+ <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
732
+ <span class='id identifier rubyid_matchers'>matchers</span> <span class='op'>=</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:matchers</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_collect'>collect</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_klass'>klass</span><span class='op'>|</span> <span class='id identifier rubyid_klass'>klass</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span> <span class='rbrace'>}</span>
733
+ <span class='ivar'>@ins</span> <span class='op'>=</span> <span class='id identifier rubyid_matchers'>matchers</span><span class='period'>.</span><span class='id identifier rubyid_select'>select</span><span class='lparen'>(</span><span class='op'>&amp;</span><span class='symbol'>:ins?</span><span class='rparen'>)</span>
734
+ <span class='ivar'>@outs</span> <span class='op'>=</span> <span class='id identifier rubyid_matchers'>matchers</span><span class='period'>.</span><span class='id identifier rubyid_select'>select</span><span class='lparen'>(</span><span class='op'>&amp;</span><span class='symbol'>:outs?</span><span class='rparen'>)</span>
735
+ <span class='kw'>end</span></pre>
736
+ </td>
737
+ </tr>
738
+ </table>
739
+ </div>
740
+
741
+ </div>
742
+
743
+ <div id="instance_attr_details" class="attr_details">
744
+ <h2>Instance Attribute Details</h2>
745
+
746
+
747
+ <span id=""></span>
748
+ <div class="method_details first">
749
+ <h3 class="signature first" id="ins-instance_method">
750
+
751
+ #<strong>ins</strong> &#x21d2; <tt>Array&lt;<span class='object_link'><a href="Matchers/Matcher.html"
752
+ title="CSVDecision2::Matchers::Matcher (class)">Matchers::Matcher</a></span>&gt;</tt> <span
753
+ class="extras">(readonly)</span>
754
+
755
+
756
+
757
+
758
+
759
+ </h3>
760
+ <div class="docstring">
761
+ <div class="discussion">
762
+ <p class="note private">
763
+ <strong>This method is part of a private API.</strong>
764
+ You should avoid using this method if possible, as it may be removed or be changed in the future.
765
+ </p>
766
+
767
+ <p>Returns Matchers for the input columns.</p>
768
+
769
+
770
+ </div>
771
+ </div>
772
+ <div class="tags">
773
+
774
+ <p class="tag_title">Returns:</p>
775
+ <ul class="return">
776
+
777
+ <li>
778
+
779
+
780
+ <span class='type'>(<tt>Array&lt;<span class='object_link'><a href="Matchers/Matcher.html"
781
+ title="CSVDecision2::Matchers::Matcher (class)">Matchers::Matcher</a></span>&gt;</tt>)</span>
782
+
783
+
784
+
785
+ &mdash;
786
+ <div class='inline'>
787
+ <p>Matchers for the input columns.</p>
788
+ </div>
789
+
790
+ </li>
791
+
792
+ </ul>
793
+
794
+ </div>
795
+ <table class="source_code">
796
+ <tr>
797
+ <td>
798
+ <pre class="lines">
799
+
800
+
801
+ 161
802
+ 162
803
+ 163</pre>
804
+ </td>
805
+ <td>
806
+ <pre class="code"><span class="info file"># File 'lib/csv_decision2/matchers.rb', line 161</span>
807
+
808
+ <span class='kw'>def</span> <span class='id identifier rubyid_ins'>ins</span>
809
+ <span class='ivar'>@ins</span>
810
+ <span class='kw'>end</span></pre>
811
+ </td>
812
+ </tr>
813
+ </table>
814
+ </div>
815
+
816
+
817
+ <span id=""></span>
818
+ <div class="method_details ">
819
+ <h3 class="signature " id="outs-instance_method">
820
+
821
+ #<strong>outs</strong> &#x21d2; <tt>Array&lt;<span class='object_link'><a href="Matchers/Matcher.html"
822
+ title="CSVDecision2::Matchers::Matcher (class)">Matchers::Matcher</a></span>&gt;</tt> <span
823
+ class="extras">(readonly)</span>
824
+
825
+
826
+
827
+
828
+
829
+ </h3>
830
+ <div class="docstring">
831
+ <div class="discussion">
832
+ <p class="note private">
833
+ <strong>This method is part of a private API.</strong>
834
+ You should avoid using this method if possible, as it may be removed or be changed in the future.
835
+ </p>
836
+
837
+ <p>Returns Matchers for the output columns.</p>
838
+
839
+
840
+ </div>
841
+ </div>
842
+ <div class="tags">
843
+
844
+ <p class="tag_title">Returns:</p>
845
+ <ul class="return">
846
+
847
+ <li>
848
+
849
+
850
+ <span class='type'>(<tt>Array&lt;<span class='object_link'><a href="Matchers/Matcher.html"
851
+ title="CSVDecision2::Matchers::Matcher (class)">Matchers::Matcher</a></span>&gt;</tt>)</span>
852
+
853
+
854
+
855
+ &mdash;
856
+ <div class='inline'>
857
+ <p>Matchers for the output columns.</p>
858
+ </div>
859
+
860
+ </li>
861
+
862
+ </ul>
863
+
864
+ </div>
865
+ <table class="source_code">
866
+ <tr>
867
+ <td>
868
+ <pre class="lines">
869
+
870
+
871
+ 164
872
+ 165
873
+ 166</pre>
874
+ </td>
875
+ <td>
876
+ <pre class="code"><span class="info file"># File 'lib/csv_decision2/matchers.rb', line 164</span>
877
+
878
+ <span class='kw'>def</span> <span class='id identifier rubyid_outs'>outs</span>
879
+ <span class='ivar'>@outs</span>
880
+ <span class='kw'>end</span></pre>
881
+ </td>
882
+ </tr>
883
+ </table>
884
+ </div>
885
+
886
+ </div>
887
+
888
+
889
+ <div id="class_method_details" class="method_details_list">
890
+ <h2>Class Method Details</h2>
891
+
892
+
893
+ <div class="method_details first">
894
+ <h3 class="signature first" id="compare?-class_method">
895
+
896
+ .<strong>compare?</strong>(lhs:, compare:, rhs:) &#x21d2; <tt>nil</tt>, <tt>Boolean</tt>
897
+
898
+
899
+
900
+
901
+
902
+ </h3>
903
+ <div class="docstring">
904
+ <div class="discussion">
905
+ <p class="note private">
906
+ <strong>This method is part of a private API.</strong>
907
+ You should avoid using this method if possible, as it may be removed or be changed in the future.
908
+ </p>
909
+
910
+ <p>Compare one object with another if they both respond to the compare method.</p>
911
+
912
+
913
+ </div>
914
+ </div>
915
+ <div class="tags">
916
+ <p class="tag_title">Parameters:</p>
917
+ <ul class="param">
918
+
919
+ <li>
920
+
921
+ <span class='name'>lhs</span>
922
+
923
+
924
+ <span class='type'>(<tt>Object</tt>)</span>
925
+
926
+
927
+
928
+ </li>
929
+
930
+ <li>
931
+
932
+ <span class='name'>compare</span>
933
+
934
+
935
+ <span class='type'>(<tt>Object</tt>)</span>
936
+
937
+
938
+
939
+ </li>
940
+
941
+ <li>
942
+
943
+ <span class='name'>rhs</span>
944
+
945
+
946
+ <span class='type'>(<tt>Object</tt>)</span>
947
+
948
+
949
+
950
+ </li>
951
+
952
+ </ul>
953
+
954
+ <p class="tag_title">Returns:</p>
955
+ <ul class="return">
956
+
957
+ <li>
958
+
959
+
960
+ <span class='type'>(<tt>nil</tt>, <tt>Boolean</tt>)</span>
961
+
962
+
963
+
964
+ </li>
965
+
966
+ </ul>
967
+
968
+ </div>
969
+ <table class="source_code">
970
+ <tr>
971
+ <td>
972
+ <pre class="lines">
973
+
974
+
975
+ 133
976
+ 134
977
+ 135
978
+ 136
979
+ 137
980
+ 138
981
+ 139</pre>
982
+ </td>
983
+ <td>
984
+ <pre class="code"><span class="info file"># File 'lib/csv_decision2/matchers.rb', line 133</span>
985
+
986
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_compare?'>compare?</span><span class='lparen'>(</span><span class='label'>lhs:</span><span class='comma'>,</span> <span class='label'>compare:</span><span class='comma'>,</span> <span class='label'>rhs:</span><span class='rparen'>)</span>
987
+ <span class='comment'># Is the rhs the same class or a superclass of lhs, and does rhs respond to the
988
+ </span> <span class='comment'># compare method?
989
+ </span> <span class='kw'>return</span> <span class='id identifier rubyid_lhs'>lhs</span><span class='period'>.</span><span class='id identifier rubyid_send'>send</span><span class='lparen'>(</span><span class='id identifier rubyid_compare'>compare</span><span class='comma'>,</span> <span class='id identifier rubyid_rhs'>rhs</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_lhs'>lhs</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='id identifier rubyid_rhs'>rhs</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='rparen'>)</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_rhs'>rhs</span><span class='period'>.</span><span class='id identifier rubyid_respond_to?'>respond_to?</span><span class='lparen'>(</span><span class='id identifier rubyid_compare'>compare</span><span class='rparen'>)</span>
34
990
 
35
- <div id="main" tabindex="-1">
36
- <div id="header">
37
- <div id="menu">
38
-
39
- <a href="../_index.html">Index (M)</a> &raquo;
40
- <span class='title'><span class='object_link'><a href="../CSVDecision.html" title="CSVDecision (module)">CSVDecision</a></span></span>
41
- &raquo;
42
- <span class="title">Matchers</span>
43
-
44
- </div>
45
-
46
- <div id="search">
47
-
48
- <a class="full_list_link" id="class_list_link"
49
- href="../class_list.html">
50
-
51
- <svg width="24" height="24">
52
- <rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
53
- <rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
54
- <rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
55
- </svg>
56
- </a>
57
-
58
- </div>
59
- <div class="clear"></div>
60
- </div>
991
+ <span class='kw'>nil</span>
992
+ <span class='kw'>end</span></pre>
993
+ </td>
994
+ </tr>
995
+ </table>
996
+ </div>
61
997
 
62
- <div id="content"><h1>Class: CSVDecision::Matchers
63
-
64
-
65
- <span class="private note title">Private</span>
66
- </h1>
67
- <div class="box_info">
68
-
69
- <dl>
70
- <dt>Inherits:</dt>
71
- <dd>
72
- <span class="inheritName">Object</span>
73
-
74
- <ul class="fullTree">
75
- <li>Object</li>
76
-
77
- <li class="next">CSVDecision::Matchers</li>
78
-
79
- </ul>
80
- <a href="#" class="inheritanceTree">show all</a>
81
-
82
- </dd>
83
- </dl>
84
-
85
-
86
-
87
-
88
-
89
-
90
-
91
-
92
-
93
-
94
-
95
- <dl>
96
- <dt>Defined in:</dt>
97
- <dd>lib/csv_decision.rb<span class="defines">,<br />
98
- lib/csv_decision/matchers.rb,<br /> lib/csv_decision/matchers/guard.rb,<br /> lib/csv_decision/matchers/range.rb,<br /> lib/csv_decision/matchers/symbol.rb,<br /> lib/csv_decision/matchers/numeric.rb,<br /> lib/csv_decision/matchers/pattern.rb,<br /> lib/csv_decision/matchers/constant.rb,<br /> lib/csv_decision/matchers/function.rb</span>
99
- </dd>
100
- </dl>
101
-
102
- </div>
103
-
104
- <h2>Overview</h2><div class="docstring">
105
- <div class="discussion">
106
- <p class="note private">
107
- <strong>This class is part of a private API.</strong>
108
- You should avoid using this class if possible, as it may be removed or be changed in the future.
109
- </p>
110
-
111
- <p>Methods to assign a matcher to data cells</p>
998
+ <div class="method_details ">
999
+ <h3 class="signature " id="normalize_operator-class_method">
112
1000
 
1001
+ .<strong>normalize_operator</strong>(operator) &#x21d2; <tt>String</tt>
113
1002
 
114
- </div>
115
- </div>
116
- <div class="tags">
117
-
118
-
119
- </div><h2>Defined Under Namespace</h2>
120
- <p class="children">
121
-
122
-
123
-
124
-
125
- <strong class="classes">Classes:</strong> <span class='object_link'><a href="Matchers/Constant.html" title="CSVDecision::Matchers::Constant (class)">Constant</a></span>, <span class='object_link'><a href="Matchers/Function.html" title="CSVDecision::Matchers::Function (class)">Function</a></span>, <span class='object_link'><a href="Matchers/Guard.html" title="CSVDecision::Matchers::Guard (class)">Guard</a></span>, <span class='object_link'><a href="Matchers/Matcher.html" title="CSVDecision::Matchers::Matcher (class)">Matcher</a></span>, <span class='object_link'><a href="Matchers/Numeric.html" title="CSVDecision::Matchers::Numeric (class)">Numeric</a></span>, <span class='object_link'><a href="Matchers/Pattern.html" title="CSVDecision::Matchers::Pattern (class)">Pattern</a></span>, <span class='object_link'><a href="Matchers/Proc.html" title="CSVDecision::Matchers::Proc (class)">Proc</a></span>, <span class='object_link'><a href="Matchers/Range.html" title="CSVDecision::Matchers::Range (class)">Range</a></span>, <span class='object_link'><a href="Matchers/Symbol.html" title="CSVDecision::Matchers::Symbol (class)">Symbol</a></span>
126
-
127
-
128
- </p>
129
-
130
- <h2>Constant Summary</h2>
131
- <dl class="constants">
132
-
133
- <dt id="NEGATE-constant" class="">NEGATE =
134
- <div class="docstring">
135
- <div class="discussion">
136
- <p class="note private">
137
- <strong>This constant is part of a private API.</strong>
138
- You should avoid using this constant if possible, as it may be removed or be changed in the future.
139
- </p>
140
-
141
- <p>Negation sign prefixed to ranges and functions.</p>
142
1003
 
143
1004
 
144
- </div>
145
- </div>
146
- <div class="tags">
147
-
148
1005
 
149
- </div>
150
- </dt>
151
- <dd><pre class="code"><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>!</span><span class='tstring_end'>&#39;</span></span></pre></dd>
152
-
153
- <dt id="INEQUALITY-constant" class="">INEQUALITY =
154
- <div class="docstring">
155
- <div class="discussion">
156
- <p class="note private">
157
- <strong>This constant is part of a private API.</strong>
158
- You should avoid using this constant if possible, as it may be removed or be changed in the future.
159
- </p>
160
1006
 
161
- <p>Symbols used for inequality</p>
1007
+ </h3>
1008
+ <div class="docstring">
1009
+ <div class="discussion">
1010
+ <p class="note private">
1011
+ <strong>This method is part of a private API.</strong>
1012
+ You should avoid using this method if possible, as it may be removed or be changed in the future.
1013
+ </p>
162
1014
 
1015
+ <p>Normalize the operators which are a variation on equals/assignment.</p>
163
1016
 
164
- </div>
165
- </div>
166
- <div class="tags">
167
-
168
1017
 
169
- </div>
170
- </dt>
171
- <dd><pre class="code"><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>!=|!</span><span class='tstring_end'>&#39;</span></span></pre></dd>
172
-
173
- <dt id="INEQUALITY_RE-constant" class="">INEQUALITY_RE =
174
- <div class="docstring">
175
- <div class="discussion">
176
- <p class="note private">
177
- <strong>This constant is part of a private API.</strong>
178
- You should avoid using this constant if possible, as it may be removed or be changed in the future.
179
- </p>
1018
+ </div>
1019
+ </div>
1020
+ <div class="tags">
1021
+ <p class="tag_title">Parameters:</p>
1022
+ <ul class="param">
180
1023
 
181
- <p>Match Regexp for inequality</p>
1024
+ <li>
182
1025
 
1026
+ <span class='name'>operator</span>
183
1027
 
184
- </div>
185
- </div>
186
- <div class="tags">
187
-
188
-
189
- </div>
190
- </dt>
191
- <dd><pre class="code"><span class='id identifier rubyid_regexp'>regexp</span><span class='lparen'>(</span><span class='const'><span class='object_link'><a href="#INEQUALITY-constant" title="CSVDecision::Matchers::INEQUALITY (constant)">INEQUALITY</a></span></span><span class='rparen'>)</span></pre></dd>
192
-
193
- <dt id="EQUALS-constant" class="">EQUALS =
194
- <div class="docstring">
195
- <div class="discussion">
196
- <p class="note private">
197
- <strong>This constant is part of a private API.</strong>
198
- You should avoid using this constant if possible, as it may be removed or be changed in the future.
199
- </p>
200
-
201
- <p>Equality, cell constants and functions specified by prefixing the value
202
- with one of these 3 symbols.</p>
203
1028
 
1029
+ <span class='type'>(<tt>String</tt>)</span>
204
1030
 
205
- </div>
206
- </div>
207
- <div class="tags">
208
-
209
1031
 
210
- </div>
211
- </dt>
212
- <dd><pre class="code"><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>==|:=|=</span><span class='tstring_end'>&#39;</span></span></pre></dd>
213
-
214
- <dt id="EQUALS_RE-constant" class="">EQUALS_RE =
215
- <div class="docstring">
216
- <div class="discussion">
217
- <p class="note private">
218
- <strong>This constant is part of a private API.</strong>
219
- You should avoid using this constant if possible, as it may be removed or be changed in the future.
220
- </p>
221
1032
 
222
- <p>Match Regexp for equality</p>
1033
+ </li>
223
1034
 
1035
+ </ul>
224
1036
 
225
- </div>
226
- </div>
227
- <div class="tags">
228
-
1037
+ <p class="tag_title">Returns:</p>
1038
+ <ul class="return">
229
1039
 
230
- </div>
231
- </dt>
232
- <dd><pre class="code"><span class='id identifier rubyid_regexp'>regexp</span><span class='lparen'>(</span><span class='const'><span class='object_link'><a href="#EQUALS-constant" title="CSVDecision::Matchers::EQUALS (constant)">EQUALS</a></span></span><span class='rparen'>)</span></pre></dd>
233
-
234
- <dt id="METHOD_NAME_RE-constant" class="">METHOD_NAME_RE =
235
- <div class="docstring">
236
- <div class="discussion">
237
- <p class="note private">
238
- <strong>This constant is part of a private API.</strong>
239
- You should avoid using this constant if possible, as it may be removed or be changed in the future.
240
- </p>
1040
+ <li>
241
1041
 
242
- <p>Method names are stricter than CSV column names.</p>
243
1042
 
1043
+ <span class='type'>(<tt>String</tt>)</span>
244
1044
 
245
- </div>
246
- </div>
247
- <div class="tags">
248
-
249
-
250
- </div>
251
- </dt>
252
- <dd><pre class="code"><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\A[_a-z][_a-z0-9]*[?!=]?\z</span><span class='regexp_end'>/</span></span></pre></dd>
253
-
254
- <dt id="NUMERIC-constant" class="">NUMERIC =
255
- <div class="docstring">
256
- <div class="discussion">
257
- <p class="note private">
258
- <strong>This constant is part of a private API.</strong>
259
- You should avoid using this constant if possible, as it may be removed or be changed in the future.
260
- </p>
261
-
262
- <p>Regular expression used to recognise a numeric string with or without a
263
- decimal point.</p>
264
1045
 
265
1046
 
266
- </div>
267
- </div>
268
- <div class="tags">
269
-
270
-
271
- </div>
272
- </dt>
273
- <dd><pre class="code"><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>[-+]?\d*(?&lt;decimal&gt;\.?)\d*</span><span class='tstring_end'>&#39;</span></span></pre></dd>
274
-
275
- </dl>
276
-
277
-
278
-
279
-
280
- <h2>Instance Attribute Summary <small><a href="#" class="summary_toggle">collapse</a></small></h2>
281
- <ul class="summary">
282
-
283
- <li class="public ">
284
- <span class="summary_signature">
285
-
286
- <a href="#ins-instance_method" title="#ins (instance method)">#<strong>ins</strong> &#x21d2; Array&lt;Matchers::Matcher&gt; </a>
287
-
288
-
289
-
290
- </span>
291
-
292
-
293
-
294
-
295
- <span class="note title readonly">readonly</span>
296
-
297
-
298
-
299
-
300
-
301
-
302
- <span class="private note title">private</span>
303
-
304
-
305
- <span class="summary_desc"><div class='inline'>
306
- <p>Matchers for the input columns.</p>
307
- </div></span>
308
-
309
- </li>
310
-
311
-
312
- <li class="public ">
313
- <span class="summary_signature">
314
-
315
- <a href="#outs-instance_method" title="#outs (instance method)">#<strong>outs</strong> &#x21d2; Array&lt;Matchers::Matcher&gt; </a>
316
-
317
-
318
-
319
- </span>
320
-
321
-
322
-
323
-
324
- <span class="note title readonly">readonly</span>
325
-
326
-
327
-
328
-
329
-
330
-
331
- <span class="private note title">private</span>
332
-
333
-
334
- <span class="summary_desc"><div class='inline'>
335
- <p>Matchers for the output columns.</p>
336
- </div></span>
337
-
338
- </li>
339
-
340
-
341
- </ul>
342
-
343
-
344
-
345
-
346
-
347
- <h2>
348
- Class Method Summary
349
- <small><a href="#" class="summary_toggle">collapse</a></small>
350
- </h2>
351
-
352
- <ul class="summary">
353
-
354
- <li class="public ">
355
- <span class="summary_signature">
356
-
357
- <a href="#compare%3F-class_method" title="compare? (class method)">.<strong>compare?</strong>(lhs:, compare:, rhs:) &#x21d2; nil, Boolean </a>
358
-
359
-
360
-
361
- </span>
362
-
363
-
364
-
365
-
366
-
367
-
368
- <span class="private note title">private</span>
369
-
370
-
371
- <span class="summary_desc"><div class='inline'>
372
- <p>Compare one object with another if they both respond to the compare method.</p>
373
- </div></span>
374
-
375
- </li>
376
-
377
-
378
- <li class="public ">
379
- <span class="summary_signature">
380
-
381
- <a href="#normalize_operator-class_method" title="normalize_operator (class method)">.<strong>normalize_operator</strong>(operator) &#x21d2; String </a>
382
-
383
-
384
-
385
- </span>
386
-
387
-
388
-
389
-
390
-
391
-
392
- <span class="private note title">private</span>
393
-
394
-
395
- <span class="summary_desc"><div class='inline'>
396
- <p>Normalize the operators which are a variation on equals/assignment.</p>
397
- </div></span>
398
-
399
- </li>
400
-
401
-
402
- <li class="public ">
403
- <span class="summary_signature">
404
-
405
- <a href="#numeric-class_method" title="numeric (class method)">.<strong>numeric</strong>(value) &#x21d2; nil, ... </a>
406
-
407
-
408
-
409
- </span>
410
-
411
-
412
-
413
-
414
-
415
-
416
- <span class="private note title">private</span>
417
-
418
-
419
- <span class="summary_desc"><div class='inline'>
420
- <p>Validate a numeric value and convert it to an Integer or BigDecimal if a
421
- valid numeric string.</p>
422
- </div></span>
423
-
424
- </li>
425
-
426
-
427
- <li class="public ">
428
- <span class="summary_signature">
429
-
430
- <a href="#parse-class_method" title="parse (class method)">.<strong>parse</strong>(columns:, matchers:, row:) &#x21d2; Array&lt;(Array, ScanRow)&gt; </a>
431
-
432
-
433
-
434
- </span>
435
-
436
-
437
-
438
-
439
-
440
-
441
- <span class="private note title">private</span>
442
-
443
-
444
- <span class="summary_desc"><div class='inline'>
445
- <p>Parse the supplied input columns for the row supplied using an array of
446
- matchers.</p>
447
- </div></span>
448
-
449
- </li>
450
-
451
-
452
- <li class="public ">
453
- <span class="summary_signature">
454
-
455
- <a href="#regexp-class_method" title="regexp (class method)">.<strong>regexp</strong>(value) &#x21d2; Regexp </a>
456
-
457
-
458
-
459
- </span>
460
-
461
-
462
-
463
-
464
-
465
-
466
- <span class="private note title">private</span>
467
-
468
-
469
- <span class="summary_desc"><div class='inline'>
470
- <p>All regular expressions used for matching are anchored inside their own
471
- non-capturing group.</p>
472
- </div></span>
473
-
474
- </li>
475
-
476
-
477
- <li class="public ">
478
- <span class="summary_signature">
479
-
480
- <a href="#to_numeric-class_method" title="to_numeric (class method)">.<strong>to_numeric</strong>(value) &#x21d2; nil, ... </a>
481
-
482
-
483
-
484
- </span>
485
-
486
-
487
-
488
-
489
-
490
-
491
- <span class="private note title">private</span>
492
-
493
-
494
- <span class="summary_desc"><div class='inline'>
495
- <p>Convert a numeric string into an Integer or BigDecimal, otherwise return
496
- nil.</p>
497
- </div></span>
498
-
499
- </li>
500
-
501
-
502
- </ul>
503
-
504
- <h2>
505
- Instance Method Summary
506
- <small><a href="#" class="summary_toggle">collapse</a></small>
507
- </h2>
508
-
509
- <ul class="summary">
510
-
511
- <li class="public ">
512
- <span class="summary_signature">
513
-
514
- <a href="#initialize-instance_method" title="#initialize (instance method)">#<strong>initialize</strong>(options) &#x21d2; Matchers </a>
515
-
516
-
517
-
518
- </span>
519
-
520
-
521
- <span class="note title constructor">constructor</span>
522
-
523
-
524
-
525
-
526
-
527
- <span class="private note title">private</span>
528
-
529
-
530
- <span class="summary_desc"><div class='inline'>
531
- <p>A new instance of Matchers.</p>
532
- </div></span>
533
-
534
- </li>
535
-
536
-
537
- <li class="public ">
538
- <span class="summary_signature">
539
-
540
- <a href="#parse_ins-instance_method" title="#parse_ins (instance method)">#<strong>parse_ins</strong>(columns:, row:) &#x21d2; Array&lt;(Array, ScanRow)&gt; </a>
541
-
542
-
543
-
544
- </span>
545
-
546
-
547
-
548
-
549
-
550
-
551
- <span class="private note title">private</span>
552
-
553
-
554
- <span class="summary_desc"><div class='inline'>
555
- <p>Parse the row&#39;s input columns using the input matchers.</p>
556
- </div></span>
557
-
558
- </li>
559
-
560
-
561
- <li class="public ">
562
- <span class="summary_signature">
563
-
564
- <a href="#parse_outs-instance_method" title="#parse_outs (instance method)">#<strong>parse_outs</strong>(columns:, row:) &#x21d2; Array&lt;(Array, ScanRow)&gt; </a>
565
-
566
-
567
-
568
- </span>
569
-
570
-
571
-
572
-
573
-
574
-
575
- <span class="private note title">private</span>
576
-
577
-
578
- <span class="summary_desc"><div class='inline'>
579
- <p>Parse the row&#39;s output columns using the output matchers.</p>
580
- </div></span>
581
-
582
- </li>
583
-
584
-
585
- </ul>
586
-
587
-
588
- <div id="constructor_details" class="method_details_list">
589
- <h2>Constructor Details</h2>
590
-
591
- <div class="method_details first">
592
- <h3 class="signature first" id="initialize-instance_method">
593
-
594
- #<strong>initialize</strong>(options) &#x21d2; <tt><span class='object_link'><a href="" title="CSVDecision::Matchers (class)">Matchers</a></span></tt>
595
-
596
-
597
-
598
-
599
-
600
- </h3><div class="docstring">
601
- <div class="discussion">
602
- <p class="note private">
603
- <strong>This method is part of a private API.</strong>
604
- You should avoid using this method if possible, as it may be removed or be changed in the future.
605
- </p>
606
-
607
- <p>Returns a new instance of Matchers</p>
1047
+ </li>
608
1048
 
1049
+ </ul>
609
1050
 
610
- </div>
611
- </div>
612
- <div class="tags">
613
- <p class="tag_title">Parameters:</p>
614
- <ul class="param">
615
-
616
- <li>
617
-
618
- <span class='name'>options</span>
619
-
620
-
621
- <span class='type'>(<tt>Hash{<span class='object_link'><a href="Matchers/Symbol.html" title="CSVDecision::Matchers::Symbol (class)">Symbol</a></span>=&gt;Object}</tt>)</span>
622
-
623
-
624
-
625
- &mdash;
626
- <div class='inline'>
627
- <p>Options hash controlling how the table is parsed and interpreted.</p>
628
- </div>
629
-
630
- </li>
631
-
632
- </ul>
633
-
634
-
635
- </div><table class="source_code">
636
- <tr>
637
- <td>
638
- <pre class="lines">
1051
+ </div>
1052
+ <table class="source_code">
1053
+ <tr>
1054
+ <td>
1055
+ <pre class="lines">
639
1056
 
640
1057
 
641
- 167
642
- 168
643
- 169
644
- 170
645
- 171</pre>
646
- </td>
647
- <td>
648
- <pre class="code"><span class="info file"># File 'lib/csv_decision/matchers.rb', line 167</span>
1058
+ 95
1059
+ 96
1060
+ 97</pre>
1061
+ </td>
1062
+ <td>
1063
+ <pre class="code"><span class="info file"># File 'lib/csv_decision2/matchers.rb', line 95</span>
649
1064
 
650
- <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
651
- <span class='id identifier rubyid_matchers'>matchers</span> <span class='op'>=</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:matchers</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_collect'>collect</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_klass'>klass</span><span class='op'>|</span> <span class='id identifier rubyid_klass'>klass</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span> <span class='rbrace'>}</span>
652
- <span class='ivar'>@ins</span> <span class='op'>=</span> <span class='id identifier rubyid_matchers'>matchers</span><span class='period'>.</span><span class='id identifier rubyid_select'>select</span><span class='lparen'>(</span><span class='op'>&amp;</span><span class='symbol'>:ins?</span><span class='rparen'>)</span>
653
- <span class='ivar'>@outs</span> <span class='op'>=</span> <span class='id identifier rubyid_matchers'>matchers</span><span class='period'>.</span><span class='id identifier rubyid_select'>select</span><span class='lparen'>(</span><span class='op'>&amp;</span><span class='symbol'>:outs?</span><span class='rparen'>)</span>
1065
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_normalize_operator'>normalize_operator</span><span class='lparen'>(</span><span class='id identifier rubyid_operator'>operator</span><span class='rparen'>)</span>
1066
+ <span class='const'><span class='object_link'><a href="#EQUALS_RE-constant" title="CSVDecision2::Matchers::EQUALS_RE (constant)">EQUALS_RE</a></span></span><span class='period'>.</span><span class='id identifier rubyid_match?'>match?</span><span class='lparen'>(</span><span class='id identifier rubyid_operator'>operator</span><span class='rparen'>)</span> <span class='op'>?</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>==</span><span class='tstring_end'>&#39;</span></span> <span class='op'>:</span> <span class='id identifier rubyid_operator'>operator</span>
654
1067
  <span class='kw'>end</span></pre>
655
- </td>
656
- </tr>
657
- </table>
658
- </div>
659
-
660
- </div>
661
-
662
- <div id="instance_attr_details" class="attr_details">
663
- <h2>Instance Attribute Details</h2>
664
-
665
-
666
- <span id=""></span>
667
- <div class="method_details first">
668
- <h3 class="signature first" id="ins-instance_method">
669
-
670
- #<strong>ins</strong> &#x21d2; <tt>Array&lt;<span class='object_link'><a href="Matchers/Matcher.html" title="CSVDecision::Matchers::Matcher (class)">Matchers::Matcher</a></span>&gt;</tt> <span class="extras">(readonly)</span>
671
-
672
-
673
-
674
-
675
-
676
- </h3><div class="docstring">
677
- <div class="discussion">
678
- <p class="note private">
679
- <strong>This method is part of a private API.</strong>
680
- You should avoid using this method if possible, as it may be removed or be changed in the future.
681
- </p>
682
-
683
- <p>Returns Matchers for the input columns.</p>
684
-
685
-
686
- </div>
687
- </div>
688
- <div class="tags">
689
-
690
- <p class="tag_title">Returns:</p>
691
- <ul class="return">
692
-
693
- <li>
694
-
695
-
696
- <span class='type'>(<tt>Array&lt;<span class='object_link'><a href="Matchers/Matcher.html" title="CSVDecision::Matchers::Matcher (class)">Matchers::Matcher</a></span>&gt;</tt>)</span>
697
-
698
-
699
-
700
- &mdash;
701
- <div class='inline'>
702
- <p>Matchers for the input columns.</p>
703
- </div>
704
-
705
- </li>
706
-
707
- </ul>
708
-
709
- </div><table class="source_code">
710
- <tr>
711
- <td>
712
- <pre class="lines">
1068
+ </td>
1069
+ </tr>
1070
+ </table>
1071
+ </div>
713
1072
 
1073
+ <div class="method_details ">
1074
+ <h3 class="signature " id="numeric-class_method">
714
1075
 
715
- 161
716
- 162
717
- 163</pre>
718
- </td>
719
- <td>
720
- <pre class="code"><span class="info file"># File 'lib/csv_decision/matchers.rb', line 161</span>
1076
+ .<strong>numeric</strong>(value) &#x21d2; <tt>nil</tt>, ...
721
1077
 
722
- <span class='kw'>def</span> <span class='id identifier rubyid_ins'>ins</span>
723
- <span class='ivar'>@ins</span>
724
- <span class='kw'>end</span></pre>
725
- </td>
726
- </tr>
727
- </table>
728
- </div>
729
-
730
-
731
- <span id=""></span>
732
- <div class="method_details ">
733
- <h3 class="signature " id="outs-instance_method">
734
-
735
- #<strong>outs</strong> &#x21d2; <tt>Array&lt;<span class='object_link'><a href="Matchers/Matcher.html" title="CSVDecision::Matchers::Matcher (class)">Matchers::Matcher</a></span>&gt;</tt> <span class="extras">(readonly)</span>
736
-
737
-
738
-
739
-
740
-
741
- </h3><div class="docstring">
742
- <div class="discussion">
743
- <p class="note private">
744
- <strong>This method is part of a private API.</strong>
745
- You should avoid using this method if possible, as it may be removed or be changed in the future.
746
- </p>
747
-
748
- <p>Returns Matchers for the output columns.</p>
749
1078
 
750
1079
 
751
- </div>
752
- </div>
753
- <div class="tags">
754
-
755
- <p class="tag_title">Returns:</p>
756
- <ul class="return">
757
-
758
- <li>
759
-
760
-
761
- <span class='type'>(<tt>Array&lt;<span class='object_link'><a href="Matchers/Matcher.html" title="CSVDecision::Matchers::Matcher (class)">Matchers::Matcher</a></span>&gt;</tt>)</span>
762
-
763
-
764
-
765
- &mdash;
766
- <div class='inline'>
767
- <p>Matchers for the output columns.</p>
768
- </div>
769
-
770
- </li>
771
-
772
- </ul>
773
-
774
- </div><table class="source_code">
775
- <tr>
776
- <td>
777
- <pre class="lines">
778
1080
 
779
1081
 
780
- 164
781
- 165
782
- 166</pre>
783
- </td>
784
- <td>
785
- <pre class="code"><span class="info file"># File 'lib/csv_decision/matchers.rb', line 164</span>
1082
+ </h3>
1083
+ <div class="docstring">
1084
+ <div class="discussion">
1085
+ <p class="note private">
1086
+ <strong>This method is part of a private API.</strong>
1087
+ You should avoid using this method if possible, as it may be removed or be changed in the future.
1088
+ </p>
786
1089
 
787
- <span class='kw'>def</span> <span class='id identifier rubyid_outs'>outs</span>
788
- <span class='ivar'>@outs</span>
789
- <span class='kw'>end</span></pre>
790
- </td>
791
- </tr>
792
- </table>
793
- </div>
794
-
795
- </div>
1090
+ <p>Validate a numeric value and convert it to an Integer or BigDecimal if a
1091
+ valid numeric string.</p>
796
1092
 
797
1093
 
798
- <div id="class_method_details" class="method_details_list">
799
- <h2>Class Method Details</h2>
1094
+ </div>
1095
+ </div>
1096
+ <div class="tags">
1097
+ <p class="tag_title">Parameters:</p>
1098
+ <ul class="param">
800
1099
 
801
-
802
- <div class="method_details first">
803
- <h3 class="signature first" id="compare?-class_method">
804
-
805
- .<strong>compare?</strong>(lhs:, compare:, rhs:) &#x21d2; <tt>nil</tt>, <tt>Boolean</tt>
806
-
1100
+ <li>
807
1101
 
808
-
1102
+ <span class='name'>value</span>
809
1103
 
810
-
811
- </h3><div class="docstring">
812
- <div class="discussion">
813
- <p class="note private">
814
- <strong>This method is part of a private API.</strong>
815
- You should avoid using this method if possible, as it may be removed or be changed in the future.
816
- </p>
817
1104
 
818
- <p>Compare one object with another if they both respond to the compare method.</p>
1105
+ <span class='type'>(<tt>nil</tt>, <tt>String</tt>, <tt>Integer</tt>, <tt>BigDecimal</tt>)</span>
819
1106
 
820
1107
 
821
- </div>
822
- </div>
823
- <div class="tags">
824
- <p class="tag_title">Parameters:</p>
825
- <ul class="param">
826
-
827
- <li>
828
-
829
- <span class='name'>lhs</span>
830
-
831
-
832
- <span class='type'>(<tt>Object</tt>)</span>
833
-
834
-
835
-
836
- </li>
837
-
838
- <li>
839
-
840
- <span class='name'>compare</span>
841
-
842
-
843
- <span class='type'>(<tt>Object</tt>)</span>
844
-
845
-
846
-
847
- </li>
848
-
849
- <li>
850
-
851
- <span class='name'>rhs</span>
852
-
853
-
854
- <span class='type'>(<tt>Object</tt>)</span>
855
-
856
-
857
-
858
- </li>
859
-
860
- </ul>
861
-
862
- <p class="tag_title">Returns:</p>
863
- <ul class="return">
864
-
865
- <li>
866
-
867
-
868
- <span class='type'>(<tt>nil</tt>, <tt>Boolean</tt>)</span>
869
-
870
-
871
-
872
- </li>
873
-
874
- </ul>
875
-
876
- </div><table class="source_code">
877
- <tr>
878
- <td>
879
- <pre class="lines">
880
1108
 
1109
+ </li>
881
1110
 
882
- 133
883
- 134
884
- 135
885
- 136
886
- 137
887
- 138
888
- 139</pre>
889
- </td>
890
- <td>
891
- <pre class="code"><span class="info file"># File 'lib/csv_decision/matchers.rb', line 133</span>
1111
+ </ul>
892
1112
 
893
- <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_compare?'>compare?</span><span class='lparen'>(</span><span class='label'>lhs:</span><span class='comma'>,</span> <span class='label'>compare:</span><span class='comma'>,</span> <span class='label'>rhs:</span><span class='rparen'>)</span>
894
- <span class='comment'># Is the rhs the same class or a superclass of lhs, and does rhs respond to the
895
- </span> <span class='comment'># compare method?
896
- </span> <span class='kw'>return</span> <span class='id identifier rubyid_lhs'>lhs</span><span class='period'>.</span><span class='id identifier rubyid_send'>send</span><span class='lparen'>(</span><span class='id identifier rubyid_compare'>compare</span><span class='comma'>,</span> <span class='id identifier rubyid_rhs'>rhs</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_lhs'>lhs</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='id identifier rubyid_rhs'>rhs</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='rparen'>)</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_rhs'>rhs</span><span class='period'>.</span><span class='id identifier rubyid_respond_to?'>respond_to?</span><span class='lparen'>(</span><span class='id identifier rubyid_compare'>compare</span><span class='rparen'>)</span>
1113
+ <p class="tag_title">Returns:</p>
1114
+ <ul class="return">
897
1115
 
898
- <span class='kw'>nil</span>
899
- <span class='kw'>end</span></pre>
900
- </td>
901
- </tr>
902
- </table>
903
- </div>
904
-
905
- <div class="method_details ">
906
- <h3 class="signature " id="normalize_operator-class_method">
907
-
908
- .<strong>normalize_operator</strong>(operator) &#x21d2; <tt>String</tt>
909
-
910
-
911
-
912
-
913
-
914
- </h3><div class="docstring">
915
- <div class="discussion">
916
- <p class="note private">
917
- <strong>This method is part of a private API.</strong>
918
- You should avoid using this method if possible, as it may be removed or be changed in the future.
919
- </p>
920
-
921
- <p>Normalize the operators which are a variation on equals/assignment.</p>
1116
+ <li>
922
1117
 
923
1118
 
924
- </div>
925
- </div>
926
- <div class="tags">
927
- <p class="tag_title">Parameters:</p>
928
- <ul class="param">
929
-
930
- <li>
931
-
932
- <span class='name'>operator</span>
933
-
934
-
935
- <span class='type'>(<tt>String</tt>)</span>
936
-
937
-
938
-
939
- </li>
940
-
941
- </ul>
942
-
943
- <p class="tag_title">Returns:</p>
944
- <ul class="return">
945
-
946
- <li>
947
-
948
-
949
- <span class='type'>(<tt>String</tt>)</span>
950
-
951
-
952
-
953
- </li>
954
-
955
- </ul>
956
-
957
- </div><table class="source_code">
958
- <tr>
959
- <td>
960
- <pre class="lines">
1119
+ <span class='type'>(<tt>nil</tt>, <tt>Integer</tt>, <tt>BigDecimal</tt>)</span>
961
1120
 
962
1121
 
963
- 95
964
- 96
965
- 97</pre>
966
- </td>
967
- <td>
968
- <pre class="code"><span class="info file"># File 'lib/csv_decision/matchers.rb', line 95</span>
969
1122
 
970
- <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_normalize_operator'>normalize_operator</span><span class='lparen'>(</span><span class='id identifier rubyid_operator'>operator</span><span class='rparen'>)</span>
971
- <span class='const'><span class='object_link'><a href="#EQUALS_RE-constant" title="CSVDecision::Matchers::EQUALS_RE (constant)">EQUALS_RE</a></span></span><span class='period'>.</span><span class='id identifier rubyid_match?'>match?</span><span class='lparen'>(</span><span class='id identifier rubyid_operator'>operator</span><span class='rparen'>)</span> <span class='op'>?</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>==</span><span class='tstring_end'>&#39;</span></span> <span class='op'>:</span> <span class='id identifier rubyid_operator'>operator</span>
972
- <span class='kw'>end</span></pre>
973
- </td>
974
- </tr>
975
- </table>
976
- </div>
977
-
978
- <div class="method_details ">
979
- <h3 class="signature " id="numeric-class_method">
980
-
981
- .<strong>numeric</strong>(value) &#x21d2; <tt>nil</tt>, ...
982
-
983
-
984
-
985
-
986
-
987
- </h3><div class="docstring">
988
- <div class="discussion">
989
- <p class="note private">
990
- <strong>This method is part of a private API.</strong>
991
- You should avoid using this method if possible, as it may be removed or be changed in the future.
992
- </p>
993
-
994
- <p>Validate a numeric value and convert it to an Integer or BigDecimal if a
995
- valid numeric string.</p>
1123
+ </li>
996
1124
 
1125
+ </ul>
997
1126
 
998
- </div>
999
- </div>
1000
- <div class="tags">
1001
- <p class="tag_title">Parameters:</p>
1002
- <ul class="param">
1003
-
1004
- <li>
1005
-
1006
- <span class='name'>value</span>
1007
-
1008
-
1009
- <span class='type'>(<tt>nil</tt>, <tt>String</tt>, <tt>Integer</tt>, <tt>BigDecimal</tt>)</span>
1010
-
1011
-
1012
-
1013
- </li>
1014
-
1015
- </ul>
1016
-
1017
- <p class="tag_title">Returns:</p>
1018
- <ul class="return">
1019
-
1020
- <li>
1021
-
1022
-
1023
- <span class='type'>(<tt>nil</tt>, <tt>Integer</tt>, <tt>BigDecimal</tt>)</span>
1024
-
1025
-
1026
-
1027
- </li>
1028
-
1029
- </ul>
1030
-
1031
- </div><table class="source_code">
1032
- <tr>
1033
- <td>
1034
- <pre class="lines">
1127
+ </div>
1128
+ <table class="source_code">
1129
+ <tr>
1130
+ <td>
1131
+ <pre class="lines">
1035
1132
 
1036
1133
 
1037
1134
  109
@@ -1040,9 +1137,9 @@ valid numeric string.</p>
1040
1137
  112
1041
1138
  113
1042
1139
  114</pre>
1043
- </td>
1044
- <td>
1045
- <pre class="code"><span class="info file"># File 'lib/csv_decision/matchers.rb', line 109</span>
1140
+ </td>
1141
+ <td>
1142
+ <pre class="code"><span class="info file"># File 'lib/csv_decision2/matchers.rb', line 109</span>
1046
1143
 
1047
1144
  <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_numeric'>numeric</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
1048
1145
  <span class='kw'>return</span> <span class='id identifier rubyid_value'>value</span> <span class='kw'>if</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Integer</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>BigDecimal</span><span class='rparen'>)</span>
@@ -1050,105 +1147,111 @@ valid numeric string.</p>
1050
1147
 
1051
1148
  <span class='id identifier rubyid_to_numeric'>to_numeric</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
1052
1149
  <span class='kw'>end</span></pre>
1053
- </td>
1054
- </tr>
1055
- </table>
1056
- </div>
1057
-
1058
- <div class="method_details ">
1059
- <h3 class="signature " id="parse-class_method">
1060
-
1061
- .<strong>parse</strong>(columns:, matchers:, row:) &#x21d2; <tt>Array&lt;(Array, <span class='object_link'><a href="ScanRow.html" title="CSVDecision::ScanRow (class)">ScanRow</a></span>)&gt;</tt>
1062
-
1063
-
1064
-
1065
-
1066
-
1067
- </h3><div class="docstring">
1068
- <div class="discussion">
1069
- <p class="note private">
1070
- <strong>This method is part of a private API.</strong>
1071
- You should avoid using this method if possible, as it may be removed or be changed in the future.
1072
- </p>
1073
-
1074
- <p>Parse the supplied input columns for the row supplied using an array of
1075
- matchers.</p>
1150
+ </td>
1151
+ </tr>
1152
+ </table>
1153
+ </div>
1154
+
1155
+ <div class="method_details ">
1156
+ <h3 class="signature " id="parse-class_method">
1157
+
1158
+ .<strong>parse</strong>(columns:, matchers:, row:) &#x21d2; <tt>Array&lt;(Array, <span
1159
+ class='object_link'><a href="ScanRow.html"
1160
+ title="CSVDecision2::ScanRow (class)">ScanRow</a></span>)&gt;</tt>
1161
+
1162
+
1163
+
1164
+
1165
+
1166
+ </h3>
1167
+ <div class="docstring">
1168
+ <div class="discussion">
1169
+ <p class="note private">
1170
+ <strong>This method is part of a private API.</strong>
1171
+ You should avoid using this method if possible, as it may be removed or be changed in the future.
1172
+ </p>
1173
+
1174
+ <p>Parse the supplied input columns for the row supplied using an array of
1175
+ matchers.</p>
1176
+
1177
+
1178
+ </div>
1179
+ </div>
1180
+ <div class="tags">
1181
+ <p class="tag_title">Parameters:</p>
1182
+ <ul class="param">
1183
+
1184
+ <li>
1185
+
1186
+ <span class='name'>columns</span>
1187
+
1188
+
1189
+ <span class='type'>(<tt>Hash{Integer=&gt;Columns::Entry}</tt>)</span>
1076
1190
 
1077
1191
 
1078
- </div>
1079
- </div>
1080
- <div class="tags">
1081
- <p class="tag_title">Parameters:</p>
1082
- <ul class="param">
1083
-
1084
- <li>
1085
-
1086
- <span class='name'>columns</span>
1087
-
1088
-
1089
- <span class='type'>(<tt>Hash{Integer=&gt;Columns::Entry}</tt>)</span>
1090
-
1091
-
1092
-
1093
- &mdash;
1094
- <div class='inline'>
1095
- <p>Input columns hash.</p>
1096
- </div>
1097
-
1098
- </li>
1099
-
1100
- <li>
1101
-
1102
- <span class='name'>matchers</span>
1103
-
1104
-
1105
- <span class='type'>(<tt>Array&lt;<span class='object_link'><a href="Matchers/Matcher.html" title="CSVDecision::Matchers::Matcher (class)">Matchers::Matcher</a></span>&gt;</tt>)</span>
1106
-
1107
-
1108
-
1109
- </li>
1110
-
1111
- <li>
1112
-
1113
- <span class='name'>row</span>
1114
-
1115
-
1116
- <span class='type'>(<tt>Array&lt;String&gt;</tt>)</span>
1117
-
1118
-
1119
-
1120
- &mdash;
1121
- <div class='inline'>
1122
- <p>Data row being parsed.</p>
1123
- </div>
1124
-
1125
- </li>
1126
-
1127
- </ul>
1128
-
1129
- <p class="tag_title">Returns:</p>
1130
- <ul class="return">
1131
-
1132
- <li>
1133
-
1134
-
1135
- <span class='type'>(<tt>Array&lt;(Array, <span class='object_link'><a href="ScanRow.html" title="CSVDecision::ScanRow (class)">ScanRow</a></span>)&gt;</tt>)</span>
1136
-
1137
-
1138
-
1139
- &mdash;
1140
- <div class='inline'>
1141
- <p>Used to scan a table row against an input hash for matches.</p>
1142
- </div>
1143
-
1144
- </li>
1145
-
1146
- </ul>
1147
-
1148
- </div><table class="source_code">
1149
- <tr>
1150
- <td>
1151
- <pre class="lines">
1192
+
1193
+ &mdash;
1194
+ <div class='inline'>
1195
+ <p>Input columns hash.</p>
1196
+ </div>
1197
+
1198
+ </li>
1199
+
1200
+ <li>
1201
+
1202
+ <span class='name'>matchers</span>
1203
+
1204
+
1205
+ <span class='type'>(<tt>Array&lt;<span class='object_link'><a href="Matchers/Matcher.html"
1206
+ title="CSVDecision2::Matchers::Matcher (class)">Matchers::Matcher</a></span>&gt;</tt>)</span>
1207
+
1208
+
1209
+
1210
+ </li>
1211
+
1212
+ <li>
1213
+
1214
+ <span class='name'>row</span>
1215
+
1216
+
1217
+ <span class='type'>(<tt>Array&lt;String&gt;</tt>)</span>
1218
+
1219
+
1220
+
1221
+ &mdash;
1222
+ <div class='inline'>
1223
+ <p>Data row being parsed.</p>
1224
+ </div>
1225
+
1226
+ </li>
1227
+
1228
+ </ul>
1229
+
1230
+ <p class="tag_title">Returns:</p>
1231
+ <ul class="return">
1232
+
1233
+ <li>
1234
+
1235
+
1236
+ <span class='type'>(<tt>Array&lt;(Array, <span class='object_link'><a href="ScanRow.html"
1237
+ title="CSVDecision2::ScanRow (class)">ScanRow</a></span>)&gt;</tt>)</span>
1238
+
1239
+
1240
+
1241
+ &mdash;
1242
+ <div class='inline'>
1243
+ <p>Used to scan a table row against an input hash for matches.</p>
1244
+ </div>
1245
+
1246
+ </li>
1247
+
1248
+ </ul>
1249
+
1250
+ </div>
1251
+ <table class="source_code">
1252
+ <tr>
1253
+ <td>
1254
+ <pre class="lines">
1152
1255
 
1153
1256
 
1154
1257
  147
@@ -1163,14 +1266,14 @@ matchers.</p>
1163
1266
  156
1164
1267
  157
1165
1268
  158</pre>
1166
- </td>
1167
- <td>
1168
- <pre class="code"><span class="info file"># File 'lib/csv_decision/matchers.rb', line 147</span>
1269
+ </td>
1270
+ <td>
1271
+ <pre class="code"><span class="info file"># File 'lib/csv_decision2/matchers.rb', line 147</span>
1169
1272
 
1170
1273
  <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_parse'>parse</span><span class='lparen'>(</span><span class='label'>columns:</span><span class='comma'>,</span> <span class='label'>matchers:</span><span class='comma'>,</span> <span class='label'>row:</span><span class='rparen'>)</span>
1171
1274
  <span class='comment'># Build an array of column indexes requiring simple constant matches,
1172
1275
  </span> <span class='comment'># and a second array of columns requiring special matchers.
1173
- </span> <span class='id identifier rubyid_scan_row'>scan_row</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="ScanRow.html" title="CSVDecision::ScanRow (class)">ScanRow</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="ScanRow.html#initialize-instance_method" title="CSVDecision::ScanRow#initialize (method)">new</a></span></span>
1276
+ </span> <span class='id identifier rubyid_scan_row'>scan_row</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="ScanRow.html" title="CSVDecision2::ScanRow (class)">ScanRow</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="ScanRow.html#initialize-instance_method" title="CSVDecision2::ScanRow#initialize (method)">new</a></span></span>
1174
1277
 
1175
1278
  <span class='comment'># Scan the columns in the data row, and build an object to scan this row against
1176
1279
  </span> <span class='comment'># an input hash.
@@ -1179,152 +1282,156 @@ matchers.</p>
1179
1282
 
1180
1283
  <span class='lbracket'>[</span><span class='id identifier rubyid_row'>row</span><span class='comma'>,</span> <span class='id identifier rubyid_scan_row'>scan_row</span><span class='rbracket'>]</span>
1181
1284
  <span class='kw'>end</span></pre>
1182
- </td>
1183
- </tr>
1184
- </table>
1185
- </div>
1186
-
1187
- <div class="method_details ">
1188
- <h3 class="signature " id="regexp-class_method">
1189
-
1190
- .<strong>regexp</strong>(value) &#x21d2; <tt>Regexp</tt>
1191
-
1192
-
1193
-
1194
-
1195
-
1196
- </h3><div class="docstring">
1197
- <div class="discussion">
1198
- <p class="note private">
1199
- <strong>This method is part of a private API.</strong>
1200
- You should avoid using this method if possible, as it may be removed or be changed in the future.
1201
- </p>
1202
-
1203
- <p>All regular expressions used for matching are anchored inside their own
1204
- non-capturing group.</p>
1285
+ </td>
1286
+ </tr>
1287
+ </table>
1288
+ </div>
1289
+
1290
+ <div class="method_details ">
1291
+ <h3 class="signature " id="regexp-class_method">
1292
+
1293
+ .<strong>regexp</strong>(value) &#x21d2; <tt>Regexp</tt>
1294
+
1205
1295
 
1206
1296
 
1207
- </div>
1208
- </div>
1209
- <div class="tags">
1210
- <p class="tag_title">Parameters:</p>
1211
- <ul class="param">
1212
-
1213
- <li>
1214
-
1215
- <span class='name'>value</span>
1216
-
1217
-
1218
- <span class='type'>(<tt>String</tt>)</span>
1219
-
1220
-
1221
-
1222
- &mdash;
1223
- <div class='inline'>
1224
- <p>String used to form an anchored regular expression.</p>
1225
- </div>
1226
-
1227
- </li>
1228
-
1229
- </ul>
1230
-
1231
- <p class="tag_title">Returns:</p>
1232
- <ul class="return">
1233
-
1234
- <li>
1235
-
1236
-
1237
- <span class='type'>(<tt>Regexp</tt>)</span>
1238
-
1239
-
1240
-
1241
- &mdash;
1242
- <div class='inline'>
1243
- <p>Anchored, frozen regular expression.</p>
1244
- </div>
1245
-
1246
- </li>
1247
-
1248
- </ul>
1249
-
1250
- </div><table class="source_code">
1251
- <tr>
1252
- <td>
1253
- <pre class="lines">
1297
+
1298
+
1299
+ </h3>
1300
+ <div class="docstring">
1301
+ <div class="discussion">
1302
+ <p class="note private">
1303
+ <strong>This method is part of a private API.</strong>
1304
+ You should avoid using this method if possible, as it may be removed or be changed in the future.
1305
+ </p>
1306
+
1307
+ <p>All regular expressions used for matching are anchored inside their own
1308
+ non-capturing group.</p>
1309
+
1310
+
1311
+ </div>
1312
+ </div>
1313
+ <div class="tags">
1314
+ <p class="tag_title">Parameters:</p>
1315
+ <ul class="param">
1316
+
1317
+ <li>
1318
+
1319
+ <span class='name'>value</span>
1320
+
1321
+
1322
+ <span class='type'>(<tt>String</tt>)</span>
1323
+
1324
+
1325
+
1326
+ &mdash;
1327
+ <div class='inline'>
1328
+ <p>String used to form an anchored regular expression.</p>
1329
+ </div>
1330
+
1331
+ </li>
1332
+
1333
+ </ul>
1334
+
1335
+ <p class="tag_title">Returns:</p>
1336
+ <ul class="return">
1337
+
1338
+ <li>
1339
+
1340
+
1341
+ <span class='type'>(<tt>Regexp</tt>)</span>
1342
+
1343
+
1344
+
1345
+ &mdash;
1346
+ <div class='inline'>
1347
+ <p>Anchored, frozen regular expression.</p>
1348
+ </div>
1349
+
1350
+ </li>
1351
+
1352
+ </ul>
1353
+
1354
+ </div>
1355
+ <table class="source_code">
1356
+ <tr>
1357
+ <td>
1358
+ <pre class="lines">
1254
1359
 
1255
1360
 
1256
1361
  71
1257
1362
  72
1258
1363
  73</pre>
1259
- </td>
1260
- <td>
1261
- <pre class="code"><span class="info file"># File 'lib/csv_decision/matchers.rb', line 71</span>
1364
+ </td>
1365
+ <td>
1366
+ <pre class="code"><span class="info file"># File 'lib/csv_decision2/matchers.rb', line 71</span>
1262
1367
 
1263
1368
  <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_regexp'>regexp</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
1264
1369
  <span class='const'>Regexp</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>\\A(?:</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_value'>value</span><span class='embexpr_end'>}</span><span class='tstring_content'>)\\z</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_freeze'>freeze</span>
1265
1370
  <span class='kw'>end</span></pre>
1266
- </td>
1267
- </tr>
1268
- </table>
1269
- </div>
1270
-
1271
- <div class="method_details ">
1272
- <h3 class="signature " id="to_numeric-class_method">
1273
-
1274
- .<strong>to_numeric</strong>(value) &#x21d2; <tt>nil</tt>, ...
1275
-
1276
-
1277
-
1278
-
1279
-
1280
- </h3><div class="docstring">
1281
- <div class="discussion">
1282
- <p class="note private">
1283
- <strong>This method is part of a private API.</strong>
1284
- You should avoid using this method if possible, as it may be removed or be changed in the future.
1285
- </p>
1286
-
1287
- <p>Convert a numeric string into an Integer or BigDecimal, otherwise return
1288
- nil.</p>
1371
+ </td>
1372
+ </tr>
1373
+ </table>
1374
+ </div>
1289
1375
 
1376
+ <div class="method_details ">
1377
+ <h3 class="signature " id="to_numeric-class_method">
1378
+
1379
+ .<strong>to_numeric</strong>(value) &#x21d2; <tt>nil</tt>, ...
1380
+
1381
+
1382
+
1383
+
1384
+
1385
+ </h3>
1386
+ <div class="docstring">
1387
+ <div class="discussion">
1388
+ <p class="note private">
1389
+ <strong>This method is part of a private API.</strong>
1390
+ You should avoid using this method if possible, as it may be removed or be changed in the future.
1391
+ </p>
1392
+
1393
+ <p>Convert a numeric string into an Integer or BigDecimal, otherwise return
1394
+ nil.</p>
1290
1395
 
1291
- </div>
1292
- </div>
1293
- <div class="tags">
1294
- <p class="tag_title">Parameters:</p>
1295
- <ul class="param">
1296
-
1297
- <li>
1298
-
1299
- <span class='name'>value</span>
1300
-
1301
-
1302
- <span class='type'>(<tt>String</tt>)</span>
1303
-
1304
-
1305
-
1306
- </li>
1307
-
1308
- </ul>
1309
-
1310
- <p class="tag_title">Returns:</p>
1311
- <ul class="return">
1312
-
1313
- <li>
1314
-
1315
-
1316
- <span class='type'>(<tt>nil</tt>, <tt>Integer</tt>, <tt>BigDecimal</tt>)</span>
1317
-
1318
-
1319
-
1320
- </li>
1321
-
1322
- </ul>
1323
-
1324
- </div><table class="source_code">
1325
- <tr>
1326
- <td>
1327
- <pre class="lines">
1396
+
1397
+ </div>
1398
+ </div>
1399
+ <div class="tags">
1400
+ <p class="tag_title">Parameters:</p>
1401
+ <ul class="param">
1402
+
1403
+ <li>
1404
+
1405
+ <span class='name'>value</span>
1406
+
1407
+
1408
+ <span class='type'>(<tt>String</tt>)</span>
1409
+
1410
+
1411
+
1412
+ </li>
1413
+
1414
+ </ul>
1415
+
1416
+ <p class="tag_title">Returns:</p>
1417
+ <ul class="return">
1418
+
1419
+ <li>
1420
+
1421
+
1422
+ <span class='type'>(<tt>nil</tt>, <tt>Integer</tt>, <tt>BigDecimal</tt>)</span>
1423
+
1424
+
1425
+
1426
+ </li>
1427
+
1428
+ </ul>
1429
+
1430
+ </div>
1431
+ <table class="source_code">
1432
+ <tr>
1433
+ <td>
1434
+ <pre class="lines">
1328
1435
 
1329
1436
 
1330
1437
  120
@@ -1333,9 +1440,9 @@ nil.</p>
1333
1440
  123
1334
1441
  124
1335
1442
  125</pre>
1336
- </td>
1337
- <td>
1338
- <pre class="code"><span class="info file"># File 'lib/csv_decision/matchers.rb', line 120</span>
1443
+ </td>
1444
+ <td>
1445
+ <pre class="code"><span class="info file"># File 'lib/csv_decision2/matchers.rb', line 120</span>
1339
1446
 
1340
1447
  <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_to_numeric'>to_numeric</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
1341
1448
  <span class='kw'>return</span> <span class='kw'>unless</span> <span class='lparen'>(</span><span class='id identifier rubyid_match'>match</span> <span class='op'>=</span> <span class='const'>NUMERIC_RE</span><span class='period'>.</span><span class='id identifier rubyid_match'>match</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span><span class='rparen'>)</span>
@@ -1343,225 +1450,234 @@ nil.</p>
1343
1450
  <span class='kw'>return</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span> <span class='kw'>if</span> <span class='id identifier rubyid_match'>match</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>decimal</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_end'>&#39;</span></span>
1344
1451
  <span class='const'>BigDecimal</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_chomp'>chomp</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>.</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span><span class='rparen'>)</span>
1345
1452
  <span class='kw'>end</span></pre>
1346
- </td>
1347
- </tr>
1348
- </table>
1349
- </div>
1350
-
1351
- </div>
1453
+ </td>
1454
+ </tr>
1455
+ </table>
1456
+ </div>
1457
+
1458
+ </div>
1352
1459
 
1353
- <div id="instance_method_details" class="method_details_list">
1354
- <h2>Instance Method Details</h2>
1460
+ <div id="instance_method_details" class="method_details_list">
1461
+ <h2>Instance Method Details</h2>
1355
1462
 
1356
-
1357
- <div class="method_details first">
1358
- <h3 class="signature first" id="parse_ins-instance_method">
1359
-
1360
- #<strong>parse_ins</strong>(columns:, row:) &#x21d2; <tt>Array&lt;(Array, <span class='object_link'><a href="ScanRow.html" title="CSVDecision::ScanRow (class)">ScanRow</a></span>)&gt;</tt>
1361
-
1362
1463
 
1363
-
1464
+ <div class="method_details first">
1465
+ <h3 class="signature first" id="parse_ins-instance_method">
1364
1466
 
1365
-
1366
- </h3><div class="docstring">
1367
- <div class="discussion">
1368
- <p class="note private">
1369
- <strong>This method is part of a private API.</strong>
1370
- You should avoid using this method if possible, as it may be removed or be changed in the future.
1371
- </p>
1467
+ #<strong>parse_ins</strong>(columns:, row:) &#x21d2; <tt>Array&lt;(Array, <span class='object_link'><a
1468
+ href="ScanRow.html" title="CSVDecision2::ScanRow (class)">ScanRow</a></span>)&gt;</tt>
1372
1469
 
1373
- <p>Parse the row&#39;s input columns using the input matchers.</p>
1374
1470
 
1375
1471
 
1376
- </div>
1377
- </div>
1378
- <div class="tags">
1379
- <p class="tag_title">Parameters:</p>
1380
- <ul class="param">
1381
-
1382
- <li>
1383
-
1384
- <span class='name'>columns</span>
1385
-
1386
-
1387
- <span class='type'>(<tt>Hash{Integer=&gt;Columns::Entry}</tt>)</span>
1388
-
1389
-
1390
-
1391
- &mdash;
1392
- <div class='inline'>
1393
- <p>Input columns hash.</p>
1394
- </div>
1395
-
1396
- </li>
1397
-
1398
- <li>
1399
-
1400
- <span class='name'>row</span>
1401
-
1402
-
1403
- <span class='type'>(<tt>Array&lt;String&gt;</tt>)</span>
1404
-
1405
-
1406
-
1407
- &mdash;
1408
- <div class='inline'>
1409
- <p>Data row being parsed.</p>
1410
- </div>
1411
-
1412
- </li>
1413
-
1414
- </ul>
1415
-
1416
- <p class="tag_title">Returns:</p>
1417
- <ul class="return">
1418
-
1419
- <li>
1420
-
1421
-
1422
- <span class='type'>(<tt>Array&lt;(Array, <span class='object_link'><a href="ScanRow.html" title="CSVDecision::ScanRow (class)">ScanRow</a></span>)&gt;</tt>)</span>
1423
-
1424
-
1425
-
1426
- &mdash;
1427
- <div class='inline'>
1428
- <p>Used to scan a table row against an input hash for matches.</p>
1429
- </div>
1430
-
1431
- </li>
1432
-
1433
- </ul>
1434
-
1435
- </div><table class="source_code">
1436
- <tr>
1437
- <td>
1438
- <pre class="lines">
1472
+
1473
+
1474
+ </h3>
1475
+ <div class="docstring">
1476
+ <div class="discussion">
1477
+ <p class="note private">
1478
+ <strong>This method is part of a private API.</strong>
1479
+ You should avoid using this method if possible, as it may be removed or be changed in the future.
1480
+ </p>
1481
+
1482
+ <p>Parse the row&#39;s input columns using the input matchers.</p>
1483
+
1484
+
1485
+ </div>
1486
+ </div>
1487
+ <div class="tags">
1488
+ <p class="tag_title">Parameters:</p>
1489
+ <ul class="param">
1490
+
1491
+ <li>
1492
+
1493
+ <span class='name'>columns</span>
1494
+
1495
+
1496
+ <span class='type'>(<tt>Hash{Integer=&gt;Columns::Entry}</tt>)</span>
1497
+
1498
+
1499
+
1500
+ &mdash;
1501
+ <div class='inline'>
1502
+ <p>Input columns hash.</p>
1503
+ </div>
1504
+
1505
+ </li>
1506
+
1507
+ <li>
1508
+
1509
+ <span class='name'>row</span>
1510
+
1511
+
1512
+ <span class='type'>(<tt>Array&lt;String&gt;</tt>)</span>
1513
+
1514
+
1515
+
1516
+ &mdash;
1517
+ <div class='inline'>
1518
+ <p>Data row being parsed.</p>
1519
+ </div>
1520
+
1521
+ </li>
1522
+
1523
+ </ul>
1524
+
1525
+ <p class="tag_title">Returns:</p>
1526
+ <ul class="return">
1527
+
1528
+ <li>
1529
+
1530
+
1531
+ <span class='type'>(<tt>Array&lt;(Array, <span class='object_link'><a href="ScanRow.html"
1532
+ title="CSVDecision2::ScanRow (class)">ScanRow</a></span>)&gt;</tt>)</span>
1533
+
1534
+
1535
+
1536
+ &mdash;
1537
+ <div class='inline'>
1538
+ <p>Used to scan a table row against an input hash for matches.</p>
1539
+ </div>
1540
+
1541
+ </li>
1542
+
1543
+ </ul>
1544
+
1545
+ </div>
1546
+ <table class="source_code">
1547
+ <tr>
1548
+ <td>
1549
+ <pre class="lines">
1439
1550
 
1440
1551
 
1441
1552
  178
1442
1553
  179
1443
1554
  180</pre>
1444
- </td>
1445
- <td>
1446
- <pre class="code"><span class="info file"># File 'lib/csv_decision/matchers.rb', line 178</span>
1555
+ </td>
1556
+ <td>
1557
+ <pre class="code"><span class="info file"># File 'lib/csv_decision2/matchers.rb', line 178</span>
1447
1558
 
1448
1559
  <span class='kw'>def</span> <span class='id identifier rubyid_parse_ins'>parse_ins</span><span class='lparen'>(</span><span class='label'>columns:</span><span class='comma'>,</span> <span class='label'>row:</span><span class='rparen'>)</span>
1449
- <span class='const'><span class='object_link'><a href="" title="CSVDecision::Matchers (class)">Matchers</a></span></span><span class='period'>.</span><span class='id identifier rubyid_parse'><span class='object_link'><a href="#parse-class_method" title="CSVDecision::Matchers.parse (method)">parse</a></span></span><span class='lparen'>(</span><span class='label'>columns:</span> <span class='id identifier rubyid_columns'>columns</span><span class='comma'>,</span> <span class='label'>matchers:</span> <span class='ivar'>@ins</span><span class='comma'>,</span> <span class='label'>row:</span> <span class='id identifier rubyid_row'>row</span><span class='rparen'>)</span>
1560
+ <span class='const'><span class='object_link'><a href="" title="CSVDecision2::Matchers (class)">Matchers</a></span></span><span class='period'>.</span><span class='id identifier rubyid_parse'><span class='object_link'><a href="#parse-class_method" title="CSVDecision2::Matchers.parse (method)">parse</a></span></span><span class='lparen'>(</span><span class='label'>columns:</span> <span class='id identifier rubyid_columns'>columns</span><span class='comma'>,</span> <span class='label'>matchers:</span> <span class='ivar'>@ins</span><span class='comma'>,</span> <span class='label'>row:</span> <span class='id identifier rubyid_row'>row</span><span class='rparen'>)</span>
1450
1561
  <span class='kw'>end</span></pre>
1451
- </td>
1452
- </tr>
1453
- </table>
1454
- </div>
1455
-
1456
- <div class="method_details ">
1457
- <h3 class="signature " id="parse_outs-instance_method">
1458
-
1459
- #<strong>parse_outs</strong>(columns:, row:) &#x21d2; <tt>Array&lt;(Array, <span class='object_link'><a href="ScanRow.html" title="CSVDecision::ScanRow (class)">ScanRow</a></span>)&gt;</tt>
1460
-
1461
-
1462
-
1463
-
1464
-
1465
- </h3><div class="docstring">
1466
- <div class="discussion">
1467
- <p class="note private">
1468
- <strong>This method is part of a private API.</strong>
1469
- You should avoid using this method if possible, as it may be removed or be changed in the future.
1470
- </p>
1471
-
1472
- <p>Parse the row&#39;s output columns using the output matchers.</p>
1562
+ </td>
1563
+ </tr>
1564
+ </table>
1565
+ </div>
1473
1566
 
1567
+ <div class="method_details ">
1568
+ <h3 class="signature " id="parse_outs-instance_method">
1474
1569
 
1475
- </div>
1476
- </div>
1477
- <div class="tags">
1478
- <p class="tag_title">Parameters:</p>
1479
- <ul class="param">
1480
-
1481
- <li>
1482
-
1483
- <span class='name'>columns</span>
1484
-
1485
-
1486
- <span class='type'>(<tt>Hash{Integer=&gt;Columns::Entry}</tt>)</span>
1487
-
1488
-
1489
-
1490
- &mdash;
1491
- <div class='inline'>
1492
- <p>Input columns hash.</p>
1493
- </div>
1494
-
1495
- </li>
1496
-
1497
- <li>
1498
-
1499
- <span class='name'>row</span>
1500
-
1501
-
1502
- <span class='type'>(<tt>Array&lt;String&gt;</tt>)</span>
1503
-
1504
-
1505
-
1506
- &mdash;
1507
- <div class='inline'>
1508
- <p>Data row being parsed.</p>
1509
- </div>
1510
-
1511
- </li>
1512
-
1513
- </ul>
1514
-
1515
- <p class="tag_title">Returns:</p>
1516
- <ul class="return">
1517
-
1518
- <li>
1519
-
1520
-
1521
- <span class='type'>(<tt>Array&lt;(Array, <span class='object_link'><a href="ScanRow.html" title="CSVDecision::ScanRow (class)">ScanRow</a></span>)&gt;</tt>)</span>
1522
-
1523
-
1524
-
1525
- &mdash;
1526
- <div class='inline'>
1527
- <p>Used to scan a table row against an input hash for matches.</p>
1528
- </div>
1529
-
1530
- </li>
1531
-
1532
- </ul>
1533
-
1534
- </div><table class="source_code">
1535
- <tr>
1536
- <td>
1537
- <pre class="lines">
1570
+ #<strong>parse_outs</strong>(columns:, row:) &#x21d2; <tt>Array&lt;(Array, <span class='object_link'><a
1571
+ href="ScanRow.html" title="CSVDecision2::ScanRow (class)">ScanRow</a></span>)&gt;</tt>
1572
+
1573
+
1574
+
1575
+
1576
+
1577
+ </h3>
1578
+ <div class="docstring">
1579
+ <div class="discussion">
1580
+ <p class="note private">
1581
+ <strong>This method is part of a private API.</strong>
1582
+ You should avoid using this method if possible, as it may be removed or be changed in the future.
1583
+ </p>
1584
+
1585
+ <p>Parse the row&#39;s output columns using the output matchers.</p>
1586
+
1587
+
1588
+ </div>
1589
+ </div>
1590
+ <div class="tags">
1591
+ <p class="tag_title">Parameters:</p>
1592
+ <ul class="param">
1593
+
1594
+ <li>
1595
+
1596
+ <span class='name'>columns</span>
1597
+
1598
+
1599
+ <span class='type'>(<tt>Hash{Integer=&gt;Columns::Entry}</tt>)</span>
1600
+
1601
+
1602
+
1603
+ &mdash;
1604
+ <div class='inline'>
1605
+ <p>Input columns hash.</p>
1606
+ </div>
1607
+
1608
+ </li>
1609
+
1610
+ <li>
1611
+
1612
+ <span class='name'>row</span>
1613
+
1614
+
1615
+ <span class='type'>(<tt>Array&lt;String&gt;</tt>)</span>
1616
+
1617
+
1618
+
1619
+ &mdash;
1620
+ <div class='inline'>
1621
+ <p>Data row being parsed.</p>
1622
+ </div>
1623
+
1624
+ </li>
1625
+
1626
+ </ul>
1627
+
1628
+ <p class="tag_title">Returns:</p>
1629
+ <ul class="return">
1630
+
1631
+ <li>
1632
+
1633
+
1634
+ <span class='type'>(<tt>Array&lt;(Array, <span class='object_link'><a href="ScanRow.html"
1635
+ title="CSVDecision2::ScanRow (class)">ScanRow</a></span>)&gt;</tt>)</span>
1636
+
1637
+
1638
+
1639
+ &mdash;
1640
+ <div class='inline'>
1641
+ <p>Used to scan a table row against an input hash for matches.</p>
1642
+ </div>
1643
+
1644
+ </li>
1645
+
1646
+ </ul>
1647
+
1648
+ </div>
1649
+ <table class="source_code">
1650
+ <tr>
1651
+ <td>
1652
+ <pre class="lines">
1538
1653
 
1539
1654
 
1540
1655
  187
1541
1656
  188
1542
1657
  189</pre>
1543
- </td>
1544
- <td>
1545
- <pre class="code"><span class="info file"># File 'lib/csv_decision/matchers.rb', line 187</span>
1658
+ </td>
1659
+ <td>
1660
+ <pre class="code"><span class="info file"># File 'lib/csv_decision2/matchers.rb', line 187</span>
1546
1661
 
1547
1662
  <span class='kw'>def</span> <span class='id identifier rubyid_parse_outs'>parse_outs</span><span class='lparen'>(</span><span class='label'>columns:</span><span class='comma'>,</span> <span class='label'>row:</span><span class='rparen'>)</span>
1548
- <span class='const'><span class='object_link'><a href="" title="CSVDecision::Matchers (class)">Matchers</a></span></span><span class='period'>.</span><span class='id identifier rubyid_parse'><span class='object_link'><a href="#parse-class_method" title="CSVDecision::Matchers.parse (method)">parse</a></span></span><span class='lparen'>(</span><span class='label'>columns:</span> <span class='id identifier rubyid_columns'>columns</span><span class='comma'>,</span> <span class='label'>matchers:</span> <span class='ivar'>@outs</span><span class='comma'>,</span> <span class='label'>row:</span> <span class='id identifier rubyid_row'>row</span><span class='rparen'>)</span>
1663
+ <span class='const'><span class='object_link'><a href="" title="CSVDecision2::Matchers (class)">Matchers</a></span></span><span class='period'>.</span><span class='id identifier rubyid_parse'><span class='object_link'><a href="#parse-class_method" title="CSVDecision2::Matchers.parse (method)">parse</a></span></span><span class='lparen'>(</span><span class='label'>columns:</span> <span class='id identifier rubyid_columns'>columns</span><span class='comma'>,</span> <span class='label'>matchers:</span> <span class='ivar'>@outs</span><span class='comma'>,</span> <span class='label'>row:</span> <span class='id identifier rubyid_row'>row</span><span class='rparen'>)</span>
1549
1664
  <span class='kw'>end</span></pre>
1550
- </td>
1551
- </tr>
1552
- </table>
1553
- </div>
1554
-
1555
- </div>
1665
+ </td>
1666
+ </tr>
1667
+ </table>
1668
+ </div>
1556
1669
 
1557
- </div>
1670
+ </div>
1558
1671
 
1559
- <div id="footer">
1560
- Generated on Sun Feb 11 10:26:07 2018 by
1561
- <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1562
- 0.9.12 (ruby-2.4.0).
1563
- </div>
1672
+ </div>
1564
1673
 
1674
+ <div id="footer">
1675
+ Generated on Sun Feb 11 10:26:07 2018 by
1676
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1677
+ 0.9.12 (ruby-2.4.0).
1565
1678
  </div>
1566
- </body>
1567
- </html>
1679
+
1680
+ </div>
1681
+ </body>
1682
+
1683
+ </html>