compony 0.11.9 → 0.11.10

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 (104) hide show
  1. checksums.yaml +4 -4
  2. data/.ruby-version +1 -1
  3. data/CHANGELOG.md +15 -3
  4. data/Gemfile.lock +1 -1
  5. data/VERSION +1 -1
  6. data/compony.gemspec +3 -3
  7. data/doc/ComponentGenerator.html +2 -2
  8. data/doc/Components.html +2 -2
  9. data/doc/ComponentsGenerator.html +2 -2
  10. data/doc/Compony/Component.html +2 -2
  11. data/doc/Compony/ComponentMixins/Default/Labelling.html +2 -2
  12. data/doc/Compony/ComponentMixins/Default/Standalone/ResourcefulVerbDsl.html +2 -2
  13. data/doc/Compony/ComponentMixins/Default/Standalone/StandaloneDsl.html +2 -2
  14. data/doc/Compony/ComponentMixins/Default/Standalone/VerbDsl.html +2 -2
  15. data/doc/Compony/ComponentMixins/Default/Standalone.html +2 -2
  16. data/doc/Compony/ComponentMixins/Default.html +2 -2
  17. data/doc/Compony/ComponentMixins/Resourceful.html +2 -2
  18. data/doc/Compony/ComponentMixins.html +2 -2
  19. data/doc/Compony/Components/Buttons/CssButton.html +2 -2
  20. data/doc/Compony/Components/Buttons/Link.html +2 -2
  21. data/doc/Compony/Components/Buttons.html +2 -2
  22. data/doc/Compony/Components/Destroy.html +2 -2
  23. data/doc/Compony/Components/Edit.html +2 -2
  24. data/doc/Compony/Components/Form.html +2 -2
  25. data/doc/Compony/Components/Index.html +2 -2
  26. data/doc/Compony/Components/List.html +49 -33
  27. data/doc/Compony/Components/New.html +2 -2
  28. data/doc/Compony/Components/Show.html +2 -2
  29. data/doc/Compony/Components/WithForm.html +2 -2
  30. data/doc/Compony/Components.html +2 -2
  31. data/doc/Compony/ControllerMixin.html +2 -2
  32. data/doc/Compony/Engine.html +2 -2
  33. data/doc/Compony/Intent.html +2 -2
  34. data/doc/Compony/ManageIntentsDsl.html +2 -2
  35. data/doc/Compony/MethodAccessibleHash.html +2 -2
  36. data/doc/Compony/ModelFields/Anchormodel.html +2 -2
  37. data/doc/Compony/ModelFields/Association.html +2 -2
  38. data/doc/Compony/ModelFields/Attachment.html +2 -2
  39. data/doc/Compony/ModelFields/Base.html +2 -2
  40. data/doc/Compony/ModelFields/Boolean.html +2 -2
  41. data/doc/Compony/ModelFields/Color.html +2 -2
  42. data/doc/Compony/ModelFields/Currency.html +2 -2
  43. data/doc/Compony/ModelFields/Date.html +2 -2
  44. data/doc/Compony/ModelFields/Datetime.html +2 -2
  45. data/doc/Compony/ModelFields/Decimal.html +2 -2
  46. data/doc/Compony/ModelFields/Email.html +2 -2
  47. data/doc/Compony/ModelFields/Float.html +2 -2
  48. data/doc/Compony/ModelFields/Integer.html +2 -2
  49. data/doc/Compony/ModelFields/Percentage.html +2 -2
  50. data/doc/Compony/ModelFields/Phone.html +2 -2
  51. data/doc/Compony/ModelFields/RichText.html +2 -2
  52. data/doc/Compony/ModelFields/String.html +2 -2
  53. data/doc/Compony/ModelFields/Text.html +2 -2
  54. data/doc/Compony/ModelFields/Time.html +2 -2
  55. data/doc/Compony/ModelFields/Url.html +2 -2
  56. data/doc/Compony/ModelFields.html +2 -2
  57. data/doc/Compony/ModelMixin.html +36 -36
  58. data/doc/Compony/NaturalOrdering.html +2 -2
  59. data/doc/Compony/RequestContext.html +2 -2
  60. data/doc/Compony/Version.html +2 -2
  61. data/doc/Compony/ViewHelpers.html +2 -2
  62. data/doc/Compony/VirtualModel.html +2 -2
  63. data/doc/Compony.html +33 -37
  64. data/doc/ComponyController.html +2 -2
  65. data/doc/_index.html +2 -2
  66. data/doc/file.CHANGELOG.html +12 -5
  67. data/doc/file.README.html +2 -2
  68. data/doc/file.basic_component.html +2 -2
  69. data/doc/file.cookbook.html +2 -2
  70. data/doc/file.destroy.html +2 -2
  71. data/doc/file.dsl_reference.html +2 -2
  72. data/doc/file.edit.html +2 -2
  73. data/doc/file.example.html +2 -2
  74. data/doc/file.example_advanced.html +2 -2
  75. data/doc/file.feasibility.html +2 -2
  76. data/doc/file.form.html +2 -2
  77. data/doc/file.generators.html +2 -2
  78. data/doc/file.glossary.html +2 -2
  79. data/doc/file.gotchas.html +2 -2
  80. data/doc/file.index.html +2 -2
  81. data/doc/file.inheritance.html +2 -2
  82. data/doc/file.installation.html +2 -2
  83. data/doc/file.integrations.html +2 -2
  84. data/doc/file.intents.html +2 -2
  85. data/doc/file.internal_datastructures.html +2 -2
  86. data/doc/file.list.html +2 -2
  87. data/doc/file.maintaining.html +2 -2
  88. data/doc/file.model_fields.html +2 -2
  89. data/doc/file.nesting.html +2 -2
  90. data/doc/file.new.html +2 -2
  91. data/doc/file.ownership.html +2 -2
  92. data/doc/file.patterns.html +2 -2
  93. data/doc/file.pre_built_components.html +2 -2
  94. data/doc/file.resourceful.html +2 -2
  95. data/doc/file.show.html +2 -2
  96. data/doc/file.standalone.html +2 -2
  97. data/doc/file.virtual_models.html +2 -2
  98. data/doc/file.with_form.html +2 -2
  99. data/doc/index.html +2 -2
  100. data/doc/top-level-namespace.html +2 -2
  101. data/lib/compony/components/list.rb +8 -0
  102. data/lib/compony/model_mixin.rb +66 -3
  103. data/lib/compony.rb +4 -6
  104. metadata +2 -2
data/doc/Compony.html CHANGED
@@ -423,7 +423,7 @@
423
423
  <li class="public ">
424
424
  <span class="summary_signature">
425
425
 
426
- <a href="#intent-class_method" title="intent (class method)">.<strong>intent</strong>(intent_or_comp_args) &#x21d2; Object </a>
426
+ <a href="#intent-class_method" title="intent (class method)">.<strong>intent</strong>(*args) &#x21d2; Object </a>
427
427
 
428
428
 
429
429
 
@@ -837,14 +837,14 @@
837
837
  <pre class="lines">
838
838
 
839
839
 
840
+ 139
841
+ 140
840
842
  141
841
843
  142
842
- 143
843
- 144
844
- 145</pre>
844
+ 143</pre>
845
845
  </td>
846
846
  <td>
847
- <pre class="code"><span class="info file"># File 'lib/compony.rb', line 141</span>
847
+ <pre class="code"><span class="info file"># File 'lib/compony.rb', line 139</span>
848
848
 
849
849
  <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_comp_class_for'>comp_class_for</span><span class='lparen'>(</span><span class='op'>...</span><span class='rparen'>)</span>
850
850
  <span class='kw'>return</span> <span class='id identifier rubyid_intent'>intent</span><span class='lparen'>(</span><span class='op'>...</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_comp_class'>comp_class</span>
@@ -891,14 +891,14 @@
891
891
  <pre class="lines">
892
892
 
893
893
 
894
+ 148
895
+ 149
894
896
  150
895
897
  151
896
- 152
897
- 153
898
- 154</pre>
898
+ 152</pre>
899
899
  </td>
900
900
  <td>
901
- <pre class="code"><span class="info file"># File 'lib/compony.rb', line 150</span>
901
+ <pre class="code"><span class="info file"># File 'lib/compony.rb', line 148</span>
902
902
 
903
903
  <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_comp_class_for!'>comp_class_for!</span><span class='lparen'>(</span><span class='op'>*</span><span class='id identifier rubyid_args'>args</span><span class='comma'>,</span> <span class='op'>**</span><span class='id identifier rubyid_kwargs'>kwargs</span><span class='rparen'>)</span>
904
904
  <span class='id identifier rubyid_comp_class_for'>comp_class_for</span><span class='lparen'>(</span><span class='op'>*</span><span class='id identifier rubyid_args'>args</span><span class='comma'>,</span> <span class='op'>**</span><span class='id identifier rubyid_kwargs'>kwargs</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='id identifier rubyid_fail'>fail</span><span class='lparen'>(</span>
@@ -1254,16 +1254,16 @@
1254
1254
  <pre class="lines">
1255
1255
 
1256
1256
 
1257
+ 163
1258
+ 164
1257
1259
  165
1258
1260
  166
1259
1261
  167
1260
1262
  168
1261
- 169
1262
- 170
1263
- 171</pre>
1263
+ 169</pre>
1264
1264
  </td>
1265
1265
  <td>
1266
- <pre class="code"><span class="info file"># File 'lib/compony.rb', line 165</span>
1266
+ <pre class="code"><span class="info file"># File 'lib/compony.rb', line 163</span>
1267
1267
 
1268
1268
  <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_family_name_for'>family_name_for</span><span class='lparen'>(</span><span class='id identifier rubyid_model_or_family_name_or_cst'>model_or_family_name_or_cst</span><span class='rparen'>)</span>
1269
1269
  <span class='kw'>if</span> <span class='id identifier rubyid_model_or_family_name_or_cst'>model_or_family_name_or_cst</span><span class='period'>.</span><span class='id identifier rubyid_respond_to?'>respond_to?</span><span class='lparen'>(</span><span class='symbol'>:model_name</span><span class='rparen'>)</span>
@@ -1280,7 +1280,7 @@
1280
1280
  <div class="method_details ">
1281
1281
  <h3 class="signature " id="intent-class_method">
1282
1282
 
1283
- .<strong>intent</strong>(intent_or_comp_args) &#x21d2; <tt>Object</tt>
1283
+ .<strong>intent</strong>(*args) &#x21d2; <tt>Object</tt>
1284
1284
 
1285
1285
 
1286
1286
 
@@ -1307,19 +1307,15 @@
1307
1307
  126
1308
1308
  127
1309
1309
  128
1310
- 129
1311
- 130
1312
- 131</pre>
1310
+ 129</pre>
1313
1311
  </td>
1314
1312
  <td>
1315
1313
  <pre class="code"><span class="info file"># File 'lib/compony.rb', line 125</span>
1316
1314
 
1317
- <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_intent'>intent</span><span class='lparen'>(</span><span class='id identifier rubyid_intent_or_comp_args'>intent_or_comp_args</span><span class='comma'>,</span> <span class='op'>...</span><span class='rparen'>)</span>
1318
- <span class='kw'>if</span> <span class='id identifier rubyid_intent_or_comp_args'>intent_or_comp_args</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'><span class='object_link'><a href="Compony/Intent.html" title="Compony::Intent (class)">Intent</a></span></span><span class='rparen'>)</span>
1319
- <span class='kw'>return</span> <span class='id identifier rubyid_intent_or_comp_args'>intent_or_comp_args</span>
1320
- <span class='kw'>else</span>
1321
- <span class='kw'>return</span> <span class='const'><span class='object_link'><a href="Compony/Intent.html" title="Compony::Intent (class)">Intent</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="Compony/Intent.html#initialize-instance_method" title="Compony::Intent#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_intent_or_comp_args'>intent_or_comp_args</span><span class='comma'>,</span> <span class='op'>...</span><span class='rparen'>)</span>
1322
- <span class='kw'>end</span>
1315
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_intent'>intent</span><span class='lparen'>(</span><span class='op'>*</span><span class='id identifier rubyid_args'>args</span><span class='comma'>,</span> <span class='op'>**</span><span class='rparen'>)</span>
1316
+ <span class='id identifier rubyid_first'>first</span> <span class='op'>=</span> <span class='id identifier rubyid_args'>args</span><span class='period'>.</span><span class='id identifier rubyid_first'>first</span>
1317
+ <span class='kw'>return</span> <span class='id identifier rubyid_first'>first</span> <span class='kw'>if</span> <span class='id identifier rubyid_first'>first</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'><span class='object_link'><a href="Compony/Intent.html" title="Compony::Intent (class)">Intent</a></span></span><span class='rparen'>)</span>
1318
+ <span class='kw'>return</span> <span class='const'><span class='object_link'><a href="Compony/Intent.html" title="Compony::Intent (class)">Intent</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="Compony/Intent.html#initialize-instance_method" title="Compony::Intent#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='op'>*</span><span class='id identifier rubyid_args'>args</span><span class='comma'>,</span> <span class='op'>**</span><span class='rparen'>)</span>
1323
1319
  <span class='kw'>end</span></pre>
1324
1320
  </td>
1325
1321
  </tr>
@@ -1372,18 +1368,18 @@
1372
1368
  <pre class="lines">
1373
1369
 
1374
1370
 
1371
+ 173
1372
+ 174
1375
1373
  175
1376
1374
  176
1377
1375
  177
1378
1376
  178
1379
1377
  179
1380
1378
  180
1381
- 181
1382
- 182
1383
- 183</pre>
1379
+ 181</pre>
1384
1380
  </td>
1385
1381
  <td>
1386
- <pre class="code"><span class="info file"># File 'lib/compony.rb', line 175</span>
1382
+ <pre class="code"><span class="info file"># File 'lib/compony.rb', line 173</span>
1387
1383
 
1388
1384
  <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_model_field_class_for'>model_field_class_for</span><span class='lparen'>(</span><span class='id identifier rubyid_constant'>constant</span><span class='rparen'>)</span>
1389
1385
  <span class='id identifier rubyid_model_field_namespaces'>model_field_namespaces</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_model_field_namespace'>model_field_namespace</span><span class='op'>|</span>
@@ -1534,12 +1530,12 @@
1534
1530
  <pre class="lines">
1535
1531
 
1536
1532
 
1537
- 135
1538
- 136
1539
- 137</pre>
1533
+ 133
1534
+ 134
1535
+ 135</pre>
1540
1536
  </td>
1541
1537
  <td>
1542
- <pre class="code"><span class="info file"># File 'lib/compony.rb', line 135</span>
1538
+ <pre class="code"><span class="info file"># File 'lib/compony.rb', line 133</span>
1543
1539
 
1544
1540
  <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_path'>path</span><span class='lparen'>(</span><span class='id identifier rubyid_comp_name_or_cst_or_class'>comp_name_or_cst_or_class</span><span class='comma'>,</span> <span class='id identifier rubyid_model_or_family_name_or_cst'>model_or_family_name_or_cst</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='op'>*</span><span class='comma'>,</span> <span class='op'>**</span><span class='rparen'>)</span>
1545
1541
  <span class='id identifier rubyid_intent'>intent</span><span class='lparen'>(</span><span class='id identifier rubyid_comp_name_or_cst_or_class'>comp_name_or_cst_or_class</span><span class='comma'>,</span> <span class='id identifier rubyid_model_or_family_name_or_cst'>model_or_family_name_or_cst</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_path'>path</span><span class='lparen'>(</span><span class='op'>*</span><span class='comma'>,</span> <span class='op'>**</span><span class='rparen'>)</span>
@@ -1654,12 +1650,12 @@
1654
1650
  <pre class="lines">
1655
1651
 
1656
1652
 
1657
- 157
1658
- 158
1659
- 159</pre>
1653
+ 155
1654
+ 156
1655
+ 157</pre>
1660
1656
  </td>
1661
1657
  <td>
1662
- <pre class="code"><span class="info file"># File 'lib/compony.rb', line 157</span>
1658
+ <pre class="code"><span class="info file"># File 'lib/compony.rb', line 155</span>
1663
1659
 
1664
1660
  <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_root_comp'>root_comp</span>
1665
1661
  <span class='const'>RequestStore</span><span class='period'>.</span><span class='id identifier rubyid_store'>store</span><span class='lbracket'>[</span><span class='symbol'>:compony_root_comp</span><span class='rbracket'>]</span>
@@ -1674,9 +1670,9 @@
1674
1670
  </div>
1675
1671
 
1676
1672
  <div id="footer">
1677
- Generated on Mon May 18 13:55:35 2026 by
1673
+ Generated on Thu Jun 4 20:37:17 2026 by
1678
1674
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1679
- 0.9.34 (ruby-3.3.5).
1675
+ 0.9.34 (ruby-3.4.9).
1680
1676
  </div>
1681
1677
 
1682
1678
  </div>
@@ -114,9 +114,9 @@
114
114
  </div>
115
115
 
116
116
  <div id="footer">
117
- Generated on Mon May 18 13:55:36 2026 by
117
+ Generated on Thu Jun 4 20:37:18 2026 by
118
118
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
119
- 0.9.34 (ruby-3.3.5).
119
+ 0.9.34 (ruby-3.4.9).
120
120
  </div>
121
121
 
122
122
  </div>
data/doc/_index.html CHANGED
@@ -718,9 +718,9 @@
718
718
  </div>
719
719
 
720
720
  <div id="footer">
721
- Generated on Mon May 18 13:55:32 2026 by
721
+ Generated on Thu Jun 4 20:37:14 2026 by
722
722
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
723
- 0.9.34 (ruby-3.3.5).
723
+ 0.9.34 (ruby-3.4.9).
724
724
  </div>
725
725
 
726
726
  </div>
@@ -58,15 +58,22 @@
58
58
  </div>
59
59
 
60
60
  <div id="content"><div id='filecontents'>
61
+ <h1 id="label-0.11.10">0.11.10</h1>
62
+ <ul><li>
63
+ <p>Fix <code>Compony.intent</code> (and thus <code>add</code> / <code>render_intent</code> for custom intents) raising <code>ArgumentError (given 0, expected 1+)</code> on Ruby 3.4+. The signature <code>def self.intent(intent_or_comp_args, ...)</code> required a leading positional; Ruby 3.4 completed keyword/positional separation, so a kwargs-only call (e.g. <code>add label: &#39;...&#39;, name: :print, button: {...}</code>) no longer binds the keywords to that positional. Changed to <code>def self.intent(*args, **kwargs)</code>.</p>
64
+ </li><li>
65
+ <p>Make feasibility much faster on index/list pages. The autodetected <code>restrict_with_exception</code> / <code>restrict_with_error</code> destroy preventions ran one existence query per row per dependent association (<code>record.assoc.any?</code>), causing N+1 queries when rendering destroy buttons for a whole page. The <code>List</code> component now batch-precomputes feasibility for the current page via the new <code>Model.precompute_feasibility(records, action)</code>, issuing a single <code>WHERE foreign_key IN (...)</code> existence query per dependent association regardless of row count. Associations that can’t be safely batched (custom <code>prevent</code> blocks, polymorphic/through associations, owner-dependent scopes) transparently fall back to the previous per-record behavior, so results are unchanged - only the query count drops.</p>
66
+ </li></ul>
67
+
61
68
  <h1 id="label-0.11.9">0.11.9</h1>
62
69
  <ul><li>
63
- <p>Fix <code>standalone</code> overrides clobbering inherited <code>layout</code> / <code>skip_authentication</code> / <code>skip_forgery_protection</code>. A second <code>standalone</code> call (e.g. a subclass overriding a pre-built component) re-ran <code>StandaloneDsl</code> whose <code>to_conf</code> always emitted the hard defaults (<code>layout: true</code>, <code>skip_*: false</code>); <code>deep_merge!</code> then overwrote the value inherited from the parent. These now default to <code>nil</code> and the real defaults are only injected when <code>provide_defaults</code> is true (first call), so <code>compact</code> strips them on overrides and <code>deep_merge!</code> preserves the inherited value mirroring <code>VerbDsl#to_conf</code>. Subclasses no longer need to repeat <code>layout :backend</code> just to keep it.</p>
70
+ <p>Fix <code>standalone</code> overrides clobbering inherited <code>layout</code> / <code>skip_authentication</code> / <code>skip_forgery_protection</code>. A second <code>standalone</code> call (e.g. a subclass overriding a pre-built component) re-ran <code>StandaloneDsl</code> whose <code>to_conf</code> always emitted the hard defaults (<code>layout: true</code>, <code>skip_*: false</code>); <code>deep_merge!</code> then overwrote the value inherited from the parent. These now default to <code>nil</code> and the real defaults are only injected when <code>provide_defaults</code> is true (first call), so <code>compact</code> strips them on overrides and <code>deep_merge!</code> preserves the inherited value - mirroring <code>VerbDsl#to_conf</code>. Subclasses no longer need to repeat <code>layout :backend</code> just to keep it.</p>
64
71
  </li><li>
65
72
  <p>Enhance documentation for better LLM support (and humans as well of course):</p>
66
73
  </li><li>
67
- <p>Documentation: add agent-oriented docs <code>CLAUDE.md</code> primer, <code>doc/llms.txt</code> index, <code>doc/guide/dsl_reference.md</code>, <code>doc/guide/glossary.md</code>, <code>doc/guide/gotchas.md</code>, <code>doc/guide/example_advanced.md</code>, <code>doc/guide/patterns.md</code>, <code>doc/guide/cookbook.md</code> (task-indexed recipes). Thicken the thin pre-built component docs (Index, Show, List, WithForm). Fix stale docs: README guide index links (Virtual models, Edit), <code>pre_built_components.md</code> (wrongly claimed no Show/Index component; Edit link), and an <code>Edit</code> hook name in <code>edit.md</code> (<code>on_update_failed</code>).</p>
74
+ <p>Documentation: add agent-oriented docs - <code>CLAUDE.md</code> primer, <code>doc/llms.txt</code> index, <code>doc/guide/dsl_reference.md</code>, <code>doc/guide/glossary.md</code>, <code>doc/guide/gotchas.md</code>, <code>doc/guide/example_advanced.md</code>, <code>doc/guide/patterns.md</code>, <code>doc/guide/cookbook.md</code> (task-indexed recipes). Thicken the thin pre-built component docs (Index, Show, List, WithForm). Fix stale docs: README guide index links (Virtual models, Edit), <code>pre_built_components.md</code> (wrongly claimed no Show/Index component; Edit link), and an <code>Edit</code> hook name in <code>edit.md</code> (<code>on_update_failed</code>).</p>
68
75
  </li><li>
69
- <p>Inline YARD: documented previously-bare DSL hooks (New/Edit/Destroy <code>on_*</code>) and added <code>@param</code>/<code>@return</code>/<code>@yield</code>/<code>@api</code> plus <code>@!group DSL</code> to the WithForm, Form, Resourceful, verb and standalone DSL methods. Comments only no behavior change.</p>
76
+ <p>Inline YARD: documented previously-bare DSL hooks (New/Edit/Destroy <code>on_*</code>) and added <code>@param</code>/<code>@return</code>/<code>@yield</code>/<code>@api</code> plus <code>@!group DSL</code> to the WithForm, Form, Resourceful, verb and standalone DSL methods. Comments only - no behavior change.</p>
70
77
  </li><li>
71
78
  <p><code>.yardopts</code> now lists the guide pages as extra files so the whole guide (including the new agent docs) renders in the YARD/rubydoc reference, not just <code>lib/</code>.</p>
72
79
  </li><li>
@@ -748,9 +755,9 @@
748
755
  </div></div>
749
756
 
750
757
  <div id="footer">
751
- Generated on Mon May 18 13:55:32 2026 by
758
+ Generated on Thu Jun 4 20:37:15 2026 by
752
759
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
753
- 0.9.34 (ruby-3.3.5).
760
+ 0.9.34 (ruby-3.4.9).
754
761
  </div>
755
762
 
756
763
  </div>
data/doc/file.README.html CHANGED
@@ -220,9 +220,9 @@
220
220
  </div></div>
221
221
 
222
222
  <div id="footer">
223
- Generated on Mon May 18 13:55:32 2026 by
223
+ Generated on Thu Jun 4 20:37:14 2026 by
224
224
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
225
- 0.9.34 (ruby-3.3.5).
225
+ 0.9.34 (ruby-3.4.9).
226
226
  </div>
227
227
 
228
228
  </div>
@@ -304,9 +304,9 @@
304
304
  </div></div>
305
305
 
306
306
  <div id="footer">
307
- Generated on Mon May 18 13:55:33 2026 by
307
+ Generated on Thu Jun 4 20:37:15 2026 by
308
308
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
309
- 0.9.34 (ruby-3.3.5).
309
+ 0.9.34 (ruby-3.4.9).
310
310
  </div>
311
311
 
312
312
  </div>
@@ -179,9 +179,9 @@
179
179
  </div></div>
180
180
 
181
181
  <div id="footer">
182
- Generated on Mon May 18 13:55:34 2026 by
182
+ Generated on Thu Jun 4 20:37:17 2026 by
183
183
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
184
- 0.9.34 (ruby-3.3.5).
184
+ 0.9.34 (ruby-3.4.9).
185
185
  </div>
186
186
 
187
187
  </div>
@@ -95,9 +95,9 @@
95
95
  </div></div>
96
96
 
97
97
  <div id="footer">
98
- Generated on Mon May 18 13:55:33 2026 by
98
+ Generated on Thu Jun 4 20:37:16 2026 by
99
99
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
100
- 0.9.34 (ruby-3.3.5).
100
+ 0.9.34 (ruby-3.4.9).
101
101
  </div>
102
102
 
103
103
  </div>
@@ -662,9 +662,9 @@
662
662
  </div></div>
663
663
 
664
664
  <div id="footer">
665
- Generated on Mon May 18 13:55:34 2026 by
665
+ Generated on Thu Jun 4 20:37:16 2026 by
666
666
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
667
- 0.9.34 (ruby-3.3.5).
667
+ 0.9.34 (ruby-3.4.9).
668
668
  </div>
669
669
 
670
670
  </div>
data/doc/file.edit.html CHANGED
@@ -99,9 +99,9 @@
99
99
  </div></div>
100
100
 
101
101
  <div id="footer">
102
- Generated on Mon May 18 13:55:34 2026 by
102
+ Generated on Thu Jun 4 20:37:16 2026 by
103
103
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
104
- 0.9.34 (ruby-3.3.5).
104
+ 0.9.34 (ruby-3.4.9).
105
105
  </div>
106
106
 
107
107
  </div>
@@ -281,9 +281,9 @@
281
281
  </div></div>
282
282
 
283
283
  <div id="footer">
284
- Generated on Mon May 18 13:55:32 2026 by
284
+ Generated on Thu Jun 4 20:37:15 2026 by
285
285
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
286
- 0.9.34 (ruby-3.3.5).
286
+ 0.9.34 (ruby-3.4.9).
287
287
  </div>
288
288
 
289
289
  </div>
@@ -247,9 +247,9 @@
247
247
  </div></div>
248
248
 
249
249
  <div id="footer">
250
- Generated on Mon May 18 13:55:33 2026 by
250
+ Generated on Thu Jun 4 20:37:15 2026 by
251
251
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
252
- 0.9.34 (ruby-3.3.5).
252
+ 0.9.34 (ruby-3.4.9).
253
253
  </div>
254
254
 
255
255
  </div>
@@ -105,9 +105,9 @@
105
105
  </div></div>
106
106
 
107
107
  <div id="footer">
108
- Generated on Mon May 18 13:55:33 2026 by
108
+ Generated on Thu Jun 4 20:37:16 2026 by
109
109
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
110
- 0.9.34 (ruby-3.3.5).
110
+ 0.9.34 (ruby-3.4.9).
111
111
  </div>
112
112
 
113
113
  </div>
data/doc/file.form.html CHANGED
@@ -185,9 +185,9 @@
185
185
  </div></div>
186
186
 
187
187
  <div id="footer">
188
- Generated on Mon May 18 13:55:34 2026 by
188
+ Generated on Thu Jun 4 20:37:16 2026 by
189
189
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
190
- 0.9.34 (ruby-3.3.5).
190
+ 0.9.34 (ruby-3.4.9).
191
191
  </div>
192
192
 
193
193
  </div>
@@ -79,9 +79,9 @@
79
79
  </div></div>
80
80
 
81
81
  <div id="footer">
82
- Generated on Mon May 18 13:55:33 2026 by
82
+ Generated on Thu Jun 4 20:37:16 2026 by
83
83
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
84
- 0.9.34 (ruby-3.3.5).
84
+ 0.9.34 (ruby-3.4.9).
85
85
  </div>
86
86
 
87
87
  </div>
@@ -207,9 +207,9 @@
207
207
  </div></div>
208
208
 
209
209
  <div id="footer">
210
- Generated on Mon May 18 13:55:34 2026 by
210
+ Generated on Thu Jun 4 20:37:16 2026 by
211
211
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
212
- 0.9.34 (ruby-3.3.5).
212
+ 0.9.34 (ruby-3.4.9).
213
213
  </div>
214
214
 
215
215
  </div>
@@ -212,9 +212,9 @@
212
212
  </div></div>
213
213
 
214
214
  <div id="footer">
215
- Generated on Mon May 18 13:55:34 2026 by
215
+ Generated on Thu Jun 4 20:37:16 2026 by
216
216
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
217
- 0.9.34 (ruby-3.3.5).
217
+ 0.9.34 (ruby-3.4.9).
218
218
  </div>
219
219
 
220
220
  </div>
data/doc/file.index.html CHANGED
@@ -125,9 +125,9 @@
125
125
  </div></div>
126
126
 
127
127
  <div id="footer">
128
- Generated on Mon May 18 13:55:33 2026 by
128
+ Generated on Thu Jun 4 20:37:16 2026 by
129
129
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
130
- 0.9.34 (ruby-3.3.5).
130
+ 0.9.34 (ruby-3.4.9).
131
131
  </div>
132
132
 
133
133
  </div>
@@ -126,9 +126,9 @@
126
126
  </div></div>
127
127
 
128
128
  <div id="footer">
129
- Generated on Mon May 18 13:55:33 2026 by
129
+ Generated on Thu Jun 4 20:37:15 2026 by
130
130
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
131
- 0.9.34 (ruby-3.3.5).
131
+ 0.9.34 (ruby-3.4.9).
132
132
  </div>
133
133
 
134
134
  </div>
@@ -105,9 +105,9 @@
105
105
  </div></div>
106
106
 
107
107
  <div id="footer">
108
- Generated on Mon May 18 13:55:32 2026 by
108
+ Generated on Thu Jun 4 20:37:15 2026 by
109
109
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
110
- 0.9.34 (ruby-3.3.5).
110
+ 0.9.34 (ruby-3.4.9).
111
111
  </div>
112
112
 
113
113
  </div>
@@ -208,9 +208,9 @@
208
208
  </div></div>
209
209
 
210
210
  <div id="footer">
211
- Generated on Mon May 18 13:55:34 2026 by
211
+ Generated on Thu Jun 4 20:37:17 2026 by
212
212
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
213
- 0.9.34 (ruby-3.3.5).
213
+ 0.9.34 (ruby-3.4.9).
214
214
  </div>
215
215
 
216
216
  </div>
@@ -255,9 +255,9 @@ end
255
255
  </div></div>
256
256
 
257
257
  <div id="footer">
258
- Generated on Mon May 18 13:55:33 2026 by
258
+ Generated on Thu Jun 4 20:37:16 2026 by
259
259
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
260
- 0.9.34 (ruby-3.3.5).
260
+ 0.9.34 (ruby-3.4.9).
261
261
  </div>
262
262
 
263
263
  </div>
@@ -119,9 +119,9 @@
119
119
  </div></div>
120
120
 
121
121
  <div id="footer">
122
- Generated on Mon May 18 13:55:33 2026 by
122
+ Generated on Thu Jun 4 20:37:16 2026 by
123
123
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
124
- 0.9.34 (ruby-3.3.5).
124
+ 0.9.34 (ruby-3.4.9).
125
125
  </div>
126
126
 
127
127
  </div>
data/doc/file.list.html CHANGED
@@ -243,9 +243,9 @@
243
243
  </div></div>
244
244
 
245
245
  <div id="footer">
246
- Generated on Mon May 18 13:55:33 2026 by
246
+ Generated on Thu Jun 4 20:37:16 2026 by
247
247
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
248
- 0.9.34 (ruby-3.3.5).
248
+ 0.9.34 (ruby-3.4.9).
249
249
  </div>
250
250
 
251
251
  </div>
@@ -117,9 +117,9 @@
117
117
  </div></div>
118
118
 
119
119
  <div id="footer">
120
- Generated on Mon May 18 13:55:34 2026 by
120
+ Generated on Thu Jun 4 20:37:17 2026 by
121
121
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
122
- 0.9.34 (ruby-3.3.5).
122
+ 0.9.34 (ruby-3.4.9).
123
123
  </div>
124
124
 
125
125
  </div>
@@ -127,9 +127,9 @@
127
127
  </div></div>
128
128
 
129
129
  <div id="footer">
130
- Generated on Mon May 18 13:55:33 2026 by
130
+ Generated on Thu Jun 4 20:37:16 2026 by
131
131
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
132
- 0.9.34 (ruby-3.3.5).
132
+ 0.9.34 (ruby-3.4.9).
133
133
  </div>
134
134
 
135
135
  </div>
@@ -227,9 +227,9 @@ The number 8 has the binary form 1000. Enter a number and press ENTER: [8]
227
227
  </div></div>
228
228
 
229
229
  <div id="footer">
230
- Generated on Mon May 18 13:55:33 2026 by
230
+ Generated on Thu Jun 4 20:37:15 2026 by
231
231
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
232
- 0.9.34 (ruby-3.3.5).
232
+ 0.9.34 (ruby-3.4.9).
233
233
  </div>
234
234
 
235
235
  </div>
data/doc/file.new.html CHANGED
@@ -99,9 +99,9 @@
99
99
  </div></div>
100
100
 
101
101
  <div id="footer">
102
- Generated on Mon May 18 13:55:34 2026 by
102
+ Generated on Thu Jun 4 20:37:16 2026 by
103
103
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
104
- 0.9.34 (ruby-3.3.5).
104
+ 0.9.34 (ruby-3.4.9).
105
105
  </div>
106
106
 
107
107
  </div>
@@ -88,9 +88,9 @@
88
88
  </div></div>
89
89
 
90
90
  <div id="footer">
91
- Generated on Mon May 18 13:55:33 2026 by
91
+ Generated on Thu Jun 4 20:37:16 2026 by
92
92
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
93
- 0.9.34 (ruby-3.3.5).
93
+ 0.9.34 (ruby-3.4.9).
94
94
  </div>
95
95
 
96
96
  </div>
@@ -659,9 +659,9 @@
659
659
  </div></div>
660
660
 
661
661
  <div id="footer">
662
- Generated on Mon May 18 13:55:34 2026 by
662
+ Generated on Thu Jun 4 20:37:17 2026 by
663
663
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
664
- 0.9.34 (ruby-3.3.5).
664
+ 0.9.34 (ruby-3.4.9).
665
665
  </div>
666
666
 
667
667
  </div>
@@ -89,9 +89,9 @@
89
89
  </div></div>
90
90
 
91
91
  <div id="footer">
92
- Generated on Mon May 18 13:55:33 2026 by
92
+ Generated on Thu Jun 4 20:37:16 2026 by
93
93
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
94
- 0.9.34 (ruby-3.3.5).
94
+ 0.9.34 (ruby-3.4.9).
95
95
  </div>
96
96
 
97
97
  </div>
@@ -171,9 +171,9 @@
171
171
  </div></div>
172
172
 
173
173
  <div id="footer">
174
- Generated on Mon May 18 13:55:33 2026 by
174
+ Generated on Thu Jun 4 20:37:15 2026 by
175
175
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
176
- 0.9.34 (ruby-3.3.5).
176
+ 0.9.34 (ruby-3.4.9).
177
177
  </div>
178
178
 
179
179
  </div>