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.

Files changed (67) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +27 -0
  3. data/Gemfile +6 -0
  4. data/Gemfile.lock +108 -0
  5. data/Kabk_logo.svg +33 -0
  6. data/LICENSE +21 -0
  7. data/README.md +101 -0
  8. data/doc/Kabk/Adapters/Base.html +854 -0
  9. data/doc/Kabk/Adapters/SequelAdapter.html +948 -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 +225 -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 +225 -0
  20. data/doc/Kabk/InvalidFieldError.html +136 -0
  21. data/doc/Kabk/InvalidOldPasswordError.html +225 -0
  22. data/doc/Kabk/NotFoundError.html +225 -0
  23. data/doc/Kabk/QueryBuilder.html +551 -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 +879 -0
  29. data/doc/Kabk/SchemaRenderer.html +318 -0
  30. data/doc/Kabk/UnauthorizedError.html +225 -0
  31. data/doc/Kabk/UploadHandler.html +308 -0
  32. data/doc/Kabk/ValidationError.html +225 -0
  33. data/doc/Kabk/Validator.html +380 -0
  34. data/doc/Kabk.html +330 -0
  35. data/doc/_index.html +376 -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 +149 -0
  41. data/doc/file_list.html +59 -0
  42. data/doc/frames.html +22 -0
  43. data/doc/index.html +149 -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 +910 -0
  48. data/doc/top-level-namespace.html +112 -0
  49. data/docs/API_REFERENCE.md +241 -0
  50. data/lib/kabk/adapters/base.rb +45 -0
  51. data/lib/kabk/adapters/sequel_adapter.rb +125 -0
  52. data/lib/kabk/concurrency.rb +30 -0
  53. data/lib/kabk/errors.rb +62 -0
  54. data/lib/kabk/export_handler.rb +43 -0
  55. data/lib/kabk/field.rb +97 -0
  56. data/lib/kabk/query_builder.rb +72 -0
  57. data/lib/kabk/registry.rb +41 -0
  58. data/lib/kabk/relation_hydrator.rb +107 -0
  59. data/lib/kabk/resource.rb +88 -0
  60. data/lib/kabk/resource_builder.rb +93 -0
  61. data/lib/kabk/rest_engine.rb +84 -0
  62. data/lib/kabk/schema_renderer.rb +69 -0
  63. data/lib/kabk/upload_handler.rb +24 -0
  64. data/lib/kabk/validator.rb +64 -0
  65. data/lib/kabk/version.rb +6 -0
  66. data/lib/kabk.rb +51 -0
  67. metadata +193 -0
@@ -0,0 +1,1986 @@
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::Resource
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::Resource";
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 (R)</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">Resource</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::Resource
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::Resource</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/resource.rb
100
+ </dd>
101
+ </dl>
102
+
103
+ </div>
104
+
105
+ <h2>Overview</h2><div class="docstring">
106
+ <div class="discussion">
107
+ <p>Metadata value object for a registered resource</p>
108
+
109
+ </div>
110
+ </div>
111
+ <div class="tags">
112
+
113
+
114
+ </div>
115
+
116
+
117
+
118
+ <h2>Instance Attribute Summary <small><a href="#" class="summary_toggle">collapse</a></small></h2>
119
+ <ul class="summary">
120
+
121
+ <li class="public ">
122
+ <span class="summary_signature">
123
+
124
+ <a href="#adapter-instance_method" title="#adapter (instance method)">#<strong>adapter</strong> &#x21d2; Kabk::Adapters::Base </a>
125
+
126
+
127
+
128
+ </span>
129
+
130
+
131
+
132
+
133
+
134
+
135
+
136
+
137
+
138
+
139
+
140
+
141
+ <span class="summary_desc"><div class='inline'><p>The adapter instance for this resource.</p></div></span>
142
+
143
+ </li>
144
+
145
+
146
+ <li class="public ">
147
+ <span class="summary_signature">
148
+
149
+ <a href="#api_path-instance_method" title="#api_path (instance method)">#<strong>api_path</strong> &#x21d2; String </a>
150
+
151
+
152
+
153
+ </span>
154
+
155
+
156
+
157
+
158
+
159
+
160
+
161
+
162
+
163
+
164
+
165
+
166
+ <span class="summary_desc"><div class='inline'><p>The base API path where the resource is mounted (e.g., &quot;/api/admin/news&quot;).</p></div></span>
167
+
168
+ </li>
169
+
170
+
171
+ <li class="public ">
172
+ <span class="summary_signature">
173
+
174
+ <a href="#audit_fields-instance_method" title="#audit_fields (instance method)">#<strong>audit_fields</strong> &#x21d2; Array&lt;String&gt; </a>
175
+
176
+
177
+
178
+ </span>
179
+
180
+
181
+
182
+
183
+
184
+
185
+
186
+
187
+
188
+
189
+
190
+
191
+ <span class="summary_desc"><div class='inline'><p>Configures standard audit fields (created_at, updated_at).</p></div></span>
192
+
193
+ </li>
194
+
195
+
196
+ <li class="public ">
197
+ <span class="summary_signature">
198
+
199
+ <a href="#concurrency_field-instance_method" title="#concurrency_field (instance method)">#<strong>concurrency_field</strong> &#x21d2; String </a>
200
+
201
+
202
+
203
+ </span>
204
+
205
+
206
+
207
+
208
+
209
+
210
+
211
+
212
+
213
+
214
+
215
+
216
+ <span class="summary_desc"><div class='inline'><p>The field used for Optimistic Concurrency Control (OCC), usually &quot;updated_at&quot;.</p></div></span>
217
+
218
+ </li>
219
+
220
+
221
+ <li class="public ">
222
+ <span class="summary_signature">
223
+
224
+ <a href="#default_sort-instance_method" title="#default_sort (instance method)">#<strong>default_sort</strong> &#x21d2; String </a>
225
+
226
+
227
+
228
+ </span>
229
+
230
+
231
+
232
+
233
+
234
+
235
+
236
+
237
+
238
+
239
+
240
+
241
+ <span class="summary_desc"><div class='inline'><p>The default sort column and direction (e.g., &quot;-created_at&quot;).</p></div></span>
242
+
243
+ </li>
244
+
245
+
246
+ <li class="public ">
247
+ <span class="summary_signature">
248
+
249
+ <a href="#display_in_sidebar-instance_method" title="#display_in_sidebar (instance method)">#<strong>display_in_sidebar</strong> &#x21d2; Boolean </a>
250
+
251
+
252
+
253
+ </span>
254
+
255
+
256
+
257
+
258
+
259
+
260
+
261
+
262
+
263
+
264
+
265
+
266
+ <span class="summary_desc"><div class='inline'><p>Whether to display this resource in the admin sidebar menu.</p></div></span>
267
+
268
+ </li>
269
+
270
+
271
+ <li class="public ">
272
+ <span class="summary_signature">
273
+
274
+ <a href="#fields-instance_method" title="#fields (instance method)">#<strong>fields</strong> &#x21d2; Array&lt;Kabk::Field&gt; </a>
275
+
276
+
277
+
278
+ </span>
279
+
280
+
281
+
282
+
283
+
284
+
285
+
286
+
287
+
288
+
289
+
290
+
291
+ <span class="summary_desc"><div class='inline'><p>The array of registered field objects.</p></div></span>
292
+
293
+ </li>
294
+
295
+
296
+ <li class="public ">
297
+ <span class="summary_signature">
298
+
299
+ <a href="#filterable_fields-instance_method" title="#filterable_fields (instance method)">#<strong>filterable_fields</strong> &#x21d2; Array&lt;String&gt; </a>
300
+
301
+
302
+
303
+ </span>
304
+
305
+
306
+
307
+
308
+
309
+
310
+
311
+
312
+
313
+
314
+
315
+
316
+ <span class="summary_desc"><div class='inline'><p>List of field names that can be filtered on.</p></div></span>
317
+
318
+ </li>
319
+
320
+
321
+ <li class="public ">
322
+ <span class="summary_signature">
323
+
324
+ <a href="#group-instance_method" title="#group (instance method)">#<strong>group</strong> &#x21d2; String </a>
325
+
326
+
327
+
328
+ </span>
329
+
330
+
331
+
332
+
333
+
334
+
335
+
336
+
337
+
338
+
339
+
340
+
341
+ <span class="summary_desc"><div class='inline'><p>The menu group category for this resource.</p></div></span>
342
+
343
+ </li>
344
+
345
+
346
+ <li class="public ">
347
+ <span class="summary_signature">
348
+
349
+ <a href="#hooks-instance_method" title="#hooks (instance method)">#<strong>hooks</strong> &#x21d2; Hash </a>
350
+
351
+
352
+
353
+ </span>
354
+
355
+
356
+
357
+
358
+
359
+
360
+
361
+
362
+
363
+
364
+
365
+
366
+ <span class="summary_desc"><div class='inline'><p>Configured lifecycle hooks.</p></div></span>
367
+
368
+ </li>
369
+
370
+
371
+ <li class="public ">
372
+ <span class="summary_signature">
373
+
374
+ <a href="#icon-instance_method" title="#icon (instance method)">#<strong>icon</strong> &#x21d2; String </a>
375
+
376
+
377
+
378
+ </span>
379
+
380
+
381
+
382
+
383
+
384
+
385
+
386
+
387
+
388
+
389
+
390
+
391
+ <span class="summary_desc"><div class='inline'><p>The identifier of the icon to render in the sidebar.</p></div></span>
392
+
393
+ </li>
394
+
395
+
396
+ <li class="public ">
397
+ <span class="summary_signature">
398
+
399
+ <a href="#model_class-instance_method" title="#model_class (instance method)">#<strong>model_class</strong> &#x21d2; Class </a>
400
+
401
+
402
+
403
+ </span>
404
+
405
+
406
+
407
+
408
+
409
+
410
+
411
+
412
+
413
+
414
+
415
+
416
+ <span class="summary_desc"><div class='inline'><p>The underlying ORM Model class (e.g., Sequel::Model).</p></div></span>
417
+
418
+ </li>
419
+
420
+
421
+ <li class="public ">
422
+ <span class="summary_signature">
423
+
424
+ <a href="#name-instance_method" title="#name (instance method)">#<strong>name</strong> &#x21d2; String </a>
425
+
426
+
427
+
428
+ </span>
429
+
430
+
431
+
432
+
433
+
434
+
435
+
436
+
437
+
438
+
439
+
440
+
441
+ <span class="summary_desc"><div class='inline'><p>The technical singular name of the resource (e.g., &quot;news_item&quot;).</p></div></span>
442
+
443
+ </li>
444
+
445
+
446
+ <li class="public ">
447
+ <span class="summary_signature">
448
+
449
+ <a href="#order-instance_method" title="#order (instance method)">#<strong>order</strong> &#x21d2; Integer </a>
450
+
451
+
452
+
453
+ </span>
454
+
455
+
456
+
457
+
458
+
459
+
460
+
461
+
462
+
463
+
464
+
465
+
466
+ <span class="summary_desc"><div class='inline'><p>The explicit ordering weight in the sidebar.</p></div></span>
467
+
468
+ </li>
469
+
470
+
471
+ <li class="public ">
472
+ <span class="summary_signature">
473
+
474
+ <a href="#per_page_default-instance_method" title="#per_page_default (instance method)">#<strong>per_page_default</strong> &#x21d2; Integer </a>
475
+
476
+
477
+
478
+ </span>
479
+
480
+
481
+
482
+
483
+
484
+
485
+
486
+
487
+
488
+
489
+
490
+
491
+ <span class="summary_desc"><div class='inline'><p>Default number of records per page for pagination.</p></div></span>
492
+
493
+ </li>
494
+
495
+
496
+ <li class="public ">
497
+ <span class="summary_signature">
498
+
499
+ <a href="#permissions-instance_method" title="#permissions (instance method)">#<strong>permissions</strong> &#x21d2; Hash </a>
500
+
501
+
502
+
503
+ </span>
504
+
505
+
506
+
507
+
508
+
509
+
510
+
511
+
512
+
513
+
514
+
515
+
516
+ <span class="summary_desc"><div class='inline'><p>The baseline CRUD permissions (can_view, can_edit, etc).</p></div></span>
517
+
518
+ </li>
519
+
520
+
521
+ <li class="public ">
522
+ <span class="summary_signature">
523
+
524
+ <a href="#plural_name-instance_method" title="#plural_name (instance method)">#<strong>plural_name</strong> &#x21d2; String </a>
525
+
526
+
527
+
528
+ </span>
529
+
530
+
531
+
532
+
533
+
534
+
535
+
536
+
537
+
538
+
539
+
540
+
541
+ <span class="summary_desc"><div class='inline'><p>The plural name used in routing (e.g., &quot;news&quot;).</p></div></span>
542
+
543
+ </li>
544
+
545
+
546
+ <li class="public ">
547
+ <span class="summary_signature">
548
+
549
+ <a href="#searchable_fields-instance_method" title="#searchable_fields (instance method)">#<strong>searchable_fields</strong> &#x21d2; Array&lt;String&gt; </a>
550
+
551
+
552
+
553
+ </span>
554
+
555
+
556
+
557
+
558
+
559
+
560
+
561
+
562
+
563
+
564
+
565
+
566
+ <span class="summary_desc"><div class='inline'><p>List of field names that support full-text search.</p></div></span>
567
+
568
+ </li>
569
+
570
+
571
+ <li class="public ">
572
+ <span class="summary_signature">
573
+
574
+ <a href="#sortable_fields-instance_method" title="#sortable_fields (instance method)">#<strong>sortable_fields</strong> &#x21d2; Array&lt;String&gt; </a>
575
+
576
+
577
+
578
+ </span>
579
+
580
+
581
+
582
+
583
+
584
+
585
+
586
+
587
+
588
+
589
+
590
+
591
+ <span class="summary_desc"><div class='inline'><p>List of field names that can be sorted by.</p></div></span>
592
+
593
+ </li>
594
+
595
+
596
+ <li class="public ">
597
+ <span class="summary_signature">
598
+
599
+ <a href="#title-instance_method" title="#title (instance method)">#<strong>title</strong> &#x21d2; Hash </a>
600
+
601
+
602
+
603
+ </span>
604
+
605
+
606
+
607
+
608
+
609
+
610
+
611
+
612
+
613
+
614
+
615
+
616
+ <span class="summary_desc"><div class='inline'><p>Localization hash for the resource title (e.g., { fa: &quot;اخبار&quot;, en: &quot;News&quot; }).</p></div></span>
617
+
618
+ </li>
619
+
620
+
621
+ </ul>
622
+
623
+
624
+
625
+
626
+
627
+ <h2>
628
+ Instance Method Summary
629
+ <small><a href="#" class="summary_toggle">collapse</a></small>
630
+ </h2>
631
+
632
+ <ul class="summary">
633
+
634
+ <li class="public ">
635
+ <span class="summary_signature">
636
+
637
+ <a href="#initialize-instance_method" title="#initialize (instance method)">#<strong>initialize</strong>(name:, model_class:) &#x21d2; Resource </a>
638
+
639
+
640
+
641
+ </span>
642
+
643
+
644
+ <span class="note title constructor">constructor</span>
645
+
646
+
647
+
648
+
649
+
650
+
651
+
652
+
653
+ <span class="summary_desc"><div class='inline'><p>A new instance of Resource.</p></div></span>
654
+
655
+ </li>
656
+
657
+
658
+ <li class="public ">
659
+ <span class="summary_signature">
660
+
661
+ <a href="#to_h-instance_method" title="#to_h (instance method)">#<strong>to_h</strong> &#x21d2; Object </a>
662
+
663
+
664
+
665
+ </span>
666
+
667
+
668
+
669
+
670
+
671
+
672
+
673
+
674
+
675
+ <span class="summary_desc"><div class='inline'></div></span>
676
+
677
+ </li>
678
+
679
+
680
+ </ul>
681
+
682
+
683
+
684
+ <div id="constructor_details" class="method_details_list">
685
+ <h2>Constructor Details</h2>
686
+
687
+ <div class="method_details first">
688
+ <h3 class="signature first" id="initialize-instance_method">
689
+
690
+ #<strong>initialize</strong>(name:, model_class:) &#x21d2; <tt><span class='object_link'><a href="" title="Kabk::Resource (class)">Resource</a></span></tt>
691
+
692
+
693
+
694
+
695
+
696
+ </h3><div class="docstring">
697
+ <div class="discussion">
698
+ <p>Returns a new instance of Resource.</p>
699
+
700
+ </div>
701
+ </div>
702
+ <div class="tags">
703
+
704
+
705
+ </div><table class="source_code">
706
+ <tr>
707
+ <td>
708
+ <pre class="lines">
709
+
710
+
711
+ 47
712
+ 48
713
+ 49
714
+ 50
715
+ 51
716
+ 52
717
+ 53
718
+ 54
719
+ 55
720
+ 56
721
+ 57
722
+ 58
723
+ 59
724
+ 60
725
+ 61</pre>
726
+ </td>
727
+ <td>
728
+ <pre class="code"><span class="info file"># File 'lib/kabk/resource.rb', line 47</span>
729
+
730
+ <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='label'>name:</span><span class='comma'>,</span> <span class='label'>model_class:</span><span class='rparen'>)</span>
731
+ <span class='ivar'>@name</span> <span class='op'>=</span> <span class='id identifier rubyid_name'>name</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
732
+ <span class='ivar'>@model_class</span> <span class='op'>=</span> <span class='id identifier rubyid_model_class'>model_class</span>
733
+ <span class='ivar'>@fields</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
734
+ <span class='ivar'>@hooks</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
735
+ <span class='ivar'>@display_in_sidebar</span> <span class='op'>=</span> <span class='kw'>true</span>
736
+ <span class='ivar'>@per_page_default</span> <span class='op'>=</span> <span class='int'>15</span>
737
+ <span class='ivar'>@permissions</span> <span class='op'>=</span> <span class='lbrace'>{</span>
738
+ <span class='label'>can_view:</span> <span class='kw'>true</span><span class='comma'>,</span>
739
+ <span class='label'>can_insert:</span> <span class='kw'>true</span><span class='comma'>,</span>
740
+ <span class='label'>can_edit:</span> <span class='kw'>true</span><span class='comma'>,</span>
741
+ <span class='label'>can_delete:</span> <span class='kw'>true</span><span class='comma'>,</span>
742
+ <span class='label'>can_export:</span> <span class='kw'>true</span>
743
+ <span class='rbrace'>}</span>
744
+ <span class='kw'>end</span></pre>
745
+ </td>
746
+ </tr>
747
+ </table>
748
+ </div>
749
+
750
+ </div>
751
+
752
+ <div id="instance_attr_details" class="attr_details">
753
+ <h2>Instance Attribute Details</h2>
754
+
755
+
756
+ <span id="adapter=-instance_method"></span>
757
+ <div class="method_details first">
758
+ <h3 class="signature first" id="adapter-instance_method">
759
+
760
+ #<strong>adapter</strong> &#x21d2; <tt><span class='object_link'><a href="Adapters/Base.html" title="Kabk::Adapters::Base (class)">Kabk::Adapters::Base</a></span></tt>
761
+
762
+
763
+
764
+
765
+
766
+ </h3><div class="docstring">
767
+ <div class="discussion">
768
+ <p>Returns The adapter instance for this resource.</p>
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><span class='object_link'><a href="Adapters/Base.html" title="Kabk::Adapters::Base (class)">Kabk::Adapters::Base</a></span></tt>)</span>
781
+
782
+
783
+
784
+ &mdash;
785
+ <div class='inline'><p>The adapter instance for this resource.</p></div>
786
+
787
+ </li>
788
+
789
+ </ul>
790
+
791
+ </div><table class="source_code">
792
+ <tr>
793
+ <td>
794
+ <pre class="lines">
795
+
796
+
797
+ 43
798
+ 44
799
+ 45</pre>
800
+ </td>
801
+ <td>
802
+ <pre class="code"><span class="info file"># File 'lib/kabk/resource.rb', line 43</span>
803
+
804
+ <span class='kw'>def</span> <span class='id identifier rubyid_adapter'>adapter</span>
805
+ <span class='ivar'>@adapter</span>
806
+ <span class='kw'>end</span></pre>
807
+ </td>
808
+ </tr>
809
+ </table>
810
+ </div>
811
+
812
+
813
+ <span id="api_path=-instance_method"></span>
814
+ <div class="method_details ">
815
+ <h3 class="signature " id="api_path-instance_method">
816
+
817
+ #<strong>api_path</strong> &#x21d2; <tt>String</tt>
818
+
819
+
820
+
821
+
822
+
823
+ </h3><div class="docstring">
824
+ <div class="discussion">
825
+ <p>Returns The base API path where the resource is mounted (e.g., &quot;/api/admin/news&quot;).</p>
826
+
827
+ </div>
828
+ </div>
829
+ <div class="tags">
830
+
831
+ <p class="tag_title">Returns:</p>
832
+ <ul class="return">
833
+
834
+ <li>
835
+
836
+
837
+ <span class='type'>(<tt>String</tt>)</span>
838
+
839
+
840
+
841
+ &mdash;
842
+ <div class='inline'><p>The base API path where the resource is mounted (e.g., &quot;/api/admin/news&quot;).</p></div>
843
+
844
+ </li>
845
+
846
+ </ul>
847
+
848
+ </div><table class="source_code">
849
+ <tr>
850
+ <td>
851
+ <pre class="lines">
852
+
853
+
854
+ 15
855
+ 16
856
+ 17</pre>
857
+ </td>
858
+ <td>
859
+ <pre class="code"><span class="info file"># File 'lib/kabk/resource.rb', line 15</span>
860
+
861
+ <span class='kw'>def</span> <span class='id identifier rubyid_api_path'>api_path</span>
862
+ <span class='ivar'>@api_path</span>
863
+ <span class='kw'>end</span></pre>
864
+ </td>
865
+ </tr>
866
+ </table>
867
+ </div>
868
+
869
+
870
+ <span id="audit_fields=-instance_method"></span>
871
+ <div class="method_details ">
872
+ <h3 class="signature " id="audit_fields-instance_method">
873
+
874
+ #<strong>audit_fields</strong> &#x21d2; <tt>Array&lt;String&gt;</tt>
875
+
876
+
877
+
878
+
879
+
880
+ </h3><div class="docstring">
881
+ <div class="discussion">
882
+ <p>Returns Configures standard audit fields (created_at, updated_at).</p>
883
+
884
+ </div>
885
+ </div>
886
+ <div class="tags">
887
+
888
+ <p class="tag_title">Returns:</p>
889
+ <ul class="return">
890
+
891
+ <li>
892
+
893
+
894
+ <span class='type'>(<tt>Array&lt;String&gt;</tt>)</span>
895
+
896
+
897
+
898
+ &mdash;
899
+ <div class='inline'><p>Configures standard audit fields (created_at, updated_at).</p></div>
900
+
901
+ </li>
902
+
903
+ </ul>
904
+
905
+ </div><table class="source_code">
906
+ <tr>
907
+ <td>
908
+ <pre class="lines">
909
+
910
+
911
+ 35
912
+ 36
913
+ 37</pre>
914
+ </td>
915
+ <td>
916
+ <pre class="code"><span class="info file"># File 'lib/kabk/resource.rb', line 35</span>
917
+
918
+ <span class='kw'>def</span> <span class='id identifier rubyid_audit_fields'>audit_fields</span>
919
+ <span class='ivar'>@audit_fields</span>
920
+ <span class='kw'>end</span></pre>
921
+ </td>
922
+ </tr>
923
+ </table>
924
+ </div>
925
+
926
+
927
+ <span id="concurrency_field=-instance_method"></span>
928
+ <div class="method_details ">
929
+ <h3 class="signature " id="concurrency_field-instance_method">
930
+
931
+ #<strong>concurrency_field</strong> &#x21d2; <tt>String</tt>
932
+
933
+
934
+
935
+
936
+
937
+ </h3><div class="docstring">
938
+ <div class="discussion">
939
+ <p>Returns The field used for Optimistic Concurrency Control (OCC), usually &quot;updated_at&quot;.</p>
940
+
941
+ </div>
942
+ </div>
943
+ <div class="tags">
944
+
945
+ <p class="tag_title">Returns:</p>
946
+ <ul class="return">
947
+
948
+ <li>
949
+
950
+
951
+ <span class='type'>(<tt>String</tt>)</span>
952
+
953
+
954
+
955
+ &mdash;
956
+ <div class='inline'><p>The field used for Optimistic Concurrency Control (OCC), usually &quot;updated_at&quot;.</p></div>
957
+
958
+ </li>
959
+
960
+ </ul>
961
+
962
+ </div><table class="source_code">
963
+ <tr>
964
+ <td>
965
+ <pre class="lines">
966
+
967
+
968
+ 33
969
+ 34
970
+ 35</pre>
971
+ </td>
972
+ <td>
973
+ <pre class="code"><span class="info file"># File 'lib/kabk/resource.rb', line 33</span>
974
+
975
+ <span class='kw'>def</span> <span class='id identifier rubyid_concurrency_field'>concurrency_field</span>
976
+ <span class='ivar'>@concurrency_field</span>
977
+ <span class='kw'>end</span></pre>
978
+ </td>
979
+ </tr>
980
+ </table>
981
+ </div>
982
+
983
+
984
+ <span id="default_sort=-instance_method"></span>
985
+ <div class="method_details ">
986
+ <h3 class="signature " id="default_sort-instance_method">
987
+
988
+ #<strong>default_sort</strong> &#x21d2; <tt>String</tt>
989
+
990
+
991
+
992
+
993
+
994
+ </h3><div class="docstring">
995
+ <div class="discussion">
996
+ <p>Returns The default sort column and direction (e.g., &quot;-created_at&quot;).</p>
997
+
998
+ </div>
999
+ </div>
1000
+ <div class="tags">
1001
+
1002
+ <p class="tag_title">Returns:</p>
1003
+ <ul class="return">
1004
+
1005
+ <li>
1006
+
1007
+
1008
+ <span class='type'>(<tt>String</tt>)</span>
1009
+
1010
+
1011
+
1012
+ &mdash;
1013
+ <div class='inline'><p>The default sort column and direction (e.g., &quot;-created_at&quot;).</p></div>
1014
+
1015
+ </li>
1016
+
1017
+ </ul>
1018
+
1019
+ </div><table class="source_code">
1020
+ <tr>
1021
+ <td>
1022
+ <pre class="lines">
1023
+
1024
+
1025
+ 23
1026
+ 24
1027
+ 25</pre>
1028
+ </td>
1029
+ <td>
1030
+ <pre class="code"><span class="info file"># File 'lib/kabk/resource.rb', line 23</span>
1031
+
1032
+ <span class='kw'>def</span> <span class='id identifier rubyid_default_sort'>default_sort</span>
1033
+ <span class='ivar'>@default_sort</span>
1034
+ <span class='kw'>end</span></pre>
1035
+ </td>
1036
+ </tr>
1037
+ </table>
1038
+ </div>
1039
+
1040
+
1041
+ <span id="display_in_sidebar=-instance_method"></span>
1042
+ <div class="method_details ">
1043
+ <h3 class="signature " id="display_in_sidebar-instance_method">
1044
+
1045
+ #<strong>display_in_sidebar</strong> &#x21d2; <tt>Boolean</tt>
1046
+
1047
+
1048
+
1049
+
1050
+
1051
+ </h3><div class="docstring">
1052
+ <div class="discussion">
1053
+ <p>Returns Whether to display this resource in the admin sidebar menu.</p>
1054
+
1055
+ </div>
1056
+ </div>
1057
+ <div class="tags">
1058
+
1059
+ <p class="tag_title">Returns:</p>
1060
+ <ul class="return">
1061
+
1062
+ <li>
1063
+
1064
+
1065
+ <span class='type'>(<tt>Boolean</tt>)</span>
1066
+
1067
+
1068
+
1069
+ &mdash;
1070
+ <div class='inline'><p>Whether to display this resource in the admin sidebar menu.</p></div>
1071
+
1072
+ </li>
1073
+
1074
+ </ul>
1075
+
1076
+ </div><table class="source_code">
1077
+ <tr>
1078
+ <td>
1079
+ <pre class="lines">
1080
+
1081
+
1082
+ 17
1083
+ 18
1084
+ 19</pre>
1085
+ </td>
1086
+ <td>
1087
+ <pre class="code"><span class="info file"># File 'lib/kabk/resource.rb', line 17</span>
1088
+
1089
+ <span class='kw'>def</span> <span class='id identifier rubyid_display_in_sidebar'>display_in_sidebar</span>
1090
+ <span class='ivar'>@display_in_sidebar</span>
1091
+ <span class='kw'>end</span></pre>
1092
+ </td>
1093
+ </tr>
1094
+ </table>
1095
+ </div>
1096
+
1097
+
1098
+ <span id="fields=-instance_method"></span>
1099
+ <div class="method_details ">
1100
+ <h3 class="signature " id="fields-instance_method">
1101
+
1102
+ #<strong>fields</strong> &#x21d2; <tt>Array&lt;<span class='object_link'><a href="Field.html" title="Kabk::Field (class)">Kabk::Field</a></span>&gt;</tt>
1103
+
1104
+
1105
+
1106
+
1107
+
1108
+ </h3><div class="docstring">
1109
+ <div class="discussion">
1110
+ <p>Returns The array of registered field objects.</p>
1111
+
1112
+ </div>
1113
+ </div>
1114
+ <div class="tags">
1115
+
1116
+ <p class="tag_title">Returns:</p>
1117
+ <ul class="return">
1118
+
1119
+ <li>
1120
+
1121
+
1122
+ <span class='type'>(<tt>Array&lt;<span class='object_link'><a href="Field.html" title="Kabk::Field (class)">Kabk::Field</a></span>&gt;</tt>)</span>
1123
+
1124
+
1125
+
1126
+ &mdash;
1127
+ <div class='inline'><p>The array of registered field objects.</p></div>
1128
+
1129
+ </li>
1130
+
1131
+ </ul>
1132
+
1133
+ </div><table class="source_code">
1134
+ <tr>
1135
+ <td>
1136
+ <pre class="lines">
1137
+
1138
+
1139
+ 39
1140
+ 40
1141
+ 41</pre>
1142
+ </td>
1143
+ <td>
1144
+ <pre class="code"><span class="info file"># File 'lib/kabk/resource.rb', line 39</span>
1145
+
1146
+ <span class='kw'>def</span> <span class='id identifier rubyid_fields'>fields</span>
1147
+ <span class='ivar'>@fields</span>
1148
+ <span class='kw'>end</span></pre>
1149
+ </td>
1150
+ </tr>
1151
+ </table>
1152
+ </div>
1153
+
1154
+
1155
+ <span id="filterable_fields=-instance_method"></span>
1156
+ <div class="method_details ">
1157
+ <h3 class="signature " id="filterable_fields-instance_method">
1158
+
1159
+ #<strong>filterable_fields</strong> &#x21d2; <tt>Array&lt;String&gt;</tt>
1160
+
1161
+
1162
+
1163
+
1164
+
1165
+ </h3><div class="docstring">
1166
+ <div class="discussion">
1167
+ <p>Returns List of field names that can be filtered on.</p>
1168
+
1169
+ </div>
1170
+ </div>
1171
+ <div class="tags">
1172
+
1173
+ <p class="tag_title">Returns:</p>
1174
+ <ul class="return">
1175
+
1176
+ <li>
1177
+
1178
+
1179
+ <span class='type'>(<tt>Array&lt;String&gt;</tt>)</span>
1180
+
1181
+
1182
+
1183
+ &mdash;
1184
+ <div class='inline'><p>List of field names that can be filtered on.</p></div>
1185
+
1186
+ </li>
1187
+
1188
+ </ul>
1189
+
1190
+ </div><table class="source_code">
1191
+ <tr>
1192
+ <td>
1193
+ <pre class="lines">
1194
+
1195
+
1196
+ 31
1197
+ 32
1198
+ 33</pre>
1199
+ </td>
1200
+ <td>
1201
+ <pre class="code"><span class="info file"># File 'lib/kabk/resource.rb', line 31</span>
1202
+
1203
+ <span class='kw'>def</span> <span class='id identifier rubyid_filterable_fields'>filterable_fields</span>
1204
+ <span class='ivar'>@filterable_fields</span>
1205
+ <span class='kw'>end</span></pre>
1206
+ </td>
1207
+ </tr>
1208
+ </table>
1209
+ </div>
1210
+
1211
+
1212
+ <span id="group=-instance_method"></span>
1213
+ <div class="method_details ">
1214
+ <h3 class="signature " id="group-instance_method">
1215
+
1216
+ #<strong>group</strong> &#x21d2; <tt>String</tt>
1217
+
1218
+
1219
+
1220
+
1221
+
1222
+ </h3><div class="docstring">
1223
+ <div class="discussion">
1224
+ <p>Returns The menu group category for this resource.</p>
1225
+
1226
+ </div>
1227
+ </div>
1228
+ <div class="tags">
1229
+
1230
+ <p class="tag_title">Returns:</p>
1231
+ <ul class="return">
1232
+
1233
+ <li>
1234
+
1235
+
1236
+ <span class='type'>(<tt>String</tt>)</span>
1237
+
1238
+
1239
+
1240
+ &mdash;
1241
+ <div class='inline'><p>The menu group category for this resource.</p></div>
1242
+
1243
+ </li>
1244
+
1245
+ </ul>
1246
+
1247
+ </div><table class="source_code">
1248
+ <tr>
1249
+ <td>
1250
+ <pre class="lines">
1251
+
1252
+
1253
+ 19
1254
+ 20
1255
+ 21</pre>
1256
+ </td>
1257
+ <td>
1258
+ <pre class="code"><span class="info file"># File 'lib/kabk/resource.rb', line 19</span>
1259
+
1260
+ <span class='kw'>def</span> <span class='id identifier rubyid_group'>group</span>
1261
+ <span class='ivar'>@group</span>
1262
+ <span class='kw'>end</span></pre>
1263
+ </td>
1264
+ </tr>
1265
+ </table>
1266
+ </div>
1267
+
1268
+
1269
+ <span id="hooks=-instance_method"></span>
1270
+ <div class="method_details ">
1271
+ <h3 class="signature " id="hooks-instance_method">
1272
+
1273
+ #<strong>hooks</strong> &#x21d2; <tt>Hash</tt>
1274
+
1275
+
1276
+
1277
+
1278
+
1279
+ </h3><div class="docstring">
1280
+ <div class="discussion">
1281
+ <p>Returns Configured lifecycle hooks.</p>
1282
+
1283
+ </div>
1284
+ </div>
1285
+ <div class="tags">
1286
+
1287
+ <p class="tag_title">Returns:</p>
1288
+ <ul class="return">
1289
+
1290
+ <li>
1291
+
1292
+
1293
+ <span class='type'>(<tt>Hash</tt>)</span>
1294
+
1295
+
1296
+
1297
+ &mdash;
1298
+ <div class='inline'><p>Configured lifecycle hooks.</p></div>
1299
+
1300
+ </li>
1301
+
1302
+ </ul>
1303
+
1304
+ </div><table class="source_code">
1305
+ <tr>
1306
+ <td>
1307
+ <pre class="lines">
1308
+
1309
+
1310
+ 45
1311
+ 46
1312
+ 47</pre>
1313
+ </td>
1314
+ <td>
1315
+ <pre class="code"><span class="info file"># File 'lib/kabk/resource.rb', line 45</span>
1316
+
1317
+ <span class='kw'>def</span> <span class='id identifier rubyid_hooks'>hooks</span>
1318
+ <span class='ivar'>@hooks</span>
1319
+ <span class='kw'>end</span></pre>
1320
+ </td>
1321
+ </tr>
1322
+ </table>
1323
+ </div>
1324
+
1325
+
1326
+ <span id="icon=-instance_method"></span>
1327
+ <div class="method_details ">
1328
+ <h3 class="signature " id="icon-instance_method">
1329
+
1330
+ #<strong>icon</strong> &#x21d2; <tt>String</tt>
1331
+
1332
+
1333
+
1334
+
1335
+
1336
+ </h3><div class="docstring">
1337
+ <div class="discussion">
1338
+ <p>Returns The identifier of the icon to render in the sidebar.</p>
1339
+
1340
+ </div>
1341
+ </div>
1342
+ <div class="tags">
1343
+
1344
+ <p class="tag_title">Returns:</p>
1345
+ <ul class="return">
1346
+
1347
+ <li>
1348
+
1349
+
1350
+ <span class='type'>(<tt>String</tt>)</span>
1351
+
1352
+
1353
+
1354
+ &mdash;
1355
+ <div class='inline'><p>The identifier of the icon to render in the sidebar.</p></div>
1356
+
1357
+ </li>
1358
+
1359
+ </ul>
1360
+
1361
+ </div><table class="source_code">
1362
+ <tr>
1363
+ <td>
1364
+ <pre class="lines">
1365
+
1366
+
1367
+ 13
1368
+ 14
1369
+ 15</pre>
1370
+ </td>
1371
+ <td>
1372
+ <pre class="code"><span class="info file"># File 'lib/kabk/resource.rb', line 13</span>
1373
+
1374
+ <span class='kw'>def</span> <span class='id identifier rubyid_icon'>icon</span>
1375
+ <span class='ivar'>@icon</span>
1376
+ <span class='kw'>end</span></pre>
1377
+ </td>
1378
+ </tr>
1379
+ </table>
1380
+ </div>
1381
+
1382
+
1383
+ <span id="model_class=-instance_method"></span>
1384
+ <div class="method_details ">
1385
+ <h3 class="signature " id="model_class-instance_method">
1386
+
1387
+ #<strong>model_class</strong> &#x21d2; <tt>Class</tt>
1388
+
1389
+
1390
+
1391
+
1392
+
1393
+ </h3><div class="docstring">
1394
+ <div class="discussion">
1395
+ <p>Returns The underlying ORM Model class (e.g., Sequel::Model).</p>
1396
+
1397
+ </div>
1398
+ </div>
1399
+ <div class="tags">
1400
+
1401
+ <p class="tag_title">Returns:</p>
1402
+ <ul class="return">
1403
+
1404
+ <li>
1405
+
1406
+
1407
+ <span class='type'>(<tt>Class</tt>)</span>
1408
+
1409
+
1410
+
1411
+ &mdash;
1412
+ <div class='inline'><p>The underlying ORM Model class (e.g., Sequel::Model).</p></div>
1413
+
1414
+ </li>
1415
+
1416
+ </ul>
1417
+
1418
+ </div><table class="source_code">
1419
+ <tr>
1420
+ <td>
1421
+ <pre class="lines">
1422
+
1423
+
1424
+ 41
1425
+ 42
1426
+ 43</pre>
1427
+ </td>
1428
+ <td>
1429
+ <pre class="code"><span class="info file"># File 'lib/kabk/resource.rb', line 41</span>
1430
+
1431
+ <span class='kw'>def</span> <span class='id identifier rubyid_model_class'>model_class</span>
1432
+ <span class='ivar'>@model_class</span>
1433
+ <span class='kw'>end</span></pre>
1434
+ </td>
1435
+ </tr>
1436
+ </table>
1437
+ </div>
1438
+
1439
+
1440
+ <span id="name=-instance_method"></span>
1441
+ <div class="method_details ">
1442
+ <h3 class="signature " id="name-instance_method">
1443
+
1444
+ #<strong>name</strong> &#x21d2; <tt>String</tt>
1445
+
1446
+
1447
+
1448
+
1449
+
1450
+ </h3><div class="docstring">
1451
+ <div class="discussion">
1452
+ <p>Returns The technical singular name of the resource (e.g., &quot;news_item&quot;).</p>
1453
+
1454
+ </div>
1455
+ </div>
1456
+ <div class="tags">
1457
+
1458
+ <p class="tag_title">Returns:</p>
1459
+ <ul class="return">
1460
+
1461
+ <li>
1462
+
1463
+
1464
+ <span class='type'>(<tt>String</tt>)</span>
1465
+
1466
+
1467
+
1468
+ &mdash;
1469
+ <div class='inline'><p>The technical singular name of the resource (e.g., &quot;news_item&quot;).</p></div>
1470
+
1471
+ </li>
1472
+
1473
+ </ul>
1474
+
1475
+ </div><table class="source_code">
1476
+ <tr>
1477
+ <td>
1478
+ <pre class="lines">
1479
+
1480
+
1481
+ 7
1482
+ 8
1483
+ 9</pre>
1484
+ </td>
1485
+ <td>
1486
+ <pre class="code"><span class="info file"># File 'lib/kabk/resource.rb', line 7</span>
1487
+
1488
+ <span class='kw'>def</span> <span class='id identifier rubyid_name'>name</span>
1489
+ <span class='ivar'>@name</span>
1490
+ <span class='kw'>end</span></pre>
1491
+ </td>
1492
+ </tr>
1493
+ </table>
1494
+ </div>
1495
+
1496
+
1497
+ <span id="order=-instance_method"></span>
1498
+ <div class="method_details ">
1499
+ <h3 class="signature " id="order-instance_method">
1500
+
1501
+ #<strong>order</strong> &#x21d2; <tt>Integer</tt>
1502
+
1503
+
1504
+
1505
+
1506
+
1507
+ </h3><div class="docstring">
1508
+ <div class="discussion">
1509
+ <p>Returns The explicit ordering weight in the sidebar.</p>
1510
+
1511
+ </div>
1512
+ </div>
1513
+ <div class="tags">
1514
+
1515
+ <p class="tag_title">Returns:</p>
1516
+ <ul class="return">
1517
+
1518
+ <li>
1519
+
1520
+
1521
+ <span class='type'>(<tt>Integer</tt>)</span>
1522
+
1523
+
1524
+
1525
+ &mdash;
1526
+ <div class='inline'><p>The explicit ordering weight in the sidebar.</p></div>
1527
+
1528
+ </li>
1529
+
1530
+ </ul>
1531
+
1532
+ </div><table class="source_code">
1533
+ <tr>
1534
+ <td>
1535
+ <pre class="lines">
1536
+
1537
+
1538
+ 21
1539
+ 22
1540
+ 23</pre>
1541
+ </td>
1542
+ <td>
1543
+ <pre class="code"><span class="info file"># File 'lib/kabk/resource.rb', line 21</span>
1544
+
1545
+ <span class='kw'>def</span> <span class='id identifier rubyid_order'>order</span>
1546
+ <span class='ivar'>@order</span>
1547
+ <span class='kw'>end</span></pre>
1548
+ </td>
1549
+ </tr>
1550
+ </table>
1551
+ </div>
1552
+
1553
+
1554
+ <span id="per_page_default=-instance_method"></span>
1555
+ <div class="method_details ">
1556
+ <h3 class="signature " id="per_page_default-instance_method">
1557
+
1558
+ #<strong>per_page_default</strong> &#x21d2; <tt>Integer</tt>
1559
+
1560
+
1561
+
1562
+
1563
+
1564
+ </h3><div class="docstring">
1565
+ <div class="discussion">
1566
+ <p>Returns Default number of records per page for pagination.</p>
1567
+
1568
+ </div>
1569
+ </div>
1570
+ <div class="tags">
1571
+
1572
+ <p class="tag_title">Returns:</p>
1573
+ <ul class="return">
1574
+
1575
+ <li>
1576
+
1577
+
1578
+ <span class='type'>(<tt>Integer</tt>)</span>
1579
+
1580
+
1581
+
1582
+ &mdash;
1583
+ <div class='inline'><p>Default number of records per page for pagination.</p></div>
1584
+
1585
+ </li>
1586
+
1587
+ </ul>
1588
+
1589
+ </div><table class="source_code">
1590
+ <tr>
1591
+ <td>
1592
+ <pre class="lines">
1593
+
1594
+
1595
+ 25
1596
+ 26
1597
+ 27</pre>
1598
+ </td>
1599
+ <td>
1600
+ <pre class="code"><span class="info file"># File 'lib/kabk/resource.rb', line 25</span>
1601
+
1602
+ <span class='kw'>def</span> <span class='id identifier rubyid_per_page_default'>per_page_default</span>
1603
+ <span class='ivar'>@per_page_default</span>
1604
+ <span class='kw'>end</span></pre>
1605
+ </td>
1606
+ </tr>
1607
+ </table>
1608
+ </div>
1609
+
1610
+
1611
+ <span id="permissions=-instance_method"></span>
1612
+ <div class="method_details ">
1613
+ <h3 class="signature " id="permissions-instance_method">
1614
+
1615
+ #<strong>permissions</strong> &#x21d2; <tt>Hash</tt>
1616
+
1617
+
1618
+
1619
+
1620
+
1621
+ </h3><div class="docstring">
1622
+ <div class="discussion">
1623
+ <p>Returns The baseline CRUD permissions (can_view, can_edit, etc).</p>
1624
+
1625
+ </div>
1626
+ </div>
1627
+ <div class="tags">
1628
+
1629
+ <p class="tag_title">Returns:</p>
1630
+ <ul class="return">
1631
+
1632
+ <li>
1633
+
1634
+
1635
+ <span class='type'>(<tt>Hash</tt>)</span>
1636
+
1637
+
1638
+
1639
+ &mdash;
1640
+ <div class='inline'><p>The baseline CRUD permissions (can_view, can_edit, etc).</p></div>
1641
+
1642
+ </li>
1643
+
1644
+ </ul>
1645
+
1646
+ </div><table class="source_code">
1647
+ <tr>
1648
+ <td>
1649
+ <pre class="lines">
1650
+
1651
+
1652
+ 37
1653
+ 38
1654
+ 39</pre>
1655
+ </td>
1656
+ <td>
1657
+ <pre class="code"><span class="info file"># File 'lib/kabk/resource.rb', line 37</span>
1658
+
1659
+ <span class='kw'>def</span> <span class='id identifier rubyid_permissions'>permissions</span>
1660
+ <span class='ivar'>@permissions</span>
1661
+ <span class='kw'>end</span></pre>
1662
+ </td>
1663
+ </tr>
1664
+ </table>
1665
+ </div>
1666
+
1667
+
1668
+ <span id="plural_name=-instance_method"></span>
1669
+ <div class="method_details ">
1670
+ <h3 class="signature " id="plural_name-instance_method">
1671
+
1672
+ #<strong>plural_name</strong> &#x21d2; <tt>String</tt>
1673
+
1674
+
1675
+
1676
+
1677
+
1678
+ </h3><div class="docstring">
1679
+ <div class="discussion">
1680
+ <p>Returns The plural name used in routing (e.g., &quot;news&quot;).</p>
1681
+
1682
+ </div>
1683
+ </div>
1684
+ <div class="tags">
1685
+
1686
+ <p class="tag_title">Returns:</p>
1687
+ <ul class="return">
1688
+
1689
+ <li>
1690
+
1691
+
1692
+ <span class='type'>(<tt>String</tt>)</span>
1693
+
1694
+
1695
+
1696
+ &mdash;
1697
+ <div class='inline'><p>The plural name used in routing (e.g., &quot;news&quot;).</p></div>
1698
+
1699
+ </li>
1700
+
1701
+ </ul>
1702
+
1703
+ </div><table class="source_code">
1704
+ <tr>
1705
+ <td>
1706
+ <pre class="lines">
1707
+
1708
+
1709
+ 9
1710
+ 10
1711
+ 11</pre>
1712
+ </td>
1713
+ <td>
1714
+ <pre class="code"><span class="info file"># File 'lib/kabk/resource.rb', line 9</span>
1715
+
1716
+ <span class='kw'>def</span> <span class='id identifier rubyid_plural_name'>plural_name</span>
1717
+ <span class='ivar'>@plural_name</span>
1718
+ <span class='kw'>end</span></pre>
1719
+ </td>
1720
+ </tr>
1721
+ </table>
1722
+ </div>
1723
+
1724
+
1725
+ <span id="searchable_fields=-instance_method"></span>
1726
+ <div class="method_details ">
1727
+ <h3 class="signature " id="searchable_fields-instance_method">
1728
+
1729
+ #<strong>searchable_fields</strong> &#x21d2; <tt>Array&lt;String&gt;</tt>
1730
+
1731
+
1732
+
1733
+
1734
+
1735
+ </h3><div class="docstring">
1736
+ <div class="discussion">
1737
+ <p>Returns List of field names that support full-text search.</p>
1738
+
1739
+ </div>
1740
+ </div>
1741
+ <div class="tags">
1742
+
1743
+ <p class="tag_title">Returns:</p>
1744
+ <ul class="return">
1745
+
1746
+ <li>
1747
+
1748
+
1749
+ <span class='type'>(<tt>Array&lt;String&gt;</tt>)</span>
1750
+
1751
+
1752
+
1753
+ &mdash;
1754
+ <div class='inline'><p>List of field names that support full-text search.</p></div>
1755
+
1756
+ </li>
1757
+
1758
+ </ul>
1759
+
1760
+ </div><table class="source_code">
1761
+ <tr>
1762
+ <td>
1763
+ <pre class="lines">
1764
+
1765
+
1766
+ 27
1767
+ 28
1768
+ 29</pre>
1769
+ </td>
1770
+ <td>
1771
+ <pre class="code"><span class="info file"># File 'lib/kabk/resource.rb', line 27</span>
1772
+
1773
+ <span class='kw'>def</span> <span class='id identifier rubyid_searchable_fields'>searchable_fields</span>
1774
+ <span class='ivar'>@searchable_fields</span>
1775
+ <span class='kw'>end</span></pre>
1776
+ </td>
1777
+ </tr>
1778
+ </table>
1779
+ </div>
1780
+
1781
+
1782
+ <span id="sortable_fields=-instance_method"></span>
1783
+ <div class="method_details ">
1784
+ <h3 class="signature " id="sortable_fields-instance_method">
1785
+
1786
+ #<strong>sortable_fields</strong> &#x21d2; <tt>Array&lt;String&gt;</tt>
1787
+
1788
+
1789
+
1790
+
1791
+
1792
+ </h3><div class="docstring">
1793
+ <div class="discussion">
1794
+ <p>Returns List of field names that can be sorted by.</p>
1795
+
1796
+ </div>
1797
+ </div>
1798
+ <div class="tags">
1799
+
1800
+ <p class="tag_title">Returns:</p>
1801
+ <ul class="return">
1802
+
1803
+ <li>
1804
+
1805
+
1806
+ <span class='type'>(<tt>Array&lt;String&gt;</tt>)</span>
1807
+
1808
+
1809
+
1810
+ &mdash;
1811
+ <div class='inline'><p>List of field names that can be sorted by.</p></div>
1812
+
1813
+ </li>
1814
+
1815
+ </ul>
1816
+
1817
+ </div><table class="source_code">
1818
+ <tr>
1819
+ <td>
1820
+ <pre class="lines">
1821
+
1822
+
1823
+ 29
1824
+ 30
1825
+ 31</pre>
1826
+ </td>
1827
+ <td>
1828
+ <pre class="code"><span class="info file"># File 'lib/kabk/resource.rb', line 29</span>
1829
+
1830
+ <span class='kw'>def</span> <span class='id identifier rubyid_sortable_fields'>sortable_fields</span>
1831
+ <span class='ivar'>@sortable_fields</span>
1832
+ <span class='kw'>end</span></pre>
1833
+ </td>
1834
+ </tr>
1835
+ </table>
1836
+ </div>
1837
+
1838
+
1839
+ <span id="title=-instance_method"></span>
1840
+ <div class="method_details ">
1841
+ <h3 class="signature " id="title-instance_method">
1842
+
1843
+ #<strong>title</strong> &#x21d2; <tt>Hash</tt>
1844
+
1845
+
1846
+
1847
+
1848
+
1849
+ </h3><div class="docstring">
1850
+ <div class="discussion">
1851
+ <p>Returns Localization hash for the resource title (e.g., { fa: &quot;اخبار&quot;, en: &quot;News&quot; }).</p>
1852
+
1853
+ </div>
1854
+ </div>
1855
+ <div class="tags">
1856
+
1857
+ <p class="tag_title">Returns:</p>
1858
+ <ul class="return">
1859
+
1860
+ <li>
1861
+
1862
+
1863
+ <span class='type'>(<tt>Hash</tt>)</span>
1864
+
1865
+
1866
+
1867
+ &mdash;
1868
+ <div class='inline'><p>Localization hash for the resource title (e.g., { fa: &quot;اخبار&quot;, en: &quot;News&quot; }).</p></div>
1869
+
1870
+ </li>
1871
+
1872
+ </ul>
1873
+
1874
+ </div><table class="source_code">
1875
+ <tr>
1876
+ <td>
1877
+ <pre class="lines">
1878
+
1879
+
1880
+ 11
1881
+ 12
1882
+ 13</pre>
1883
+ </td>
1884
+ <td>
1885
+ <pre class="code"><span class="info file"># File 'lib/kabk/resource.rb', line 11</span>
1886
+
1887
+ <span class='kw'>def</span> <span class='id identifier rubyid_title'>title</span>
1888
+ <span class='ivar'>@title</span>
1889
+ <span class='kw'>end</span></pre>
1890
+ </td>
1891
+ </tr>
1892
+ </table>
1893
+ </div>
1894
+
1895
+ </div>
1896
+
1897
+
1898
+ <div id="instance_method_details" class="method_details_list">
1899
+ <h2>Instance Method Details</h2>
1900
+
1901
+
1902
+ <div class="method_details first">
1903
+ <h3 class="signature first" id="to_h-instance_method">
1904
+
1905
+ #<strong>to_h</strong> &#x21d2; <tt>Object</tt>
1906
+
1907
+
1908
+
1909
+
1910
+
1911
+ </h3><table class="source_code">
1912
+ <tr>
1913
+ <td>
1914
+ <pre class="lines">
1915
+
1916
+
1917
+ 63
1918
+ 64
1919
+ 65
1920
+ 66
1921
+ 67
1922
+ 68
1923
+ 69
1924
+ 70
1925
+ 71
1926
+ 72
1927
+ 73
1928
+ 74
1929
+ 75
1930
+ 76
1931
+ 77
1932
+ 78
1933
+ 79
1934
+ 80
1935
+ 81
1936
+ 82
1937
+ 83
1938
+ 84
1939
+ 85
1940
+ 86</pre>
1941
+ </td>
1942
+ <td>
1943
+ <pre class="code"><span class="info file"># File 'lib/kabk/resource.rb', line 63</span>
1944
+
1945
+ <span class='kw'>def</span> <span class='id identifier rubyid_to_h'>to_h</span>
1946
+ <span class='id identifier rubyid_hash'>hash</span> <span class='op'>=</span> <span class='lbrace'>{</span>
1947
+ <span class='label'>name:</span> <span class='ivar'>@name</span><span class='comma'>,</span>
1948
+ <span class='label'>plural_name:</span> <span class='ivar'>@plural_name</span><span class='comma'>,</span>
1949
+ <span class='label'>title:</span> <span class='ivar'>@title</span><span class='comma'>,</span>
1950
+ <span class='label'>icon:</span> <span class='ivar'>@icon</span><span class='comma'>,</span>
1951
+ <span class='label'>api_path:</span> <span class='ivar'>@api_path</span>
1952
+ <span class='rbrace'>}</span>
1953
+
1954
+ <span class='id identifier rubyid_hash'>hash</span><span class='lbracket'>[</span><span class='symbol'>:display_in_sidebar</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='ivar'>@display_in_sidebar</span> <span class='kw'>unless</span> <span class='ivar'>@display_in_sidebar</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
1955
+ <span class='id identifier rubyid_hash'>hash</span><span class='lbracket'>[</span><span class='symbol'>:group</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='ivar'>@group</span> <span class='kw'>if</span> <span class='ivar'>@group</span>
1956
+ <span class='id identifier rubyid_hash'>hash</span><span class='lbracket'>[</span><span class='symbol'>:order</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='ivar'>@order</span> <span class='kw'>if</span> <span class='ivar'>@order</span>
1957
+ <span class='id identifier rubyid_hash'>hash</span><span class='lbracket'>[</span><span class='symbol'>:default_sort</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='ivar'>@default_sort</span> <span class='kw'>if</span> <span class='ivar'>@default_sort</span>
1958
+ <span class='id identifier rubyid_hash'>hash</span><span class='lbracket'>[</span><span class='symbol'>:per_page_default</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='ivar'>@per_page_default</span> <span class='kw'>if</span> <span class='ivar'>@per_page_default</span>
1959
+ <span class='id identifier rubyid_hash'>hash</span><span class='lbracket'>[</span><span class='symbol'>:searchable_fields</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='ivar'>@searchable_fields</span> <span class='kw'>if</span> <span class='ivar'>@searchable_fields</span>
1960
+ <span class='id identifier rubyid_hash'>hash</span><span class='lbracket'>[</span><span class='symbol'>:sortable_fields</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='ivar'>@sortable_fields</span> <span class='kw'>if</span> <span class='ivar'>@sortable_fields</span>
1961
+ <span class='id identifier rubyid_hash'>hash</span><span class='lbracket'>[</span><span class='symbol'>:filterable_fields</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='ivar'>@filterable_fields</span> <span class='kw'>if</span> <span class='ivar'>@filterable_fields</span>
1962
+ <span class='id identifier rubyid_hash'>hash</span><span class='lbracket'>[</span><span class='symbol'>:concurrency_field</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='ivar'>@concurrency_field</span> <span class='kw'>if</span> <span class='ivar'>@concurrency_field</span>
1963
+ <span class='id identifier rubyid_hash'>hash</span><span class='lbracket'>[</span><span class='symbol'>:audit_fields</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='ivar'>@audit_fields</span> <span class='kw'>if</span> <span class='ivar'>@audit_fields</span>
1964
+ <span class='id identifier rubyid_hash'>hash</span><span class='lbracket'>[</span><span class='symbol'>:permissions</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='ivar'>@permissions</span> <span class='kw'>if</span> <span class='ivar'>@permissions</span>
1965
+ <span class='id identifier rubyid_hash'>hash</span><span class='lbracket'>[</span><span class='symbol'>:fields</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='ivar'>@fields</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span><span class='lparen'>(</span><span class='op'>&amp;</span><span class='symbol'>:to_h</span><span class='rparen'>)</span>
1966
+
1967
+ <span class='id identifier rubyid_hash'>hash</span>
1968
+ <span class='kw'>end</span></pre>
1969
+ </td>
1970
+ </tr>
1971
+ </table>
1972
+ </div>
1973
+
1974
+ </div>
1975
+
1976
+ </div>
1977
+
1978
+ <div id="footer">
1979
+ Generated on Tue Aug 11 21:17:06 2026 by
1980
+ <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1981
+ 0.9.45 (ruby-4.0.6).
1982
+ </div>
1983
+
1984
+ </div>
1985
+ </body>
1986
+ </html>