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.
- checksums.yaml +4 -4
- data/.ruby-version +1 -1
- data/CHANGELOG.md +15 -3
- data/Gemfile.lock +1 -1
- data/VERSION +1 -1
- data/compony.gemspec +3 -3
- data/doc/ComponentGenerator.html +2 -2
- data/doc/Components.html +2 -2
- data/doc/ComponentsGenerator.html +2 -2
- data/doc/Compony/Component.html +2 -2
- data/doc/Compony/ComponentMixins/Default/Labelling.html +2 -2
- data/doc/Compony/ComponentMixins/Default/Standalone/ResourcefulVerbDsl.html +2 -2
- data/doc/Compony/ComponentMixins/Default/Standalone/StandaloneDsl.html +2 -2
- data/doc/Compony/ComponentMixins/Default/Standalone/VerbDsl.html +2 -2
- data/doc/Compony/ComponentMixins/Default/Standalone.html +2 -2
- data/doc/Compony/ComponentMixins/Default.html +2 -2
- data/doc/Compony/ComponentMixins/Resourceful.html +2 -2
- data/doc/Compony/ComponentMixins.html +2 -2
- data/doc/Compony/Components/Buttons/CssButton.html +2 -2
- data/doc/Compony/Components/Buttons/Link.html +2 -2
- data/doc/Compony/Components/Buttons.html +2 -2
- data/doc/Compony/Components/Destroy.html +2 -2
- data/doc/Compony/Components/Edit.html +2 -2
- data/doc/Compony/Components/Form.html +2 -2
- data/doc/Compony/Components/Index.html +2 -2
- data/doc/Compony/Components/List.html +49 -33
- data/doc/Compony/Components/New.html +2 -2
- data/doc/Compony/Components/Show.html +2 -2
- data/doc/Compony/Components/WithForm.html +2 -2
- data/doc/Compony/Components.html +2 -2
- data/doc/Compony/ControllerMixin.html +2 -2
- data/doc/Compony/Engine.html +2 -2
- data/doc/Compony/Intent.html +2 -2
- data/doc/Compony/ManageIntentsDsl.html +2 -2
- data/doc/Compony/MethodAccessibleHash.html +2 -2
- data/doc/Compony/ModelFields/Anchormodel.html +2 -2
- data/doc/Compony/ModelFields/Association.html +2 -2
- data/doc/Compony/ModelFields/Attachment.html +2 -2
- data/doc/Compony/ModelFields/Base.html +2 -2
- data/doc/Compony/ModelFields/Boolean.html +2 -2
- data/doc/Compony/ModelFields/Color.html +2 -2
- data/doc/Compony/ModelFields/Currency.html +2 -2
- data/doc/Compony/ModelFields/Date.html +2 -2
- data/doc/Compony/ModelFields/Datetime.html +2 -2
- data/doc/Compony/ModelFields/Decimal.html +2 -2
- data/doc/Compony/ModelFields/Email.html +2 -2
- data/doc/Compony/ModelFields/Float.html +2 -2
- data/doc/Compony/ModelFields/Integer.html +2 -2
- data/doc/Compony/ModelFields/Percentage.html +2 -2
- data/doc/Compony/ModelFields/Phone.html +2 -2
- data/doc/Compony/ModelFields/RichText.html +2 -2
- data/doc/Compony/ModelFields/String.html +2 -2
- data/doc/Compony/ModelFields/Text.html +2 -2
- data/doc/Compony/ModelFields/Time.html +2 -2
- data/doc/Compony/ModelFields/Url.html +2 -2
- data/doc/Compony/ModelFields.html +2 -2
- data/doc/Compony/ModelMixin.html +36 -36
- data/doc/Compony/NaturalOrdering.html +2 -2
- data/doc/Compony/RequestContext.html +2 -2
- data/doc/Compony/Version.html +2 -2
- data/doc/Compony/ViewHelpers.html +2 -2
- data/doc/Compony/VirtualModel.html +2 -2
- data/doc/Compony.html +33 -37
- data/doc/ComponyController.html +2 -2
- data/doc/_index.html +2 -2
- data/doc/file.CHANGELOG.html +12 -5
- data/doc/file.README.html +2 -2
- data/doc/file.basic_component.html +2 -2
- data/doc/file.cookbook.html +2 -2
- data/doc/file.destroy.html +2 -2
- data/doc/file.dsl_reference.html +2 -2
- data/doc/file.edit.html +2 -2
- data/doc/file.example.html +2 -2
- data/doc/file.example_advanced.html +2 -2
- data/doc/file.feasibility.html +2 -2
- data/doc/file.form.html +2 -2
- data/doc/file.generators.html +2 -2
- data/doc/file.glossary.html +2 -2
- data/doc/file.gotchas.html +2 -2
- data/doc/file.index.html +2 -2
- data/doc/file.inheritance.html +2 -2
- data/doc/file.installation.html +2 -2
- data/doc/file.integrations.html +2 -2
- data/doc/file.intents.html +2 -2
- data/doc/file.internal_datastructures.html +2 -2
- data/doc/file.list.html +2 -2
- data/doc/file.maintaining.html +2 -2
- data/doc/file.model_fields.html +2 -2
- data/doc/file.nesting.html +2 -2
- data/doc/file.new.html +2 -2
- data/doc/file.ownership.html +2 -2
- data/doc/file.patterns.html +2 -2
- data/doc/file.pre_built_components.html +2 -2
- data/doc/file.resourceful.html +2 -2
- data/doc/file.show.html +2 -2
- data/doc/file.standalone.html +2 -2
- data/doc/file.virtual_models.html +2 -2
- data/doc/file.with_form.html +2 -2
- data/doc/index.html +2 -2
- data/doc/top-level-namespace.html +2 -2
- data/lib/compony/components/list.rb +8 -0
- data/lib/compony/model_mixin.rb +66 -3
- data/lib/compony.rb +4 -6
- 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>(
|
|
426
|
+
<a href="#intent-class_method" title="intent (class method)">.<strong>intent</strong>(*args) ⇒ 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
|
|
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
|
|
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
|
|
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>(
|
|
1283
|
+
.<strong>intent</strong>(*args) ⇒ <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
|
|
1318
|
-
<span class='
|
|
1319
|
-
|
|
1320
|
-
<span class='kw'>
|
|
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
|
|
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
|
-
|
|
1538
|
-
|
|
1539
|
-
|
|
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
|
|
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
|
-
|
|
1658
|
-
|
|
1659
|
-
|
|
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
|
|
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
|
|
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.
|
|
1675
|
+
0.9.34 (ruby-3.4.9).
|
|
1680
1676
|
</div>
|
|
1681
1677
|
|
|
1682
1678
|
</div>
|
data/doc/ComponyController.html
CHANGED
|
@@ -114,9 +114,9 @@
|
|
|
114
114
|
</div>
|
|
115
115
|
|
|
116
116
|
<div id="footer">
|
|
117
|
-
Generated on
|
|
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.
|
|
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
|
|
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.
|
|
723
|
+
0.9.34 (ruby-3.4.9).
|
|
724
724
|
</div>
|
|
725
725
|
|
|
726
726
|
</div>
|
data/doc/file.CHANGELOG.html
CHANGED
|
@@ -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: '...', 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
|
|
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
|
|
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
|
|
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
|
|
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.
|
|
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
|
|
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.
|
|
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
|
|
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.
|
|
309
|
+
0.9.34 (ruby-3.4.9).
|
|
310
310
|
</div>
|
|
311
311
|
|
|
312
312
|
</div>
|
data/doc/file.cookbook.html
CHANGED
|
@@ -179,9 +179,9 @@
|
|
|
179
179
|
</div></div>
|
|
180
180
|
|
|
181
181
|
<div id="footer">
|
|
182
|
-
Generated on
|
|
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.
|
|
184
|
+
0.9.34 (ruby-3.4.9).
|
|
185
185
|
</div>
|
|
186
186
|
|
|
187
187
|
</div>
|
data/doc/file.destroy.html
CHANGED
|
@@ -95,9 +95,9 @@
|
|
|
95
95
|
</div></div>
|
|
96
96
|
|
|
97
97
|
<div id="footer">
|
|
98
|
-
Generated on
|
|
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.
|
|
100
|
+
0.9.34 (ruby-3.4.9).
|
|
101
101
|
</div>
|
|
102
102
|
|
|
103
103
|
</div>
|
data/doc/file.dsl_reference.html
CHANGED
|
@@ -662,9 +662,9 @@
|
|
|
662
662
|
</div></div>
|
|
663
663
|
|
|
664
664
|
<div id="footer">
|
|
665
|
-
Generated on
|
|
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.
|
|
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
|
|
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.
|
|
104
|
+
0.9.34 (ruby-3.4.9).
|
|
105
105
|
</div>
|
|
106
106
|
|
|
107
107
|
</div>
|
data/doc/file.example.html
CHANGED
|
@@ -281,9 +281,9 @@
|
|
|
281
281
|
</div></div>
|
|
282
282
|
|
|
283
283
|
<div id="footer">
|
|
284
|
-
Generated on
|
|
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.
|
|
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
|
|
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.
|
|
252
|
+
0.9.34 (ruby-3.4.9).
|
|
253
253
|
</div>
|
|
254
254
|
|
|
255
255
|
</div>
|
data/doc/file.feasibility.html
CHANGED
|
@@ -105,9 +105,9 @@
|
|
|
105
105
|
</div></div>
|
|
106
106
|
|
|
107
107
|
<div id="footer">
|
|
108
|
-
Generated on
|
|
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.
|
|
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
|
|
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.
|
|
190
|
+
0.9.34 (ruby-3.4.9).
|
|
191
191
|
</div>
|
|
192
192
|
|
|
193
193
|
</div>
|
data/doc/file.generators.html
CHANGED
|
@@ -79,9 +79,9 @@
|
|
|
79
79
|
</div></div>
|
|
80
80
|
|
|
81
81
|
<div id="footer">
|
|
82
|
-
Generated on
|
|
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.
|
|
84
|
+
0.9.34 (ruby-3.4.9).
|
|
85
85
|
</div>
|
|
86
86
|
|
|
87
87
|
</div>
|
data/doc/file.glossary.html
CHANGED
|
@@ -207,9 +207,9 @@
|
|
|
207
207
|
</div></div>
|
|
208
208
|
|
|
209
209
|
<div id="footer">
|
|
210
|
-
Generated on
|
|
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.
|
|
212
|
+
0.9.34 (ruby-3.4.9).
|
|
213
213
|
</div>
|
|
214
214
|
|
|
215
215
|
</div>
|
data/doc/file.gotchas.html
CHANGED
|
@@ -212,9 +212,9 @@
|
|
|
212
212
|
</div></div>
|
|
213
213
|
|
|
214
214
|
<div id="footer">
|
|
215
|
-
Generated on
|
|
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.
|
|
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
|
|
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.
|
|
130
|
+
0.9.34 (ruby-3.4.9).
|
|
131
131
|
</div>
|
|
132
132
|
|
|
133
133
|
</div>
|
data/doc/file.inheritance.html
CHANGED
|
@@ -126,9 +126,9 @@
|
|
|
126
126
|
</div></div>
|
|
127
127
|
|
|
128
128
|
<div id="footer">
|
|
129
|
-
Generated on
|
|
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.
|
|
131
|
+
0.9.34 (ruby-3.4.9).
|
|
132
132
|
</div>
|
|
133
133
|
|
|
134
134
|
</div>
|
data/doc/file.installation.html
CHANGED
|
@@ -105,9 +105,9 @@
|
|
|
105
105
|
</div></div>
|
|
106
106
|
|
|
107
107
|
<div id="footer">
|
|
108
|
-
Generated on
|
|
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.
|
|
110
|
+
0.9.34 (ruby-3.4.9).
|
|
111
111
|
</div>
|
|
112
112
|
|
|
113
113
|
</div>
|
data/doc/file.integrations.html
CHANGED
|
@@ -208,9 +208,9 @@
|
|
|
208
208
|
</div></div>
|
|
209
209
|
|
|
210
210
|
<div id="footer">
|
|
211
|
-
Generated on
|
|
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.
|
|
213
|
+
0.9.34 (ruby-3.4.9).
|
|
214
214
|
</div>
|
|
215
215
|
|
|
216
216
|
</div>
|
data/doc/file.intents.html
CHANGED
|
@@ -255,9 +255,9 @@ end
|
|
|
255
255
|
</div></div>
|
|
256
256
|
|
|
257
257
|
<div id="footer">
|
|
258
|
-
Generated on
|
|
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.
|
|
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
|
|
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.
|
|
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
|
|
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.
|
|
248
|
+
0.9.34 (ruby-3.4.9).
|
|
249
249
|
</div>
|
|
250
250
|
|
|
251
251
|
</div>
|
data/doc/file.maintaining.html
CHANGED
|
@@ -117,9 +117,9 @@
|
|
|
117
117
|
</div></div>
|
|
118
118
|
|
|
119
119
|
<div id="footer">
|
|
120
|
-
Generated on
|
|
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.
|
|
122
|
+
0.9.34 (ruby-3.4.9).
|
|
123
123
|
</div>
|
|
124
124
|
|
|
125
125
|
</div>
|
data/doc/file.model_fields.html
CHANGED
|
@@ -127,9 +127,9 @@
|
|
|
127
127
|
</div></div>
|
|
128
128
|
|
|
129
129
|
<div id="footer">
|
|
130
|
-
Generated on
|
|
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.
|
|
132
|
+
0.9.34 (ruby-3.4.9).
|
|
133
133
|
</div>
|
|
134
134
|
|
|
135
135
|
</div>
|
data/doc/file.nesting.html
CHANGED
|
@@ -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
|
|
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.
|
|
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
|
|
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.
|
|
104
|
+
0.9.34 (ruby-3.4.9).
|
|
105
105
|
</div>
|
|
106
106
|
|
|
107
107
|
</div>
|
data/doc/file.ownership.html
CHANGED
|
@@ -88,9 +88,9 @@
|
|
|
88
88
|
</div></div>
|
|
89
89
|
|
|
90
90
|
<div id="footer">
|
|
91
|
-
Generated on
|
|
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.
|
|
93
|
+
0.9.34 (ruby-3.4.9).
|
|
94
94
|
</div>
|
|
95
95
|
|
|
96
96
|
</div>
|
data/doc/file.patterns.html
CHANGED
|
@@ -659,9 +659,9 @@
|
|
|
659
659
|
</div></div>
|
|
660
660
|
|
|
661
661
|
<div id="footer">
|
|
662
|
-
Generated on
|
|
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.
|
|
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
|
|
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.
|
|
94
|
+
0.9.34 (ruby-3.4.9).
|
|
95
95
|
</div>
|
|
96
96
|
|
|
97
97
|
</div>
|
data/doc/file.resourceful.html
CHANGED
|
@@ -171,9 +171,9 @@
|
|
|
171
171
|
</div></div>
|
|
172
172
|
|
|
173
173
|
<div id="footer">
|
|
174
|
-
Generated on
|
|
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.
|
|
176
|
+
0.9.34 (ruby-3.4.9).
|
|
177
177
|
</div>
|
|
178
178
|
|
|
179
179
|
</div>
|