kabk 0.2.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.
Potentially problematic release.
This version of kabk might be problematic. Click here for more details.
- checksums.yaml +7 -0
- data/CHANGELOG.md +27 -0
- data/Gemfile +6 -0
- data/Gemfile.lock +108 -0
- data/Kabk_logo.svg +33 -0
- data/LICENSE +21 -0
- data/README.md +101 -0
- data/doc/Kabk/Adapters/Base.html +854 -0
- data/doc/Kabk/Adapters/SequelAdapter.html +948 -0
- data/doc/Kabk/Adapters.html +120 -0
- data/doc/Kabk/ApiError.html +511 -0
- data/doc/Kabk/Auth/JwtStrategy.html +551 -0
- data/doc/Kabk/Auth.html +118 -0
- data/doc/Kabk/Concurrency.html +297 -0
- data/doc/Kabk/ConcurrencyConflictError.html +225 -0
- data/doc/Kabk/Error.html +140 -0
- data/doc/Kabk/ExportHandler.html +381 -0
- data/doc/Kabk/Field.html +2160 -0
- data/doc/Kabk/ForbiddenError.html +225 -0
- data/doc/Kabk/InvalidFieldError.html +136 -0
- data/doc/Kabk/InvalidOldPasswordError.html +225 -0
- data/doc/Kabk/NotFoundError.html +225 -0
- data/doc/Kabk/QueryBuilder.html +551 -0
- data/doc/Kabk/Registry.html +608 -0
- data/doc/Kabk/RelationHydrator.html +480 -0
- data/doc/Kabk/Resource.html +1986 -0
- data/doc/Kabk/ResourceBuilder.html +1002 -0
- data/doc/Kabk/RestEngine.html +879 -0
- data/doc/Kabk/SchemaRenderer.html +318 -0
- data/doc/Kabk/UnauthorizedError.html +225 -0
- data/doc/Kabk/UploadHandler.html +308 -0
- data/doc/Kabk/ValidationError.html +225 -0
- data/doc/Kabk/Validator.html +380 -0
- data/doc/Kabk.html +330 -0
- data/doc/_index.html +376 -0
- data/doc/class_list.html +54 -0
- data/doc/css/common.css +1 -0
- data/doc/css/full_list.css +206 -0
- data/doc/css/style.css +1089 -0
- data/doc/file.README.html +149 -0
- data/doc/file_list.html +59 -0
- data/doc/frames.html +22 -0
- data/doc/index.html +149 -0
- data/doc/js/app.js +801 -0
- data/doc/js/full_list.js +334 -0
- data/doc/js/jquery.js +4 -0
- data/doc/method_list.html +910 -0
- data/doc/top-level-namespace.html +112 -0
- data/docs/API_REFERENCE.md +241 -0
- data/lib/kabk/adapters/base.rb +45 -0
- data/lib/kabk/adapters/sequel_adapter.rb +125 -0
- data/lib/kabk/concurrency.rb +30 -0
- data/lib/kabk/errors.rb +62 -0
- data/lib/kabk/export_handler.rb +43 -0
- data/lib/kabk/field.rb +97 -0
- data/lib/kabk/query_builder.rb +72 -0
- data/lib/kabk/registry.rb +41 -0
- data/lib/kabk/relation_hydrator.rb +107 -0
- data/lib/kabk/resource.rb +88 -0
- data/lib/kabk/resource_builder.rb +93 -0
- data/lib/kabk/rest_engine.rb +84 -0
- data/lib/kabk/schema_renderer.rb +69 -0
- data/lib/kabk/upload_handler.rb +24 -0
- data/lib/kabk/validator.rb +64 -0
- data/lib/kabk/version.rb +6 -0
- data/lib/kabk.rb +51 -0
- metadata +193 -0
|
@@ -0,0 +1,380 @@
|
|
|
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
|
+
— 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> »
|
|
42
|
+
<span class='title'><span class='object_link'><a href="../Kabk.html" title="Kabk (module)">Kabk</a></span></span>
|
|
43
|
+
»
|
|
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="#validate_and_sanitize!-class_method" title="validate_and_sanitize! (class method)">.<strong>validate_and_sanitize!</strong>(resource, params, is_update: false) ⇒ Hash </a>
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
</span>
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
<span class="summary_desc"><div class='inline'><p>Sanitizes input parameters against defined fields and validates them.</p></div></span>
|
|
147
|
+
|
|
148
|
+
</li>
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
</ul>
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
|
|
157
|
+
<div id="class_method_details" class="method_details_list">
|
|
158
|
+
<h2>Class Method Details</h2>
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
<div class="method_details first">
|
|
162
|
+
<h3 class="signature first" id="validate_and_sanitize!-class_method">
|
|
163
|
+
|
|
164
|
+
.<strong>validate_and_sanitize!</strong>(resource, params, is_update: false) ⇒ <tt>Hash</tt>
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
</h3><div class="docstring">
|
|
171
|
+
<div class="discussion">
|
|
172
|
+
<p>Sanitizes input parameters against defined fields and validates them</p>
|
|
173
|
+
|
|
174
|
+
</div>
|
|
175
|
+
</div>
|
|
176
|
+
<div class="tags">
|
|
177
|
+
<p class="tag_title">Parameters:</p>
|
|
178
|
+
<ul class="param">
|
|
179
|
+
|
|
180
|
+
<li>
|
|
181
|
+
|
|
182
|
+
<span class='name'>resource</span>
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
<span class='type'>(<tt><span class='object_link'><a href="Resource.html" title="Kabk::Resource (class)">Kabk::Resource</a></span></tt>)</span>
|
|
186
|
+
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
</li>
|
|
190
|
+
|
|
191
|
+
<li>
|
|
192
|
+
|
|
193
|
+
<span class='name'>params</span>
|
|
194
|
+
|
|
195
|
+
|
|
196
|
+
<span class='type'>(<tt>Hash</tt>)</span>
|
|
197
|
+
|
|
198
|
+
|
|
199
|
+
|
|
200
|
+
—
|
|
201
|
+
<div class='inline'><p>Request payload</p></div>
|
|
202
|
+
|
|
203
|
+
</li>
|
|
204
|
+
|
|
205
|
+
<li>
|
|
206
|
+
|
|
207
|
+
<span class='name'>is_update</span>
|
|
208
|
+
|
|
209
|
+
|
|
210
|
+
<span class='type'>(<tt>Boolean</tt>)</span>
|
|
211
|
+
|
|
212
|
+
|
|
213
|
+
<em class="default">(defaults to: <tt>false</tt>)</em>
|
|
214
|
+
|
|
215
|
+
|
|
216
|
+
—
|
|
217
|
+
<div class='inline'><p>Is this a PUT/update request?</p></div>
|
|
218
|
+
|
|
219
|
+
</li>
|
|
220
|
+
|
|
221
|
+
</ul>
|
|
222
|
+
|
|
223
|
+
<p class="tag_title">Returns:</p>
|
|
224
|
+
<ul class="return">
|
|
225
|
+
|
|
226
|
+
<li>
|
|
227
|
+
|
|
228
|
+
|
|
229
|
+
<span class='type'>(<tt>Hash</tt>)</span>
|
|
230
|
+
|
|
231
|
+
|
|
232
|
+
|
|
233
|
+
—
|
|
234
|
+
<div class='inline'><p>Sanitized parameters ready for Sequel</p></div>
|
|
235
|
+
|
|
236
|
+
</li>
|
|
237
|
+
|
|
238
|
+
</ul>
|
|
239
|
+
<p class="tag_title">Raises:</p>
|
|
240
|
+
<ul class="raise">
|
|
241
|
+
|
|
242
|
+
<li>
|
|
243
|
+
|
|
244
|
+
|
|
245
|
+
<span class='type'>(<tt><span class='object_link'><a href="ValidationError.html" title="Kabk::ValidationError (class)">ValidationError</a></span></tt>)</span>
|
|
246
|
+
|
|
247
|
+
|
|
248
|
+
|
|
249
|
+
</li>
|
|
250
|
+
|
|
251
|
+
</ul>
|
|
252
|
+
|
|
253
|
+
</div><table class="source_code">
|
|
254
|
+
<tr>
|
|
255
|
+
<td>
|
|
256
|
+
<pre class="lines">
|
|
257
|
+
|
|
258
|
+
|
|
259
|
+
13
|
|
260
|
+
14
|
|
261
|
+
15
|
|
262
|
+
16
|
|
263
|
+
17
|
|
264
|
+
18
|
|
265
|
+
19
|
|
266
|
+
20
|
|
267
|
+
21
|
|
268
|
+
22
|
|
269
|
+
23
|
|
270
|
+
24
|
|
271
|
+
25
|
|
272
|
+
26
|
|
273
|
+
27
|
|
274
|
+
28
|
|
275
|
+
29
|
|
276
|
+
30
|
|
277
|
+
31
|
|
278
|
+
32
|
|
279
|
+
33
|
|
280
|
+
34
|
|
281
|
+
35
|
|
282
|
+
36
|
|
283
|
+
37
|
|
284
|
+
38
|
|
285
|
+
39
|
|
286
|
+
40
|
|
287
|
+
41
|
|
288
|
+
42
|
|
289
|
+
43
|
|
290
|
+
44
|
|
291
|
+
45
|
|
292
|
+
46
|
|
293
|
+
47
|
|
294
|
+
48
|
|
295
|
+
49
|
|
296
|
+
50
|
|
297
|
+
51
|
|
298
|
+
52
|
|
299
|
+
53
|
|
300
|
+
54
|
|
301
|
+
55
|
|
302
|
+
56
|
|
303
|
+
57
|
|
304
|
+
58
|
|
305
|
+
59
|
|
306
|
+
60
|
|
307
|
+
61
|
|
308
|
+
62</pre>
|
|
309
|
+
</td>
|
|
310
|
+
<td>
|
|
311
|
+
<pre class="code"><span class="info file"># File 'lib/kabk/validator.rb', line 13</span>
|
|
312
|
+
|
|
313
|
+
<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>
|
|
314
|
+
<span class='id identifier rubyid_sanitized'>sanitized</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
|
|
315
|
+
<span class='id identifier rubyid_errors'>errors</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
|
|
316
|
+
|
|
317
|
+
<span class='comment'># Iterate through all non-readonly fields defined in the schema
|
|
318
|
+
</span> <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>
|
|
319
|
+
<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>
|
|
320
|
+
|
|
321
|
+
<span class='comment'># Validate required fields, ignoring absent fields on update.
|
|
322
|
+
</span>
|
|
323
|
+
<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>
|
|
324
|
+
<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>
|
|
325
|
+
<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>
|
|
326
|
+
<span class='id identifier rubyid_value'>value</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>
|
|
327
|
+
|
|
328
|
+
<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> <span class='op'>&&</span> <span class='op'>!</span><span class='id identifier rubyid_has_key'>has_key</span> <span class='op'>&&</span> <span class='op'>!</span><span class='id identifier rubyid_is_update'>is_update</span>
|
|
329
|
+
<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='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>This field is required</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span>
|
|
330
|
+
<span class='kw'>next</span>
|
|
331
|
+
<span class='kw'>end</span>
|
|
332
|
+
|
|
333
|
+
<span class='kw'>next</span> <span class='kw'>unless</span> <span class='id identifier rubyid_has_key'>has_key</span>
|
|
334
|
+
|
|
335
|
+
<span class='kw'>if</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>
|
|
336
|
+
<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>
|
|
337
|
+
<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='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>This field is required</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span>
|
|
338
|
+
<span class='kw'>end</span>
|
|
339
|
+
<span class='kw'>end</span>
|
|
340
|
+
|
|
341
|
+
<span class='comment'># Validate min/max length
|
|
342
|
+
</span> <span class='kw'>if</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='id identifier rubyid_field'>field</span><span class='period'>.</span><span class='id identifier rubyid_type'>type</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>string</span><span class='tstring_end'>"</span></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'>String</span><span class='rparen'>)</span>
|
|
343
|
+
<span class='id identifier rubyid_min_len'>min_len</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='lbracket'>[</span><span class='symbol'>:min_length</span><span class='rbracket'>]</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='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>min_length</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span>
|
|
344
|
+
<span class='id identifier rubyid_max_len'>max_len</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='lbracket'>[</span><span class='symbol'>:max_length</span><span class='rbracket'>]</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='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>max_length</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span>
|
|
345
|
+
|
|
346
|
+
<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='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</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'>"</span></span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='id identifier rubyid_min_len'>min_len</span> <span class='op'>&&</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span> <span class='op'><</span> <span class='id identifier rubyid_min_len'>min_len</span>
|
|
347
|
+
<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='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</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'>"</span></span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='id identifier rubyid_max_len'>max_len</span> <span class='op'>&&</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span> <span class='op'>></span> <span class='id identifier rubyid_max_len'>max_len</span>
|
|
348
|
+
<span class='kw'>end</span>
|
|
349
|
+
|
|
350
|
+
<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>
|
|
351
|
+
<span class='kw'>end</span>
|
|
352
|
+
|
|
353
|
+
<span class='comment'># Ensure the concurrency field is included for OCC validation.
|
|
354
|
+
</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>
|
|
355
|
+
<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>
|
|
356
|
+
<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>
|
|
357
|
+
<span class='kw'>end</span>
|
|
358
|
+
|
|
359
|
+
<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>
|
|
360
|
+
|
|
361
|
+
<span class='id identifier rubyid_sanitized'>sanitized</span>
|
|
362
|
+
<span class='kw'>end</span></pre>
|
|
363
|
+
</td>
|
|
364
|
+
</tr>
|
|
365
|
+
</table>
|
|
366
|
+
</div>
|
|
367
|
+
|
|
368
|
+
</div>
|
|
369
|
+
|
|
370
|
+
</div>
|
|
371
|
+
|
|
372
|
+
<div id="footer">
|
|
373
|
+
Generated on Tue Aug 11 21:17:07 2026 by
|
|
374
|
+
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
375
|
+
0.9.45 (ruby-4.0.6).
|
|
376
|
+
</div>
|
|
377
|
+
|
|
378
|
+
</div>
|
|
379
|
+
</body>
|
|
380
|
+
</html>
|