kabk 1.0.0

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 (66) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +20 -0
  3. data/Gemfile +6 -0
  4. data/Gemfile.lock +105 -0
  5. data/Kabk_logo.svg +33 -0
  6. data/LICENSE +21 -0
  7. data/README.md +112 -0
  8. data/doc/Kabk/Adapters/Base.html +989 -0
  9. data/doc/Kabk/Adapters/SequelAdapter.html +1071 -0
  10. data/doc/Kabk/Adapters.html +120 -0
  11. data/doc/Kabk/ApiError.html +511 -0
  12. data/doc/Kabk/Auth/JwtStrategy.html +551 -0
  13. data/doc/Kabk/Auth.html +118 -0
  14. data/doc/Kabk/Concurrency.html +297 -0
  15. data/doc/Kabk/ConcurrencyConflictError.html +234 -0
  16. data/doc/Kabk/Error.html +140 -0
  17. data/doc/Kabk/ExportHandler.html +381 -0
  18. data/doc/Kabk/Field.html +2160 -0
  19. data/doc/Kabk/ForbiddenError.html +234 -0
  20. data/doc/Kabk/InvalidFieldError.html +145 -0
  21. data/doc/Kabk/InvalidOldPasswordError.html +234 -0
  22. data/doc/Kabk/NotFoundError.html +234 -0
  23. data/doc/Kabk/QueryBuilder.html +701 -0
  24. data/doc/Kabk/Registry.html +608 -0
  25. data/doc/Kabk/RelationHydrator.html +480 -0
  26. data/doc/Kabk/Resource.html +1986 -0
  27. data/doc/Kabk/ResourceBuilder.html +1002 -0
  28. data/doc/Kabk/RestEngine.html +887 -0
  29. data/doc/Kabk/SchemaRenderer.html +318 -0
  30. data/doc/Kabk/UnauthorizedError.html +234 -0
  31. data/doc/Kabk/UploadHandler.html +308 -0
  32. data/doc/Kabk/ValidationError.html +234 -0
  33. data/doc/Kabk/Validator.html +802 -0
  34. data/doc/Kabk.html +330 -0
  35. data/doc/_index.html +369 -0
  36. data/doc/class_list.html +54 -0
  37. data/doc/css/common.css +1 -0
  38. data/doc/css/full_list.css +206 -0
  39. data/doc/css/style.css +1089 -0
  40. data/doc/file.README.html +162 -0
  41. data/doc/file_list.html +59 -0
  42. data/doc/frames.html +22 -0
  43. data/doc/index.html +162 -0
  44. data/doc/js/app.js +801 -0
  45. data/doc/js/full_list.js +334 -0
  46. data/doc/js/jquery.js +4 -0
  47. data/doc/method_list.html +982 -0
  48. data/doc/top-level-namespace.html +112 -0
  49. data/docs/API_REFERENCE.md +255 -0
  50. data/lib/kabk/adapters/base.rb +53 -0
  51. data/lib/kabk/adapters/sequel_adapter.rb +138 -0
  52. data/lib/kabk/concurrency.rb +30 -0
  53. data/lib/kabk/errors.rb +68 -0
  54. data/lib/kabk/field.rb +97 -0
  55. data/lib/kabk/query_builder.rb +103 -0
  56. data/lib/kabk/registry.rb +41 -0
  57. data/lib/kabk/relation_hydrator.rb +107 -0
  58. data/lib/kabk/resource.rb +88 -0
  59. data/lib/kabk/resource_builder.rb +95 -0
  60. data/lib/kabk/rest_engine.rb +120 -0
  61. data/lib/kabk/schema_renderer.rb +69 -0
  62. data/lib/kabk/upload_handler.rb +24 -0
  63. data/lib/kabk/validator.rb +121 -0
  64. data/lib/kabk/version.rb +6 -0
  65. data/lib/kabk.rb +50 -0
  66. metadata +178 -0
@@ -0,0 +1,802 @@
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
+ Class: Kabk::Validator
8
+
9
+ &mdash; Documentation by YARD 0.9.45
10
+
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="../css/style.css" type="text/css">
14
+
15
+ <link rel="stylesheet" href="../css/common.css" type="text/css">
16
+
17
+ <script type="text/javascript">
18
+ pathId = "Kabk::Validator";
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 id="main_progress" aria-hidden="true"></div>
31
+
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 (V)</a> &raquo;
42
+ <span class='title'><span class='object_link'><a href="../Kabk.html" title="Kabk (module)">Kabk</a></span></span>
43
+ &raquo;
44
+ <span class="title">Validator</span>
45
+
46
+ </div>
47
+
48
+ <div id="search">
49
+
50
+ <a class="full_list_link" id="class_list_link"
51
+ 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"><h1>Class: Kabk::Validator
65
+
66
+
67
+
68
+ </h1>
69
+ <div class="box_info">
70
+
71
+ <dl>
72
+ <dt>Inherits:</dt>
73
+ <dd>
74
+ <span class="inheritName">Object</span>
75
+
76
+ <ul class="fullTree">
77
+ <li>Object</li>
78
+
79
+ <li class="next">Kabk::Validator</li>
80
+
81
+ </ul>
82
+ <a href="#" class="inheritanceTree">show all</a>
83
+
84
+ </dd>
85
+ </dl>
86
+
87
+
88
+
89
+
90
+
91
+
92
+
93
+
94
+
95
+
96
+
97
+ <dl>
98
+ <dt>Defined in:</dt>
99
+ <dd>lib/kabk/validator.rb
100
+ </dd>
101
+ </dl>
102
+
103
+ </div>
104
+
105
+ <h2>Overview</h2><div class="docstring">
106
+ <div class="discussion">
107
+ <p>Handles input sanitization (strong parameters) and validation</p>
108
+
109
+ </div>
110
+ </div>
111
+ <div class="tags">
112
+
113
+
114
+ </div>
115
+
116
+
117
+
118
+
119
+
120
+
121
+
122
+ <h2>
123
+ Class Method Summary
124
+ <small><a href="#" class="summary_toggle">collapse</a></small>
125
+ </h2>
126
+
127
+ <ul class="summary">
128
+
129
+ <li class="public ">
130
+ <span class="summary_signature">
131
+
132
+ <a href="#collect_rule_errors-class_method" title="collect_rule_errors (class method)">.<strong>collect_rule_errors</strong>(field, rules, value) &#x21d2; Object </a>
133
+
134
+
135
+
136
+ </span>
137
+
138
+
139
+
140
+
141
+
142
+
143
+
144
+
145
+
146
+ <span class="summary_desc"><div class='inline'></div></span>
147
+
148
+ </li>
149
+
150
+
151
+ <li class="public ">
152
+ <span class="summary_signature">
153
+
154
+ <a href="#parse_numeric-class_method" title="parse_numeric (class method)">.<strong>parse_numeric</strong>(value) &#x21d2; Object </a>
155
+
156
+
157
+
158
+ </span>
159
+
160
+
161
+
162
+
163
+
164
+
165
+
166
+
167
+
168
+ <span class="summary_desc"><div class='inline'></div></span>
169
+
170
+ </li>
171
+
172
+
173
+ <li class="public ">
174
+ <span class="summary_signature">
175
+
176
+ <a href="#resolve_message-class_method" title="resolve_message (class method)">.<strong>resolve_message</strong>(rules, default_message) &#x21d2; Object </a>
177
+
178
+
179
+
180
+ </span>
181
+
182
+
183
+
184
+
185
+
186
+
187
+
188
+
189
+
190
+ <span class="summary_desc"><div class='inline'></div></span>
191
+
192
+ </li>
193
+
194
+
195
+ <li class="public ">
196
+ <span class="summary_signature">
197
+
198
+ <a href="#validate_and_sanitize!-class_method" title="validate_and_sanitize! (class method)">.<strong>validate_and_sanitize!</strong>(resource, params, is_update: false) &#x21d2; Hash </a>
199
+
200
+
201
+
202
+ </span>
203
+
204
+
205
+
206
+
207
+
208
+
209
+
210
+
211
+
212
+ <span class="summary_desc"><div class='inline'><p>Sanitizes input parameters against defined fields and validates them.</p></div></span>
213
+
214
+ </li>
215
+
216
+
217
+ <li class="public ">
218
+ <span class="summary_signature">
219
+
220
+ <a href="#validate_field-class_method" title="validate_field (class method)">.<strong>validate_field</strong>(field, value, has_key, is_update) &#x21d2; Object </a>
221
+
222
+
223
+
224
+ </span>
225
+
226
+
227
+
228
+
229
+
230
+
231
+
232
+
233
+
234
+ <span class="summary_desc"><div class='inline'></div></span>
235
+
236
+ </li>
237
+
238
+
239
+ <li class="public ">
240
+ <span class="summary_signature">
241
+
242
+ <a href="#validate_numeric_range-class_method" title="validate_numeric_range (class method)">.<strong>validate_numeric_range</strong>(rules, value) &#x21d2; Object </a>
243
+
244
+
245
+
246
+ </span>
247
+
248
+
249
+
250
+
251
+
252
+
253
+
254
+
255
+
256
+ <span class="summary_desc"><div class='inline'></div></span>
257
+
258
+ </li>
259
+
260
+
261
+ <li class="public ">
262
+ <span class="summary_signature">
263
+
264
+ <a href="#validate_pattern-class_method" title="validate_pattern (class method)">.<strong>validate_pattern</strong>(rules, value) &#x21d2; Object </a>
265
+
266
+
267
+
268
+ </span>
269
+
270
+
271
+
272
+
273
+
274
+
275
+
276
+
277
+
278
+ <span class="summary_desc"><div class='inline'></div></span>
279
+
280
+ </li>
281
+
282
+
283
+ <li class="public ">
284
+ <span class="summary_signature">
285
+
286
+ <a href="#validate_string_length-class_method" title="validate_string_length (class method)">.<strong>validate_string_length</strong>(rules, value) &#x21d2; Object </a>
287
+
288
+
289
+
290
+ </span>
291
+
292
+
293
+
294
+
295
+
296
+
297
+
298
+
299
+
300
+ <span class="summary_desc"><div class='inline'></div></span>
301
+
302
+ </li>
303
+
304
+
305
+ </ul>
306
+
307
+
308
+
309
+
310
+
311
+ <div id="class_method_details" class="method_details_list">
312
+ <h2>Class Method Details</h2>
313
+
314
+
315
+ <div class="method_details first">
316
+ <h3 class="signature first" id="collect_rule_errors-class_method">
317
+
318
+ .<strong>collect_rule_errors</strong>(field, rules, value) &#x21d2; <tt>Object</tt>
319
+
320
+
321
+
322
+
323
+
324
+ </h3><table class="source_code">
325
+ <tr>
326
+ <td>
327
+ <pre class="lines">
328
+
329
+
330
+ 55
331
+ 56
332
+ 57
333
+ 58
334
+ 59
335
+ 60
336
+ 61
337
+ 62
338
+ 63
339
+ 64
340
+ 65
341
+ 66
342
+ 67
343
+ 68
344
+ 69
345
+ 70
346
+ 71
347
+ 72
348
+ 73
349
+ 74</pre>
350
+ </td>
351
+ <td>
352
+ <pre class="code"><span class="info file"># File 'lib/kabk/validator.rb', line 55</span>
353
+
354
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_collect_rule_errors'>collect_rule_errors</span><span class='lparen'>(</span><span class='id identifier rubyid_field'>field</span><span class='comma'>,</span> <span class='id identifier rubyid_rules'>rules</span><span class='comma'>,</span> <span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
355
+ <span class='id identifier rubyid_errs'>errs</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
356
+
357
+ <span class='kw'>if</span> <span class='id identifier rubyid_field'>field</span><span class='period'>.</span><span class='id identifier rubyid_type'>type</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>string</span><span class='tstring_end'>&quot;</span></span> <span class='op'>&amp;&amp;</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'>String</span><span class='rparen'>)</span>
358
+ <span class='id identifier rubyid_len_err'>len_err</span> <span class='op'>=</span> <span class='id identifier rubyid_validate_string_length'>validate_string_length</span><span class='lparen'>(</span><span class='id identifier rubyid_rules'>rules</span><span class='comma'>,</span> <span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
359
+ <span class='id identifier rubyid_errs'>errs</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_len_err'>len_err</span> <span class='kw'>if</span> <span class='id identifier rubyid_len_err'>len_err</span>
360
+ <span class='kw'>end</span>
361
+
362
+ <span class='kw'>if</span> <span class='lparen'>(</span><span class='id identifier rubyid_rules'>rules</span><span class='lbracket'>[</span><span class='symbol'>:pattern</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='id identifier rubyid_rules'>rules</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>pattern</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='op'>&amp;&amp;</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'>String</span><span class='rparen'>)</span>
363
+ <span class='id identifier rubyid_pat_err'>pat_err</span> <span class='op'>=</span> <span class='id identifier rubyid_validate_pattern'>validate_pattern</span><span class='lparen'>(</span><span class='id identifier rubyid_rules'>rules</span><span class='comma'>,</span> <span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
364
+ <span class='id identifier rubyid_errs'>errs</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_pat_err'>pat_err</span> <span class='kw'>if</span> <span class='id identifier rubyid_pat_err'>pat_err</span>
365
+ <span class='kw'>end</span>
366
+
367
+ <span class='kw'>if</span> <span class='id identifier rubyid_field'>field</span><span class='period'>.</span><span class='id identifier rubyid_type'>type</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>number</span><span class='tstring_end'>&quot;</span></span>
368
+ <span class='id identifier rubyid_num_err'>num_err</span> <span class='op'>=</span> <span class='id identifier rubyid_validate_numeric_range'>validate_numeric_range</span><span class='lparen'>(</span><span class='id identifier rubyid_rules'>rules</span><span class='comma'>,</span> <span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
369
+ <span class='id identifier rubyid_errs'>errs</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_num_err'>num_err</span> <span class='kw'>if</span> <span class='id identifier rubyid_num_err'>num_err</span>
370
+ <span class='kw'>end</span>
371
+
372
+ <span class='id identifier rubyid_errs'>errs</span>
373
+ <span class='kw'>end</span></pre>
374
+ </td>
375
+ </tr>
376
+ </table>
377
+ </div>
378
+
379
+ <div class="method_details ">
380
+ <h3 class="signature " id="parse_numeric-class_method">
381
+
382
+ .<strong>parse_numeric</strong>(value) &#x21d2; <tt>Object</tt>
383
+
384
+
385
+
386
+
387
+
388
+ </h3><table class="source_code">
389
+ <tr>
390
+ <td>
391
+ <pre class="lines">
392
+
393
+
394
+ 110
395
+ 111
396
+ 112
397
+ 113
398
+ 114
399
+ 115</pre>
400
+ </td>
401
+ <td>
402
+ <pre class="code"><span class="info file"># File 'lib/kabk/validator.rb', line 110</span>
403
+
404
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_parse_numeric'>parse_numeric</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
405
+ <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'>Numeric</span><span class='rparen'>)</span>
406
+ <span class='kw'>return</span> <span class='kw'>nil</span> <span class='kw'>unless</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'>String</span><span class='rparen'>)</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_value'>value</span> <span class='op'>=~</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\A-?\d+(\.\d+)?\z</span><span class='regexp_end'>/</span></span>
407
+
408
+ <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>.</span><span class='tstring_end'>&quot;</span></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_to_f'>to_f</span> <span class='op'>:</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span>
409
+ <span class='kw'>end</span></pre>
410
+ </td>
411
+ </tr>
412
+ </table>
413
+ </div>
414
+
415
+ <div class="method_details ">
416
+ <h3 class="signature " id="resolve_message-class_method">
417
+
418
+ .<strong>resolve_message</strong>(rules, default_message) &#x21d2; <tt>Object</tt>
419
+
420
+
421
+
422
+
423
+
424
+ </h3><table class="source_code">
425
+ <tr>
426
+ <td>
427
+ <pre class="lines">
428
+
429
+
430
+ 117
431
+ 118
432
+ 119</pre>
433
+ </td>
434
+ <td>
435
+ <pre class="code"><span class="info file"># File 'lib/kabk/validator.rb', line 117</span>
436
+
437
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_resolve_message'>resolve_message</span><span class='lparen'>(</span><span class='id identifier rubyid_rules'>rules</span><span class='comma'>,</span> <span class='id identifier rubyid_default_message'>default_message</span><span class='rparen'>)</span>
438
+ <span class='id identifier rubyid_rules'>rules</span><span class='op'>&amp;.</span><span class='id identifier rubyid_dig'>dig</span><span class='lparen'>(</span><span class='symbol'>:custom_message</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='id identifier rubyid_rules'>rules</span><span class='op'>&amp;.</span><span class='id identifier rubyid_dig'>dig</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>custom_message</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span> <span class='op'>||</span> <span class='id identifier rubyid_default_message'>default_message</span>
439
+ <span class='kw'>end</span></pre>
440
+ </td>
441
+ </tr>
442
+ </table>
443
+ </div>
444
+
445
+ <div class="method_details ">
446
+ <h3 class="signature " id="validate_and_sanitize!-class_method">
447
+
448
+ .<strong>validate_and_sanitize!</strong>(resource, params, is_update: false) &#x21d2; <tt>Hash</tt>
449
+
450
+
451
+
452
+
453
+
454
+ </h3><div class="docstring">
455
+ <div class="discussion">
456
+ <p>Sanitizes input parameters against defined fields and validates them</p>
457
+
458
+ </div>
459
+ </div>
460
+ <div class="tags">
461
+ <p class="tag_title">Parameters:</p>
462
+ <ul class="param">
463
+
464
+ <li>
465
+
466
+ <span class='name'>resource</span>
467
+
468
+
469
+ <span class='type'>(<tt><span class='object_link'><a href="Resource.html" title="Kabk::Resource (class)">Kabk::Resource</a></span></tt>)</span>
470
+
471
+
472
+
473
+ </li>
474
+
475
+ <li>
476
+
477
+ <span class='name'>params</span>
478
+
479
+
480
+ <span class='type'>(<tt>Hash</tt>)</span>
481
+
482
+
483
+
484
+ &mdash;
485
+ <div class='inline'><p>Request payload</p></div>
486
+
487
+ </li>
488
+
489
+ <li>
490
+
491
+ <span class='name'>is_update</span>
492
+
493
+
494
+ <span class='type'>(<tt>Boolean</tt>)</span>
495
+
496
+
497
+ <em class="default">(defaults to: <tt>false</tt>)</em>
498
+
499
+
500
+ &mdash;
501
+ <div class='inline'><p>Is this a PUT/update request?</p></div>
502
+
503
+ </li>
504
+
505
+ </ul>
506
+
507
+ <p class="tag_title">Returns:</p>
508
+ <ul class="return">
509
+
510
+ <li>
511
+
512
+
513
+ <span class='type'>(<tt>Hash</tt>)</span>
514
+
515
+
516
+
517
+ &mdash;
518
+ <div class='inline'><p>Sanitized parameters ready for the database adapter</p></div>
519
+
520
+ </li>
521
+
522
+ </ul>
523
+ <p class="tag_title">Raises:</p>
524
+ <ul class="raise">
525
+
526
+ <li>
527
+
528
+
529
+ <span class='type'>(<tt><span class='object_link'><a href="ValidationError.html" title="Kabk::ValidationError (class)">ValidationError</a></span></tt>)</span>
530
+
531
+
532
+
533
+ </li>
534
+
535
+ </ul>
536
+
537
+ </div><table class="source_code">
538
+ <tr>
539
+ <td>
540
+ <pre class="lines">
541
+
542
+
543
+ 13
544
+ 14
545
+ 15
546
+ 16
547
+ 17
548
+ 18
549
+ 19
550
+ 20
551
+ 21
552
+ 22
553
+ 23
554
+ 24
555
+ 25
556
+ 26
557
+ 27
558
+ 28
559
+ 29
560
+ 30
561
+ 31
562
+ 32
563
+ 33
564
+ 34
565
+ 35
566
+ 36
567
+ 37
568
+ 38
569
+ 39
570
+ 40</pre>
571
+ </td>
572
+ <td>
573
+ <pre class="code"><span class="info file"># File 'lib/kabk/validator.rb', line 13</span>
574
+
575
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_validate_and_sanitize!'>validate_and_sanitize!</span><span class='lparen'>(</span><span class='id identifier rubyid_resource'>resource</span><span class='comma'>,</span> <span class='id identifier rubyid_params'>params</span><span class='comma'>,</span> <span class='label'>is_update:</span> <span class='kw'>false</span><span class='rparen'>)</span>
576
+ <span class='id identifier rubyid_sanitized'>sanitized</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
577
+ <span class='id identifier rubyid_errors'>errors</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
578
+
579
+ <span class='id identifier rubyid_resource'>resource</span><span class='period'>.</span><span class='id identifier rubyid_fields'>fields</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_field'>field</span><span class='op'>|</span>
580
+ <span class='kw'>next</span> <span class='kw'>if</span> <span class='id identifier rubyid_field'>field</span><span class='period'>.</span><span class='id identifier rubyid_primary_key'>primary_key</span> <span class='op'>||</span> <span class='id identifier rubyid_field'>field</span><span class='period'>.</span><span class='id identifier rubyid_readonly'>readonly</span>
581
+
582
+ <span class='id identifier rubyid_key_sym'>key_sym</span> <span class='op'>=</span> <span class='id identifier rubyid_field'>field</span><span class='period'>.</span><span class='id identifier rubyid_name'>name</span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span>
583
+ <span class='id identifier rubyid_key_str'>key_str</span> <span class='op'>=</span> <span class='id identifier rubyid_field'>field</span><span class='period'>.</span><span class='id identifier rubyid_name'>name</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
584
+ <span class='id identifier rubyid_has_key'>has_key</span> <span class='op'>=</span> <span class='id identifier rubyid_params'>params</span><span class='period'>.</span><span class='id identifier rubyid_key?'>key?</span><span class='lparen'>(</span><span class='id identifier rubyid_key_sym'>key_sym</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='id identifier rubyid_params'>params</span><span class='period'>.</span><span class='id identifier rubyid_key?'>key?</span><span class='lparen'>(</span><span class='id identifier rubyid_key_str'>key_str</span><span class='rparen'>)</span>
585
+ <span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='id identifier rubyid_params'>params</span><span class='period'>.</span><span class='id identifier rubyid_key?'>key?</span><span class='lparen'>(</span><span class='id identifier rubyid_key_sym'>key_sym</span><span class='rparen'>)</span> <span class='op'>?</span> <span class='id identifier rubyid_params'>params</span><span class='lbracket'>[</span><span class='id identifier rubyid_key_sym'>key_sym</span><span class='rbracket'>]</span> <span class='op'>:</span> <span class='id identifier rubyid_params'>params</span><span class='lbracket'>[</span><span class='id identifier rubyid_key_str'>key_str</span><span class='rbracket'>]</span>
586
+
587
+ <span class='id identifier rubyid_field_errors'>field_errors</span> <span class='op'>=</span> <span class='id identifier rubyid_validate_field'>validate_field</span><span class='lparen'>(</span><span class='id identifier rubyid_field'>field</span><span class='comma'>,</span> <span class='id identifier rubyid_value'>value</span><span class='comma'>,</span> <span class='id identifier rubyid_has_key'>has_key</span><span class='comma'>,</span> <span class='id identifier rubyid_is_update'>is_update</span><span class='rparen'>)</span>
588
+ <span class='id identifier rubyid_errors'>errors</span><span class='lbracket'>[</span><span class='id identifier rubyid_key_str'>key_str</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_field_errors'>field_errors</span> <span class='kw'>unless</span> <span class='id identifier rubyid_field_errors'>field_errors</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span>
589
+
590
+ <span class='id identifier rubyid_sanitized'>sanitized</span><span class='lbracket'>[</span><span class='id identifier rubyid_key_sym'>key_sym</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_value'>value</span> <span class='kw'>if</span> <span class='id identifier rubyid_has_key'>has_key</span>
591
+ <span class='kw'>end</span>
592
+
593
+ <span class='comment'># Ensure the concurrency field is included for OCC validation.
594
+ </span> <span class='kw'>if</span> <span class='id identifier rubyid_resource'>resource</span><span class='period'>.</span><span class='id identifier rubyid_concurrency_field'>concurrency_field</span>
595
+ <span class='id identifier rubyid_c_field'>c_field</span> <span class='op'>=</span> <span class='id identifier rubyid_resource'>resource</span><span class='period'>.</span><span class='id identifier rubyid_concurrency_field'>concurrency_field</span>
596
+ <span class='id identifier rubyid_sanitized'>sanitized</span><span class='lbracket'>[</span><span class='id identifier rubyid_c_field'>c_field</span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_params'>params</span><span class='lbracket'>[</span><span class='id identifier rubyid_c_field'>c_field</span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='id identifier rubyid_params'>params</span><span class='lbracket'>[</span><span class='id identifier rubyid_c_field'>c_field</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='id identifier rubyid_params'>params</span><span class='period'>.</span><span class='id identifier rubyid_key?'>key?</span><span class='lparen'>(</span><span class='id identifier rubyid_c_field'>c_field</span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='id identifier rubyid_params'>params</span><span class='period'>.</span><span class='id identifier rubyid_key?'>key?</span><span class='lparen'>(</span><span class='id identifier rubyid_c_field'>c_field</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='rparen'>)</span>
597
+ <span class='kw'>end</span>
598
+
599
+ <span class='id identifier rubyid_raise'>raise</span> <span class='const'><span class='object_link'><a href="ValidationError.html" title="Kabk::ValidationError (class)">ValidationError</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="ValidationError.html#initialize-instance_method" title="Kabk::ValidationError#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='label'>fields:</span> <span class='id identifier rubyid_errors'>errors</span><span class='rparen'>)</span> <span class='kw'>unless</span> <span class='id identifier rubyid_errors'>errors</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span>
600
+
601
+ <span class='id identifier rubyid_sanitized'>sanitized</span>
602
+ <span class='kw'>end</span></pre>
603
+ </td>
604
+ </tr>
605
+ </table>
606
+ </div>
607
+
608
+ <div class="method_details ">
609
+ <h3 class="signature " id="validate_field-class_method">
610
+
611
+ .<strong>validate_field</strong>(field, value, has_key, is_update) &#x21d2; <tt>Object</tt>
612
+
613
+
614
+
615
+
616
+
617
+ </h3><table class="source_code">
618
+ <tr>
619
+ <td>
620
+ <pre class="lines">
621
+
622
+
623
+ 42
624
+ 43
625
+ 44
626
+ 45
627
+ 46
628
+ 47
629
+ 48
630
+ 49
631
+ 50
632
+ 51
633
+ 52
634
+ 53</pre>
635
+ </td>
636
+ <td>
637
+ <pre class="code"><span class="info file"># File 'lib/kabk/validator.rb', line 42</span>
638
+
639
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_validate_field'>validate_field</span><span class='lparen'>(</span><span class='id identifier rubyid_field'>field</span><span class='comma'>,</span> <span class='id identifier rubyid_value'>value</span><span class='comma'>,</span> <span class='id identifier rubyid_has_key'>has_key</span><span class='comma'>,</span> <span class='id identifier rubyid_is_update'>is_update</span><span class='rparen'>)</span>
640
+ <span class='id identifier rubyid_rules'>rules</span> <span class='op'>=</span> <span class='id identifier rubyid_field'>field</span><span class='period'>.</span><span class='id identifier rubyid_validation'>validation</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Hash</span><span class='rparen'>)</span> <span class='op'>?</span> <span class='id identifier rubyid_field'>field</span><span class='period'>.</span><span class='id identifier rubyid_validation'>validation</span> <span class='op'>:</span> <span class='kw'>nil</span>
641
+
642
+ <span class='kw'>if</span> <span class='id identifier rubyid_field'>field</span><span class='period'>.</span><span class='id identifier rubyid_required'>required</span>
643
+ <span class='kw'>return</span> <span class='lbracket'>[</span><span class='id identifier rubyid_resolve_message'>resolve_message</span><span class='lparen'>(</span><span class='id identifier rubyid_rules'>rules</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>This field is required</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='op'>!</span><span class='id identifier rubyid_has_key'>has_key</span> <span class='op'>&amp;&amp;</span> <span class='op'>!</span><span class='id identifier rubyid_is_update'>is_update</span>
644
+ <span class='kw'>return</span> <span class='lbracket'>[</span><span class='id identifier rubyid_resolve_message'>resolve_message</span><span class='lparen'>(</span><span class='id identifier rubyid_rules'>rules</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>This field is required</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='id identifier rubyid_has_key'>has_key</span> <span class='op'>&amp;&amp;</span> <span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>||</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='period'>.</span><span class='id identifier rubyid_strip'>strip</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span><span class='rparen'>)</span>
645
+ <span class='kw'>end</span>
646
+
647
+ <span class='kw'>return</span> <span class='lbracket'>[</span><span class='rbracket'>]</span> <span class='kw'>unless</span> <span class='id identifier rubyid_has_key'>has_key</span> <span class='op'>&amp;&amp;</span> <span class='op'>!</span><span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_rules'>rules</span>
648
+
649
+ <span class='id identifier rubyid_collect_rule_errors'>collect_rule_errors</span><span class='lparen'>(</span><span class='id identifier rubyid_field'>field</span><span class='comma'>,</span> <span class='id identifier rubyid_rules'>rules</span><span class='comma'>,</span> <span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
650
+ <span class='kw'>end</span></pre>
651
+ </td>
652
+ </tr>
653
+ </table>
654
+ </div>
655
+
656
+ <div class="method_details ">
657
+ <h3 class="signature " id="validate_numeric_range-class_method">
658
+
659
+ .<strong>validate_numeric_range</strong>(rules, value) &#x21d2; <tt>Object</tt>
660
+
661
+
662
+
663
+
664
+
665
+ </h3><table class="source_code">
666
+ <tr>
667
+ <td>
668
+ <pre class="lines">
669
+
670
+
671
+ 96
672
+ 97
673
+ 98
674
+ 99
675
+ 100
676
+ 101
677
+ 102
678
+ 103
679
+ 104
680
+ 105
681
+ 106
682
+ 107
683
+ 108</pre>
684
+ </td>
685
+ <td>
686
+ <pre class="code"><span class="info file"># File 'lib/kabk/validator.rb', line 96</span>
687
+
688
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_validate_numeric_range'>validate_numeric_range</span><span class='lparen'>(</span><span class='id identifier rubyid_rules'>rules</span><span class='comma'>,</span> <span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
689
+ <span class='id identifier rubyid_min'>min</span> <span class='op'>=</span> <span class='id identifier rubyid_rules'>rules</span><span class='lbracket'>[</span><span class='symbol'>:min</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='id identifier rubyid_rules'>rules</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>min</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span>
690
+ <span class='id identifier rubyid_max'>max</span> <span class='op'>=</span> <span class='id identifier rubyid_rules'>rules</span><span class='lbracket'>[</span><span class='symbol'>:max</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='id identifier rubyid_rules'>rules</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>max</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span>
691
+ <span class='kw'>return</span> <span class='kw'>nil</span> <span class='kw'>unless</span> <span class='id identifier rubyid_min'>min</span> <span class='op'>||</span> <span class='id identifier rubyid_max'>max</span>
692
+
693
+ <span class='id identifier rubyid_num'>num</span> <span class='op'>=</span> <span class='id identifier rubyid_parse_numeric'>parse_numeric</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
694
+ <span class='kw'>return</span> <span class='kw'>nil</span> <span class='kw'>unless</span> <span class='id identifier rubyid_num'>num</span>
695
+
696
+ <span class='kw'>return</span> <span class='id identifier rubyid_resolve_message'>resolve_message</span><span class='lparen'>(</span><span class='id identifier rubyid_rules'>rules</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Minimum value is </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_min'>min</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_min'>min</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_num'>num</span> <span class='op'>&lt;</span> <span class='id identifier rubyid_min'>min</span>
697
+ <span class='kw'>return</span> <span class='id identifier rubyid_resolve_message'>resolve_message</span><span class='lparen'>(</span><span class='id identifier rubyid_rules'>rules</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Maximum value is </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_max'>max</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_max'>max</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_num'>num</span> <span class='op'>&gt;</span> <span class='id identifier rubyid_max'>max</span>
698
+
699
+ <span class='kw'>nil</span>
700
+ <span class='kw'>end</span></pre>
701
+ </td>
702
+ </tr>
703
+ </table>
704
+ </div>
705
+
706
+ <div class="method_details ">
707
+ <h3 class="signature " id="validate_pattern-class_method">
708
+
709
+ .<strong>validate_pattern</strong>(rules, value) &#x21d2; <tt>Object</tt>
710
+
711
+
712
+
713
+
714
+
715
+ </h3><table class="source_code">
716
+ <tr>
717
+ <td>
718
+ <pre class="lines">
719
+
720
+
721
+ 86
722
+ 87
723
+ 88
724
+ 89
725
+ 90
726
+ 91
727
+ 92
728
+ 93
729
+ 94</pre>
730
+ </td>
731
+ <td>
732
+ <pre class="code"><span class="info file"># File 'lib/kabk/validator.rb', line 86</span>
733
+
734
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_validate_pattern'>validate_pattern</span><span class='lparen'>(</span><span class='id identifier rubyid_rules'>rules</span><span class='comma'>,</span> <span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
735
+ <span class='id identifier rubyid_pattern'>pattern</span> <span class='op'>=</span> <span class='id identifier rubyid_rules'>rules</span><span class='lbracket'>[</span><span class='symbol'>:pattern</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='id identifier rubyid_rules'>rules</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>pattern</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span>
736
+ <span class='kw'>return</span> <span class='kw'>nil</span> <span class='kw'>unless</span> <span class='id identifier rubyid_pattern'>pattern</span>
737
+
738
+ <span class='id identifier rubyid_regex'>regex</span> <span class='op'>=</span> <span class='id identifier rubyid_pattern'>pattern</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Regexp</span><span class='rparen'>)</span> <span class='op'>?</span> <span class='id identifier rubyid_pattern'>pattern</span> <span class='op'>:</span> <span class='const'>Regexp</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_pattern'>pattern</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='rparen'>)</span>
739
+ <span class='kw'>return</span> <span class='kw'>nil</span> <span class='kw'>if</span> <span class='id identifier rubyid_regex'>regex</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>
740
+
741
+ <span class='id identifier rubyid_resolve_message'>resolve_message</span><span class='lparen'>(</span><span class='id identifier rubyid_rules'>rules</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Does not match the required format</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
742
+ <span class='kw'>end</span></pre>
743
+ </td>
744
+ </tr>
745
+ </table>
746
+ </div>
747
+
748
+ <div class="method_details ">
749
+ <h3 class="signature " id="validate_string_length-class_method">
750
+
751
+ .<strong>validate_string_length</strong>(rules, value) &#x21d2; <tt>Object</tt>
752
+
753
+
754
+
755
+
756
+
757
+ </h3><table class="source_code">
758
+ <tr>
759
+ <td>
760
+ <pre class="lines">
761
+
762
+
763
+ 76
764
+ 77
765
+ 78
766
+ 79
767
+ 80
768
+ 81
769
+ 82
770
+ 83
771
+ 84</pre>
772
+ </td>
773
+ <td>
774
+ <pre class="code"><span class="info file"># File 'lib/kabk/validator.rb', line 76</span>
775
+
776
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_validate_string_length'>validate_string_length</span><span class='lparen'>(</span><span class='id identifier rubyid_rules'>rules</span><span class='comma'>,</span> <span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
777
+ <span class='id identifier rubyid_min_len'>min_len</span> <span class='op'>=</span> <span class='id identifier rubyid_rules'>rules</span><span class='lbracket'>[</span><span class='symbol'>:min_length</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='id identifier rubyid_rules'>rules</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>min_length</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span>
778
+ <span class='id identifier rubyid_max_len'>max_len</span> <span class='op'>=</span> <span class='id identifier rubyid_rules'>rules</span><span class='lbracket'>[</span><span class='symbol'>:max_length</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='id identifier rubyid_rules'>rules</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>max_length</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span>
779
+
780
+ <span class='kw'>return</span> <span class='id identifier rubyid_resolve_message'>resolve_message</span><span class='lparen'>(</span><span class='id identifier rubyid_rules'>rules</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Minimum length is </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_min_len'>min_len</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_min_len'>min_len</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span> <span class='op'>&lt;</span> <span class='id identifier rubyid_min_len'>min_len</span>
781
+ <span class='kw'>return</span> <span class='id identifier rubyid_resolve_message'>resolve_message</span><span class='lparen'>(</span><span class='id identifier rubyid_rules'>rules</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Maximum length is </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_max_len'>max_len</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_max_len'>max_len</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span> <span class='op'>&gt;</span> <span class='id identifier rubyid_max_len'>max_len</span>
782
+
783
+ <span class='kw'>nil</span>
784
+ <span class='kw'>end</span></pre>
785
+ </td>
786
+ </tr>
787
+ </table>
788
+ </div>
789
+
790
+ </div>
791
+
792
+ </div>
793
+
794
+ <div id="footer">
795
+ Generated on Sat Aug 15 15:52:09 2026 by
796
+ <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
797
+ 0.9.45 (ruby-4.0.6).
798
+ </div>
799
+
800
+ </div>
801
+ </body>
802
+ </html>