csv_decision 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (64) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +4 -0
  3. data/README.md +26 -2
  4. data/csv_decision.gemspec +1 -1
  5. data/doc/CSVDecision/CellValidationError.html +2 -2
  6. data/doc/CSVDecision/Columns/Default.html +203 -23
  7. data/doc/CSVDecision/Columns/Dictionary.html +118 -25
  8. data/doc/CSVDecision/Columns.html +213 -31
  9. data/doc/CSVDecision/Data.html +1 -1
  10. data/doc/CSVDecision/Decide.html +1 -1
  11. data/doc/CSVDecision/Decision.html +1 -1
  12. data/doc/CSVDecision/Defaults.html +291 -0
  13. data/doc/CSVDecision/Dictionary/Entry.html +584 -47
  14. data/doc/CSVDecision/Dictionary.html +20 -20
  15. data/doc/CSVDecision/Error.html +2 -2
  16. data/doc/CSVDecision/FileError.html +1 -1
  17. data/doc/CSVDecision/Header.html +110 -33
  18. data/doc/CSVDecision/Input.html +1 -1
  19. data/doc/CSVDecision/Load.html +1 -1
  20. data/doc/CSVDecision/Matchers/Constant.html +12 -37
  21. data/doc/CSVDecision/Matchers/Function.html +1 -1
  22. data/doc/CSVDecision/Matchers/Guard.html +15 -13
  23. data/doc/CSVDecision/Matchers/Matcher.html +1 -1
  24. data/doc/CSVDecision/Matchers/Numeric.html +13 -21
  25. data/doc/CSVDecision/Matchers/Pattern.html +14 -14
  26. data/doc/CSVDecision/Matchers/Proc.html +1 -1
  27. data/doc/CSVDecision/Matchers/Range.html +13 -58
  28. data/doc/CSVDecision/Matchers/Symbol.html +1 -1
  29. data/doc/CSVDecision/Matchers.html +9 -9
  30. data/doc/CSVDecision/Options.html +1 -1
  31. data/doc/CSVDecision/Parse.html +90 -19
  32. data/doc/CSVDecision/Result.html +1 -1
  33. data/doc/CSVDecision/ScanRow.html +17 -17
  34. data/doc/CSVDecision/Table.html +50 -48
  35. data/doc/CSVDecision/TableValidationError.html +143 -0
  36. data/doc/CSVDecision/Validate.html +422 -0
  37. data/doc/CSVDecision.html +8 -8
  38. data/doc/_index.html +33 -1
  39. data/doc/class_list.html +1 -1
  40. data/doc/file.README.html +27 -3
  41. data/doc/index.html +27 -3
  42. data/doc/method_list.html +193 -89
  43. data/doc/top-level-namespace.html +1 -1
  44. data/lib/csv_decision/columns.rb +28 -27
  45. data/lib/csv_decision/defaults.rb +47 -0
  46. data/lib/csv_decision/dictionary.rb +104 -112
  47. data/lib/csv_decision/header.rb +13 -10
  48. data/lib/csv_decision/input.rb +53 -5
  49. data/lib/csv_decision/matchers/constant.rb +1 -2
  50. data/lib/csv_decision/matchers/guard.rb +3 -2
  51. data/lib/csv_decision/matchers/numeric.rb +4 -6
  52. data/lib/csv_decision/matchers/pattern.rb +6 -8
  53. data/lib/csv_decision/matchers/range.rb +1 -3
  54. data/lib/csv_decision/matchers.rb +7 -7
  55. data/lib/csv_decision/parse.rb +24 -3
  56. data/lib/csv_decision/scan_row.rb +16 -16
  57. data/lib/csv_decision/table.rb +3 -7
  58. data/lib/csv_decision/validate.rb +85 -0
  59. data/lib/csv_decision.rb +3 -1
  60. data/spec/csv_decision/columns_spec.rb +38 -22
  61. data/spec/csv_decision/examples_spec.rb +17 -0
  62. data/spec/csv_decision/matchers/range_spec.rb +0 -32
  63. data/spec/csv_decision/table_spec.rb +39 -0
  64. metadata +7 -2
@@ -627,18 +627,18 @@ hash.</p>
627
627
  <pre class="lines">
628
628
 
629
629
 
630
- 70
631
- 71
632
- 72
633
- 73
634
- 74
635
- 75
636
- 76
637
- 77
638
- 78</pre>
630
+ 35
631
+ 36
632
+ 37
633
+ 38
634
+ 39
635
+ 40
636
+ 41
637
+ 42
638
+ 43</pre>
639
639
  </td>
640
640
  <td>
641
- <pre class="code"><span class="info file"># File 'lib/csv_decision/scan_row.rb', line 70</span>
641
+ <pre class="code"><span class="info file"># File 'lib/csv_decision/scan_row.rb', line 35</span>
642
642
 
643
643
  <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_eval_matcher'>eval_matcher</span><span class='lparen'>(</span><span class='label'>proc:</span><span class='comma'>,</span> <span class='label'>hash:</span><span class='comma'>,</span> <span class='label'>value:</span> <span class='kw'>nil</span><span class='rparen'>)</span>
644
644
  <span class='id identifier rubyid_function'>function</span> <span class='op'>=</span> <span class='id identifier rubyid_proc'>proc</span><span class='period'>.</span><span class='id identifier rubyid_function'>function</span>
@@ -797,13 +797,13 @@ hash.</p>
797
797
  <span class='name'>row</span>
798
798
 
799
799
 
800
- <span class='type'>(<tt>Array</tt>)</span>
800
+ <span class='type'>(<tt>Array&lt;String&gt;</tt>)</span>
801
801
 
802
802
 
803
803
 
804
804
  &mdash;
805
805
  <div class='inline'>
806
- <p>Data row.</p>
806
+ <p>Data row - still just all string constants.</p>
807
807
  </div>
808
808
 
809
809
  </li>
@@ -899,13 +899,13 @@ hash.</p>
899
899
  <span class='name'>row</span>
900
900
 
901
901
 
902
- <span class='type'>(<tt>Array</tt>)</span>
902
+ <span class='type'>(<tt>Array&lt;String&gt;</tt>)</span>
903
903
 
904
904
 
905
905
 
906
906
  &mdash;
907
907
  <div class='inline'>
908
- <p>Data row.</p>
908
+ <p>Data row - still just all string constants.</p>
909
909
  </div>
910
910
 
911
911
  </li>
@@ -999,13 +999,13 @@ hash.</p>
999
999
  <span class='name'>row</span>
1000
1000
 
1001
1001
 
1002
- <span class='type'>(<tt>Array</tt>)</span>
1002
+ <span class='type'>(<tt>Array&lt;String&gt;</tt>)</span>
1003
1003
 
1004
1004
 
1005
1005
 
1006
1006
  &mdash;
1007
1007
  <div class='inline'>
1008
- <p>Data row.</p>
1008
+ <p>Data row - still just all string constants.</p>
1009
1009
  </div>
1010
1010
 
1011
1011
  </li>
@@ -1114,7 +1114,7 @@ non-string constant.</p>
1114
1114
  </div>
1115
1115
 
1116
1116
  <div id="footer">
1117
- Generated on Sat Jan 6 20:03:02 2018 by
1117
+ Generated on Sat Jan 13 10:02:47 2018 by
1118
1118
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1119
1119
  0.9.12 (ruby-2.4.0).
1120
1120
  </div>
@@ -349,7 +349,7 @@
349
349
  <li class="public ">
350
350
  <span class="summary_signature">
351
351
 
352
- <a href="#decide-instance_method" title="#decide (instance method)">#<strong>decide</strong>(input) &#x21d2; Hash{Symbol =&gt; Object, Array&lt;Object&gt;} </a>
352
+ <a href="#decide-instance_method" title="#decide (instance method)">#<strong>decide</strong>(input) &#x21d2; {Symbol =&gt; Object, Array&lt;Object&gt;} </a>
353
353
 
354
354
 
355
355
 
@@ -373,7 +373,7 @@
373
373
  <li class="public ">
374
374
  <span class="summary_signature">
375
375
 
376
- <a href="#decide!-instance_method" title="#decide! (instance method)">#<strong>decide!</strong>(input) &#x21d2; Hash{Symbol =&gt; Object, Array&lt;Object&gt;} </a>
376
+ <a href="#decide!-instance_method" title="#decide! (instance method)">#<strong>decide!</strong>(input) &#x21d2; {Symbol =&gt; Object, Array&lt;Object&gt;} </a>
377
377
 
378
378
 
379
379
 
@@ -388,7 +388,8 @@
388
388
 
389
389
 
390
390
  <span class="summary_desc"><div class='inline'>
391
- <p>Unsafe version of decide - assumes the input hash is symbolized.</p>
391
+ <p>Unsafe version of decide - may mutate the input hash and assumes the input
392
+ hash is symbolized.</p>
392
393
  </div></span>
393
394
 
394
395
  </li>
@@ -481,20 +482,20 @@ and last row index given.</p>
481
482
  <pre class="lines">
482
483
 
483
484
 
485
+ 76
486
+ 77
487
+ 78
488
+ 79
484
489
  80
485
490
  81
486
491
  82
487
492
  83
488
493
  84
489
494
  85
490
- 86
491
- 87
492
- 88
493
- 89
494
- 90</pre>
495
+ 86</pre>
495
496
  </td>
496
497
  <td>
497
- <pre class="code"><span class="info file"># File 'lib/csv_decision/table.rb', line 80</span>
498
+ <pre class="code"><span class="info file"># File 'lib/csv_decision/table.rb', line 76</span>
498
499
 
499
500
  <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span>
500
501
  <span class='ivar'>@columns</span> <span class='op'>=</span> <span class='kw'>nil</span>
@@ -563,12 +564,12 @@ and last row index given.</p>
563
564
  <pre class="lines">
564
565
 
565
566
 
566
- 30
567
567
  31
568
- 32</pre>
568
+ 32
569
+ 33</pre>
569
570
  </td>
570
571
  <td>
571
- <pre class="code"><span class="info file"># File 'lib/csv_decision/table.rb', line 30</span>
572
+ <pre class="code"><span class="info file"># File 'lib/csv_decision/table.rb', line 31</span>
572
573
 
573
574
  <span class='kw'>def</span> <span class='id identifier rubyid_columns'>columns</span>
574
575
  <span class='ivar'>@columns</span>
@@ -624,12 +625,12 @@ and last row index given.</p>
624
625
  <pre class="lines">
625
626
 
626
627
 
627
- 33
628
628
  34
629
- 35</pre>
629
+ 35
630
+ 36</pre>
630
631
  </td>
631
632
  <td>
632
- <pre class="code"><span class="info file"># File 'lib/csv_decision/table.rb', line 33</span>
633
+ <pre class="code"><span class="info file"># File 'lib/csv_decision/table.rb', line 34</span>
633
634
 
634
635
  <span class='kw'>def</span> <span class='id identifier rubyid_file'>file</span>
635
636
  <span class='ivar'>@file</span>
@@ -689,12 +690,12 @@ and last row index given.</p>
689
690
  <pre class="lines">
690
691
 
691
692
 
692
- 57
693
693
  58
694
- 59</pre>
694
+ 59
695
+ 60</pre>
695
696
  </td>
696
697
  <td>
697
- <pre class="code"><span class="info file"># File 'lib/csv_decision/table.rb', line 57</span>
698
+ <pre class="code"><span class="info file"># File 'lib/csv_decision/table.rb', line 58</span>
698
699
 
699
700
  <span class='kw'>def</span> <span class='id identifier rubyid_if_rows'>if_rows</span>
700
701
  <span class='ivar'>@if_rows</span>
@@ -750,12 +751,12 @@ and last row index given.</p>
750
751
  <pre class="lines">
751
752
 
752
753
 
753
- 36
754
754
  37
755
- 38</pre>
755
+ 38
756
+ 39</pre>
756
757
  </td>
757
758
  <td>
758
- <pre class="code"><span class="info file"># File 'lib/csv_decision/table.rb', line 36</span>
759
+ <pre class="code"><span class="info file"># File 'lib/csv_decision/table.rb', line 37</span>
759
760
 
760
761
  <span class='kw'>def</span> <span class='id identifier rubyid_options'>options</span>
761
762
  <span class='ivar'>@options</span>
@@ -797,12 +798,12 @@ and last row index given.</p>
797
798
  <pre class="lines">
798
799
 
799
800
 
800
- 40
801
801
  41
802
- 42</pre>
802
+ 42
803
+ 43</pre>
803
804
  </td>
804
805
  <td>
805
- <pre class="code"><span class="info file"># File 'lib/csv_decision/table.rb', line 40</span>
806
+ <pre class="code"><span class="info file"># File 'lib/csv_decision/table.rb', line 41</span>
806
807
 
807
808
  <span class='kw'>def</span> <span class='id identifier rubyid_outs_functions'>outs_functions</span>
808
809
  <span class='ivar'>@outs_functions</span>
@@ -862,12 +863,12 @@ and last row index given.</p>
862
863
  <pre class="lines">
863
864
 
864
865
 
865
- 53
866
866
  54
867
- 55</pre>
867
+ 55
868
+ 56</pre>
868
869
  </td>
869
870
  <td>
870
- <pre class="code"><span class="info file"># File 'lib/csv_decision/table.rb', line 53</span>
871
+ <pre class="code"><span class="info file"># File 'lib/csv_decision/table.rb', line 54</span>
871
872
 
872
873
  <span class='kw'>def</span> <span class='id identifier rubyid_outs_rows'>outs_rows</span>
873
874
  <span class='ivar'>@outs_rows</span>
@@ -927,12 +928,12 @@ and last row index given.</p>
927
928
  <pre class="lines">
928
929
 
929
930
 
930
- 44
931
931
  45
932
- 46</pre>
932
+ 46
933
+ 47</pre>
933
934
  </td>
934
935
  <td>
935
- <pre class="code"><span class="info file"># File 'lib/csv_decision/table.rb', line 44</span>
936
+ <pre class="code"><span class="info file"># File 'lib/csv_decision/table.rb', line 45</span>
936
937
 
937
938
  <span class='kw'>def</span> <span class='id identifier rubyid_rows'>rows</span>
938
939
  <span class='ivar'>@rows</span>
@@ -992,12 +993,12 @@ and last row index given.</p>
992
993
  <pre class="lines">
993
994
 
994
995
 
995
- 49
996
996
  50
997
- 51</pre>
997
+ 51
998
+ 52</pre>
998
999
  </td>
999
1000
  <td>
1000
- <pre class="code"><span class="info file"># File 'lib/csv_decision/table.rb', line 49</span>
1001
+ <pre class="code"><span class="info file"># File 'lib/csv_decision/table.rb', line 50</span>
1001
1002
 
1002
1003
  <span class='kw'>def</span> <span class='id identifier rubyid_scan_rows'>scan_rows</span>
1003
1004
  <span class='ivar'>@scan_rows</span>
@@ -1017,7 +1018,7 @@ and last row index given.</p>
1017
1018
  <div class="method_details first">
1018
1019
  <h3 class="signature first" id="decide-instance_method">
1019
1020
 
1020
- #<strong>decide</strong>(input) &#x21d2; <tt>Hash{Symbol =&gt; Object, Array&lt;Object&gt;}</tt>
1021
+ #<strong>decide</strong>(input) &#x21d2; <tt>{Symbol =&gt; Object, Array&lt;Object&gt;}</tt>
1021
1022
 
1022
1023
 
1023
1024
 
@@ -1067,7 +1068,7 @@ and last row index given.</p>
1067
1068
  <li>
1068
1069
 
1069
1070
 
1070
- <span class='type'>(<tt>Hash{Symbol =&gt; Object, Array&lt;Object&gt;}</tt>)</span>
1071
+ <span class='type'>(<tt>{Symbol =&gt; Object, Array&lt;Object&gt;}</tt>)</span>
1071
1072
 
1072
1073
 
1073
1074
 
@@ -1104,7 +1105,7 @@ and last row index given.</p>
1104
1105
  <div class="method_details ">
1105
1106
  <h3 class="signature " id="decide!-instance_method">
1106
1107
 
1107
- #<strong>decide!</strong>(input) &#x21d2; <tt>Hash{Symbol =&gt; Object, Array&lt;Object&gt;}</tt>
1108
+ #<strong>decide!</strong>(input) &#x21d2; <tt>{Symbol =&gt; Object, Array&lt;Object&gt;}</tt>
1108
1109
 
1109
1110
 
1110
1111
 
@@ -1122,7 +1123,8 @@ functions that have side effects.</p>
1122
1123
  </div>
1123
1124
 
1124
1125
 
1125
- <p>Unsafe version of decide - assumes the input hash is symbolized.</p>
1126
+ <p>Unsafe version of decide - may mutate the input hash and assumes the input
1127
+ hash is symbolized.</p>
1126
1128
 
1127
1129
 
1128
1130
  </div>
@@ -1155,7 +1157,7 @@ functions that have side effects.</p>
1155
1157
  <li>
1156
1158
 
1157
1159
 
1158
- <span class='type'>(<tt>Hash{Symbol =&gt; Object, Array&lt;Object&gt;}</tt>)</span>
1160
+ <span class='type'>(<tt>{Symbol =&gt; Object, Array&lt;Object&gt;}</tt>)</span>
1159
1161
 
1160
1162
 
1161
1163
 
@@ -1174,12 +1176,12 @@ functions that have side effects.</p>
1174
1176
  <pre class="lines">
1175
1177
 
1176
1178
 
1177
- 25
1178
1179
  26
1179
- 27</pre>
1180
+ 27
1181
+ 28</pre>
1180
1182
  </td>
1181
1183
  <td>
1182
- <pre class="code"><span class="info file"># File 'lib/csv_decision/table.rb', line 25</span>
1184
+ <pre class="code"><span class="info file"># File 'lib/csv_decision/table.rb', line 26</span>
1183
1185
 
1184
1186
  <span class='kw'>def</span> <span class='id identifier rubyid_decide!'>decide!</span><span class='lparen'>(</span><span class='id identifier rubyid_input'>input</span><span class='rparen'>)</span>
1185
1187
  <span class='const'><span class='object_link'><a href="Decide.html" title="CSVDecision::Decide (module)">Decide</a></span></span><span class='period'>.</span><span class='id identifier rubyid_decide'><span class='object_link'><a href="Decide.html#decide-class_method" title="CSVDecision::Decide.decide (method)">decide</a></span></span><span class='lparen'>(</span><span class='label'>table:</span> <span class='kw'>self</span><span class='comma'>,</span> <span class='label'>input:</span> <span class='id identifier rubyid_input'>input</span><span class='comma'>,</span> <span class='label'>symbolize_keys:</span> <span class='kw'>false</span><span class='rparen'>)</span>
@@ -1260,17 +1262,17 @@ and last row index given.</p>
1260
1262
  <pre class="lines">
1261
1263
 
1262
1264
 
1265
+ 66
1266
+ 67
1267
+ 68
1268
+ 69
1263
1269
  70
1264
1270
  71
1265
1271
  72
1266
- 73
1267
- 74
1268
- 75
1269
- 76
1270
- 77</pre>
1272
+ 73</pre>
1271
1273
  </td>
1272
1274
  <td>
1273
- <pre class="code"><span class="info file"># File 'lib/csv_decision/table.rb', line 70</span>
1275
+ <pre class="code"><span class="info file"># File 'lib/csv_decision/table.rb', line 66</span>
1274
1276
 
1275
1277
  <span class='kw'>def</span> <span class='id identifier rubyid_each'>each</span><span class='lparen'>(</span><span class='id identifier rubyid_first'>first</span> <span class='op'>=</span> <span class='int'>0</span><span class='comma'>,</span> <span class='id identifier rubyid_last'>last</span> <span class='op'>=</span> <span class='ivar'>@rows</span><span class='period'>.</span><span class='id identifier rubyid_count'>count</span> <span class='op'>-</span> <span class='int'>1</span><span class='rparen'>)</span>
1276
1278
  <span class='id identifier rubyid_index'>index</span> <span class='op'>=</span> <span class='id identifier rubyid_first'>first</span>
@@ -1290,7 +1292,7 @@ and last row index given.</p>
1290
1292
  </div>
1291
1293
 
1292
1294
  <div id="footer">
1293
- Generated on Sat Jan 6 20:03:02 2018 by
1295
+ Generated on Sat Jan 13 10:02:46 2018 by
1294
1296
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1295
1297
  0.9.12 (ruby-2.4.0).
1296
1298
  </div>
@@ -0,0 +1,143 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>
7
+ Exception: CSVDecision::TableValidationError
8
+
9
+ &mdash; Documentation by YARD 0.9.12
10
+
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="../css/style.css" type="text/css" charset="utf-8" />
14
+
15
+ <link rel="stylesheet" href="../css/common.css" type="text/css" charset="utf-8" />
16
+
17
+ <script type="text/javascript" charset="utf-8">
18
+ pathId = "CSVDecision::TableValidationError";
19
+ relpath = '../';
20
+ </script>
21
+
22
+
23
+ <script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
24
+
25
+ <script type="text/javascript" charset="utf-8" src="../js/app.js"></script>
26
+
27
+
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>
34
+
35
+ <div id="main" tabindex="-1">
36
+ <div id="header">
37
+ <div id="menu">
38
+
39
+ <a href="../_index.html">Index (T)</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">TableValidationError</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>
61
+
62
+ <div id="content"><h1>Exception: CSVDecision::TableValidationError
63
+
64
+
65
+
66
+ </h1>
67
+ <div class="box_info">
68
+
69
+ <dl>
70
+ <dt>Inherits:</dt>
71
+ <dd>
72
+ <span class="inheritName"><span class='object_link'><a href="Error.html" title="CSVDecision::Error (class)">Error</a></span></span>
73
+
74
+ <ul class="fullTree">
75
+ <li>Object</li>
76
+
77
+ <li class="next">StandardError</li>
78
+
79
+ <li class="next"><span class='object_link'><a href="Error.html" title="CSVDecision::Error (class)">Error</a></span></li>
80
+
81
+ <li class="next">CSVDecision::TableValidationError</li>
82
+
83
+ </ul>
84
+ <a href="#" class="inheritanceTree">show all</a>
85
+
86
+ </dd>
87
+ </dl>
88
+
89
+
90
+
91
+
92
+
93
+
94
+
95
+
96
+
97
+
98
+
99
+ <dl>
100
+ <dt>Defined in:</dt>
101
+ <dd>lib/csv_decision/parse.rb</dd>
102
+ </dl>
103
+
104
+ </div>
105
+
106
+ <h2>Overview</h2><div class="docstring">
107
+ <div class="discussion">
108
+
109
+ <p>Error validating a cell when parsing input table data.</p>
110
+
111
+
112
+ </div>
113
+ </div>
114
+ <div class="tags">
115
+
116
+
117
+ </div>
118
+
119
+
120
+
121
+
122
+
123
+
124
+
125
+
126
+
127
+
128
+
129
+
130
+
131
+
132
+
133
+ </div>
134
+
135
+ <div id="footer">
136
+ Generated on Sat Jan 13 10:02:46 2018 by
137
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
138
+ 0.9.12 (ruby-2.4.0).
139
+ </div>
140
+
141
+ </div>
142
+ </body>
143
+ </html>