compony 0.11.7 → 0.11.9

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 (134) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +36 -1
  3. data/CHANGELOG.md +35 -0
  4. data/CLAUDE.md +85 -0
  5. data/Gemfile.lock +1 -1
  6. data/README.md +13 -3
  7. data/VERSION +1 -1
  8. data/compony.gemspec +3 -3
  9. data/doc/ComponentGenerator.html +1 -1
  10. data/doc/Components.html +1 -1
  11. data/doc/ComponentsGenerator.html +1 -1
  12. data/doc/Compony/Component.html +54 -54
  13. data/doc/Compony/ComponentMixins/Default/Labelling.html +1 -1
  14. data/doc/Compony/ComponentMixins/Default/Standalone/ResourcefulVerbDsl.html +1 -1
  15. data/doc/Compony/ComponentMixins/Default/Standalone/StandaloneDsl.html +109 -70
  16. data/doc/Compony/ComponentMixins/Default/Standalone/VerbDsl.html +64 -28
  17. data/doc/Compony/ComponentMixins/Default/Standalone.html +1 -1
  18. data/doc/Compony/ComponentMixins/Default.html +1 -1
  19. data/doc/Compony/ComponentMixins/Resourceful.html +213 -74
  20. data/doc/Compony/ComponentMixins.html +1 -1
  21. data/doc/Compony/Components/Buttons/CssButton.html +1 -1
  22. data/doc/Compony/Components/Buttons/Link.html +1 -1
  23. data/doc/Compony/Components/Buttons.html +1 -1
  24. data/doc/Compony/Components/Destroy.html +83 -29
  25. data/doc/Compony/Components/Edit.html +110 -38
  26. data/doc/Compony/Components/Form.html +551 -208
  27. data/doc/Compony/Components/Index.html +1 -1
  28. data/doc/Compony/Components/List.html +3 -3
  29. data/doc/Compony/Components/New.html +110 -38
  30. data/doc/Compony/Components/Show.html +1 -1
  31. data/doc/Compony/Components/WithForm.html +194 -47
  32. data/doc/Compony/Components.html +1 -1
  33. data/doc/Compony/ControllerMixin.html +1 -1
  34. data/doc/Compony/Engine.html +1 -1
  35. data/doc/Compony/Intent.html +2 -2
  36. data/doc/Compony/ManageIntentsDsl.html +1 -1
  37. data/doc/Compony/MethodAccessibleHash.html +1 -1
  38. data/doc/Compony/ModelFields/Anchormodel.html +1 -1
  39. data/doc/Compony/ModelFields/Association.html +1 -1
  40. data/doc/Compony/ModelFields/Attachment.html +1 -1
  41. data/doc/Compony/ModelFields/Base.html +1 -1
  42. data/doc/Compony/ModelFields/Boolean.html +1 -1
  43. data/doc/Compony/ModelFields/Color.html +1 -1
  44. data/doc/Compony/ModelFields/Currency.html +1 -1
  45. data/doc/Compony/ModelFields/Date.html +1 -1
  46. data/doc/Compony/ModelFields/Datetime.html +1 -1
  47. data/doc/Compony/ModelFields/Decimal.html +1 -1
  48. data/doc/Compony/ModelFields/Email.html +1 -1
  49. data/doc/Compony/ModelFields/Float.html +1 -1
  50. data/doc/Compony/ModelFields/Integer.html +1 -1
  51. data/doc/Compony/ModelFields/Percentage.html +1 -1
  52. data/doc/Compony/ModelFields/Phone.html +1 -1
  53. data/doc/Compony/ModelFields/RichText.html +1 -1
  54. data/doc/Compony/ModelFields/String.html +1 -1
  55. data/doc/Compony/ModelFields/Text.html +1 -1
  56. data/doc/Compony/ModelFields/Time.html +1 -1
  57. data/doc/Compony/ModelFields/Url.html +1 -1
  58. data/doc/Compony/ModelFields.html +1 -1
  59. data/doc/Compony/ModelMixin.html +1 -1
  60. data/doc/Compony/NaturalOrdering.html +1 -1
  61. data/doc/Compony/RequestContext.html +1 -1
  62. data/doc/Compony/Version.html +1 -1
  63. data/doc/Compony/ViewHelpers.html +1 -1
  64. data/doc/Compony/VirtualModel.html +88 -2
  65. data/doc/Compony.html +1 -1
  66. data/doc/ComponyController.html +1 -1
  67. data/doc/_index.html +97 -1
  68. data/doc/file.CHANGELOG.html +758 -0
  69. data/doc/file.README.html +25 -4
  70. data/doc/file.basic_component.html +314 -0
  71. data/doc/file.cookbook.html +189 -0
  72. data/doc/file.destroy.html +105 -0
  73. data/doc/file.dsl_reference.html +672 -0
  74. data/doc/file.edit.html +109 -0
  75. data/doc/file.example.html +291 -0
  76. data/doc/file.example_advanced.html +257 -0
  77. data/doc/file.feasibility.html +115 -0
  78. data/doc/file.form.html +195 -0
  79. data/doc/file.generators.html +89 -0
  80. data/doc/file.glossary.html +217 -0
  81. data/doc/file.gotchas.html +222 -0
  82. data/doc/file.index.html +135 -0
  83. data/doc/file.inheritance.html +136 -0
  84. data/doc/file.installation.html +115 -0
  85. data/doc/file.integrations.html +218 -0
  86. data/doc/file.intents.html +265 -0
  87. data/doc/file.internal_datastructures.html +129 -0
  88. data/doc/file.list.html +253 -0
  89. data/doc/file.maintaining.html +127 -0
  90. data/doc/file.model_fields.html +137 -0
  91. data/doc/file.nesting.html +237 -0
  92. data/doc/file.new.html +109 -0
  93. data/doc/file.ownership.html +98 -0
  94. data/doc/file.patterns.html +669 -0
  95. data/doc/file.pre_built_components.html +99 -0
  96. data/doc/file.resourceful.html +181 -0
  97. data/doc/file.show.html +158 -0
  98. data/doc/file.standalone.html +233 -0
  99. data/doc/file.virtual_models.html +117 -0
  100. data/doc/file.with_form.html +157 -0
  101. data/doc/file_list.html +160 -0
  102. data/doc/guide/cookbook.md +41 -0
  103. data/doc/guide/dsl_reference.md +155 -0
  104. data/doc/guide/example_advanced.md +209 -0
  105. data/doc/guide/generators.md +1 -1
  106. data/doc/guide/glossary.md +42 -0
  107. data/doc/guide/gotchas.md +125 -0
  108. data/doc/guide/maintaining.md +64 -0
  109. data/doc/guide/patterns.md +681 -0
  110. data/doc/guide/pre_built_components/edit.md +1 -1
  111. data/doc/guide/pre_built_components/index.md +64 -1
  112. data/doc/guide/pre_built_components/list.md +111 -7
  113. data/doc/guide/pre_built_components/show.md +57 -2
  114. data/doc/guide/pre_built_components/with_form.md +56 -9
  115. data/doc/guide/pre_built_components.md +7 -2
  116. data/doc/guide/standalone.md +16 -1
  117. data/doc/index.html +25 -4
  118. data/doc/integrations.md +61 -0
  119. data/doc/llms.txt +62 -0
  120. data/doc/method_list.html +236 -228
  121. data/doc/top-level-namespace.html +1 -1
  122. data/lib/compony/component.rb +8 -3
  123. data/lib/compony/component_mixins/default/standalone/standalone_dsl.rb +32 -15
  124. data/lib/compony/component_mixins/default/standalone/verb_dsl.rb +11 -3
  125. data/lib/compony/component_mixins/resourceful.rb +30 -16
  126. data/lib/compony/components/destroy.rb +21 -1
  127. data/lib/compony/components/edit.rb +25 -1
  128. data/lib/compony/components/form.rb +63 -21
  129. data/lib/compony/components/list.rb +1 -1
  130. data/lib/compony/components/new.rb +25 -1
  131. data/lib/compony/components/with_form.rb +20 -5
  132. data/lib/compony/intent.rb +1 -1
  133. data/lib/compony/virtual_model.rb +11 -0
  134. metadata +43 -1
@@ -222,7 +222,7 @@
222
222
  </div>
223
223
 
224
224
  <div id="footer">
225
- Generated on Wed May 13 16:03:54 2026 by
225
+ Generated on Mon May 18 13:55:36 2026 by
226
226
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
227
227
  0.9.34 (ruby-3.3.5).
228
228
  </div>
@@ -222,7 +222,7 @@
222
222
  </div>
223
223
 
224
224
  <div id="footer">
225
- Generated on Wed May 13 16:03:54 2026 by
225
+ Generated on Mon May 18 13:55:36 2026 by
226
226
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
227
227
  0.9.34 (ruby-3.3.5).
228
228
  </div>
@@ -291,7 +291,7 @@
291
291
  </div>
292
292
 
293
293
  <div id="footer">
294
- Generated on Wed May 13 16:03:53 2026 by
294
+ Generated on Mon May 18 13:55:36 2026 by
295
295
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
296
296
  0.9.34 (ruby-3.3.5).
297
297
  </div>
@@ -222,7 +222,7 @@
222
222
  </div>
223
223
 
224
224
  <div id="footer">
225
- Generated on Wed May 13 16:03:54 2026 by
225
+ Generated on Mon May 18 13:55:36 2026 by
226
226
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
227
227
  0.9.34 (ruby-3.3.5).
228
228
  </div>
@@ -144,7 +144,7 @@
144
144
  </div>
145
145
 
146
146
  <div id="footer">
147
- Generated on Wed May 13 16:03:53 2026 by
147
+ Generated on Mon May 18 13:55:36 2026 by
148
148
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
149
149
  0.9.34 (ruby-3.3.5).
150
150
  </div>
@@ -144,7 +144,7 @@
144
144
  </div>
145
145
 
146
146
  <div id="footer">
147
- Generated on Wed May 13 16:03:53 2026 by
147
+ Generated on Mon May 18 13:55:36 2026 by
148
148
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
149
149
  0.9.34 (ruby-3.3.5).
150
150
  </div>
@@ -144,7 +144,7 @@
144
144
  </div>
145
145
 
146
146
  <div id="footer">
147
- Generated on Wed May 13 16:03:53 2026 by
147
+ Generated on Mon May 18 13:55:36 2026 by
148
148
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
149
149
  0.9.34 (ruby-3.3.5).
150
150
  </div>
@@ -230,7 +230,7 @@
230
230
  </div>
231
231
 
232
232
  <div id="footer">
233
- Generated on Wed May 13 16:03:53 2026 by
233
+ Generated on Mon May 18 13:55:36 2026 by
234
234
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
235
235
  0.9.34 (ruby-3.3.5).
236
236
  </div>
@@ -116,7 +116,7 @@
116
116
  </div>
117
117
 
118
118
  <div id="footer">
119
- Generated on Wed May 13 16:03:52 2026 by
119
+ Generated on Mon May 18 13:55:35 2026 by
120
120
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
121
121
  0.9.34 (ruby-3.3.5).
122
122
  </div>
@@ -519,7 +519,7 @@
519
519
  </div>
520
520
 
521
521
  <div id="footer">
522
- Generated on Wed May 13 16:03:52 2026 by
522
+ Generated on Mon May 18 13:55:35 2026 by
523
523
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
524
524
  0.9.34 (ruby-3.3.5).
525
525
  </div>
@@ -290,7 +290,7 @@
290
290
  </div>
291
291
 
292
292
  <div id="footer">
293
- Generated on Wed May 13 16:03:53 2026 by
293
+ Generated on Mon May 18 13:55:36 2026 by
294
294
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
295
295
  0.9.34 (ruby-3.3.5).
296
296
  </div>
@@ -1149,7 +1149,7 @@
1149
1149
  </div>
1150
1150
 
1151
1151
  <div id="footer">
1152
- Generated on Wed May 13 16:03:53 2026 by
1152
+ Generated on Mon May 18 13:55:36 2026 by
1153
1153
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1154
1154
  0.9.34 (ruby-3.3.5).
1155
1155
  </div>
@@ -129,7 +129,7 @@
129
129
  </div>
130
130
 
131
131
  <div id="footer">
132
- Generated on Wed May 13 16:03:52 2026 by
132
+ Generated on Mon May 18 13:55:35 2026 by
133
133
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
134
134
  0.9.34 (ruby-3.3.5).
135
135
  </div>
@@ -222,7 +222,7 @@
222
222
  </div>
223
223
 
224
224
  <div id="footer">
225
- Generated on Wed May 13 16:03:52 2026 by
225
+ Generated on Mon May 18 13:55:35 2026 by
226
226
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
227
227
  0.9.34 (ruby-3.3.5).
228
228
  </div>
@@ -122,7 +122,43 @@
122
122
 
123
123
 
124
124
 
125
+
126
+ <h2>
127
+ Instance Method Summary
128
+ <small><a href="#" class="summary_toggle">collapse</a></small>
129
+ </h2>
130
+
131
+ <ul class="summary">
132
+
133
+ <li class="public ">
134
+ <span class="summary_signature">
135
+
136
+ <a href="#attributes-instance_method" title="#attributes (instance method)">#<strong>attributes</strong> &#x21d2; Object </a>
137
+
138
+
139
+
140
+ </span>
141
+
142
+
143
+
144
+
145
+
146
+
147
+
148
+
149
+
150
+ <span class="summary_desc"><div class='inline'>
151
+ <p><code>include ActiveModel::Attributes</code> above shadows <code>ActiveType::VirtualAttributes#attributes</code>, which would otherwise merge virtual columns into the returned hash.</p>
152
+ </div></span>
153
+
154
+ </li>
125
155
 
156
+
157
+ </ul>
158
+
159
+
160
+
161
+
126
162
 
127
163
 
128
164
 
@@ -131,7 +167,6 @@
131
167
 
132
168
 
133
169
 
134
- <h2>Method Summary</h2>
135
170
 
136
171
  <h3 class="inherited">Methods included from <span class='object_link'><a href="ModelMixin.html" title="Compony::ModelMixin (module)">ModelMixin</a></span></h3>
137
172
  <p class="inherited"><span class='object_link'><a href="ModelMixin.html#feasibility_messages-instance_method" title="Compony::ModelMixin#feasibility_messages (method)">#feasibility_messages</a></span>, <span class='object_link'><a href="ModelMixin.html#feasible%3F-instance_method" title="Compony::ModelMixin#feasible? (method)">#feasible?</a></span>, <span class='object_link'><a href="ModelMixin.html#field-instance_method" title="Compony::ModelMixin#field (method)">#field</a></span>, <span class='object_link'><a href="ModelMixin.html#full_feasibility_messages-instance_method" title="Compony::ModelMixin#full_feasibility_messages (method)">#full_feasibility_messages</a></span></p>
@@ -139,10 +174,61 @@
139
174
 
140
175
 
141
176
 
177
+ <div id="instance_method_details" class="method_details_list">
178
+ <h2>Instance Method Details</h2>
179
+
180
+
181
+ <div class="method_details first">
182
+ <h3 class="signature first" id="attributes-instance_method">
183
+
184
+ #<strong>attributes</strong> &#x21d2; <tt>Object</tt>
185
+
186
+
187
+
188
+
189
+
190
+ </h3><div class="docstring">
191
+ <div class="discussion">
192
+
193
+ <p><code>include ActiveModel::Attributes</code> above shadows <code>ActiveType::VirtualAttributes#attributes</code>, which would otherwise merge virtual columns into the returned hash. Without this restoration, attributes declared via <code>attribute :foo, :type</code> (routed to <code>at_attribute</code> by ActiveType) are written into <code>@virtual_attributes</code> but invisible to <code>#attributes</code>, breaking callers that do <code>model.attributes.slice(...)</code> etc. Mirrors <code>ActiveType::VirtualAttributes#attributes</code>.</p>
194
+
195
+
196
+ </div>
197
+ </div>
198
+ <div class="tags">
199
+
200
+
201
+ </div><table class="source_code">
202
+ <tr>
203
+ <td>
204
+ <pre class="lines">
205
+
206
+
207
+ 15
208
+ 16
209
+ 17
210
+ 18
211
+ 19</pre>
212
+ </td>
213
+ <td>
214
+ <pre class="code"><span class="info file"># File 'lib/compony/virtual_model.rb', line 15</span>
215
+
216
+ <span class='kw'>def</span> <span class='id identifier rubyid_attributes'>attributes</span>
217
+ <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='period'>.</span><span class='id identifier rubyid__virtual_column_names'>_virtual_column_names</span><span class='period'>.</span><span class='id identifier rubyid_each_with_object'>each_with_object</span><span class='lparen'>(</span><span class='kw'>super</span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_name'>name</span><span class='comma'>,</span> <span class='id identifier rubyid_attrs'>attrs</span><span class='op'>|</span>
218
+ <span class='id identifier rubyid_attrs'>attrs</span><span class='lbracket'>[</span><span class='id identifier rubyid_name'>name</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_read_virtual_attribute'>read_virtual_attribute</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='rparen'>)</span>
219
+ <span class='kw'>end</span>
220
+ <span class='kw'>end</span></pre>
221
+ </td>
222
+ </tr>
223
+ </table>
224
+ </div>
225
+
226
+ </div>
227
+
142
228
  </div>
143
229
 
144
230
  <div id="footer">
145
- Generated on Wed May 13 16:03:53 2026 by
231
+ Generated on Mon May 18 13:55:35 2026 by
146
232
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
147
233
  0.9.34 (ruby-3.3.5).
148
234
  </div>
data/doc/Compony.html CHANGED
@@ -1674,7 +1674,7 @@
1674
1674
  </div>
1675
1675
 
1676
1676
  <div id="footer">
1677
- Generated on Wed May 13 16:03:52 2026 by
1677
+ Generated on Mon May 18 13:55:35 2026 by
1678
1678
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1679
1679
  0.9.34 (ruby-3.3.5).
1680
1680
  </div>
@@ -114,7 +114,7 @@
114
114
  </div>
115
115
 
116
116
  <div id="footer">
117
- Generated on Wed May 13 16:03:54 2026 by
117
+ Generated on Mon May 18 13:55:36 2026 by
118
118
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
119
119
  0.9.34 (ruby-3.3.5).
120
120
  </div>
data/doc/_index.html CHANGED
@@ -63,6 +63,102 @@
63
63
  <li class="r1"><a href="index.html" title="README">README</a></li>
64
64
 
65
65
 
66
+ <li class="r2"><a href="file.CHANGELOG.html" title="CHANGELOG">CHANGELOG</a></li>
67
+
68
+
69
+ <li class="r1"><a href="file.installation.html" title="installation">installation</a></li>
70
+
71
+
72
+ <li class="r2"><a href="file.example.html" title="example">example</a></li>
73
+
74
+
75
+ <li class="r1"><a href="file.example_advanced.html" title="example_advanced">example_advanced</a></li>
76
+
77
+
78
+ <li class="r2"><a href="file.basic_component.html" title="basic_component">basic_component</a></li>
79
+
80
+
81
+ <li class="r1"><a href="file.standalone.html" title="standalone">standalone</a></li>
82
+
83
+
84
+ <li class="r2"><a href="file.inheritance.html" title="inheritance">inheritance</a></li>
85
+
86
+
87
+ <li class="r1"><a href="file.nesting.html" title="nesting">nesting</a></li>
88
+
89
+
90
+ <li class="r2"><a href="file.resourceful.html" title="resourceful">resourceful</a></li>
91
+
92
+
93
+ <li class="r1"><a href="file.intents.html" title="intents">intents</a></li>
94
+
95
+
96
+ <li class="r2"><a href="file.feasibility.html" title="feasibility">feasibility</a></li>
97
+
98
+
99
+ <li class="r1"><a href="file.ownership.html" title="ownership">ownership</a></li>
100
+
101
+
102
+ <li class="r2"><a href="file.model_fields.html" title="model_fields">model_fields</a></li>
103
+
104
+
105
+ <li class="r1"><a href="file.generators.html" title="generators">generators</a></li>
106
+
107
+
108
+ <li class="r2"><a href="file.internal_datastructures.html" title="internal_datastructures">internal_datastructures</a></li>
109
+
110
+
111
+ <li class="r1"><a href="file.virtual_models.html" title="virtual_models">virtual_models</a></li>
112
+
113
+
114
+ <li class="r2"><a href="file.pre_built_components.html" title="pre_built_components">pre_built_components</a></li>
115
+
116
+
117
+ <li class="r1"><a href="file.show.html" title="show">show</a></li>
118
+
119
+
120
+ <li class="r2"><a href="file.index.html" title="index">index</a></li>
121
+
122
+
123
+ <li class="r1"><a href="file.list.html" title="list">list</a></li>
124
+
125
+
126
+ <li class="r2"><a href="file.destroy.html" title="destroy">destroy</a></li>
127
+
128
+
129
+ <li class="r1"><a href="file.with_form.html" title="with_form">with_form</a></li>
130
+
131
+
132
+ <li class="r2"><a href="file.form.html" title="form">form</a></li>
133
+
134
+
135
+ <li class="r1"><a href="file.new.html" title="new">new</a></li>
136
+
137
+
138
+ <li class="r2"><a href="file.edit.html" title="edit">edit</a></li>
139
+
140
+
141
+ <li class="r1"><a href="file.dsl_reference.html" title="dsl_reference">dsl_reference</a></li>
142
+
143
+
144
+ <li class="r2"><a href="file.glossary.html" title="glossary">glossary</a></li>
145
+
146
+
147
+ <li class="r1"><a href="file.gotchas.html" title="gotchas">gotchas</a></li>
148
+
149
+
150
+ <li class="r2"><a href="file.patterns.html" title="patterns">patterns</a></li>
151
+
152
+
153
+ <li class="r1"><a href="file.cookbook.html" title="cookbook">cookbook</a></li>
154
+
155
+
156
+ <li class="r2"><a href="file.integrations.html" title="integrations">integrations</a></li>
157
+
158
+
159
+ <li class="r1"><a href="file.maintaining.html" title="maintaining">maintaining</a></li>
160
+
161
+
66
162
  </ul>
67
163
 
68
164
  <div class="clear"></div>
@@ -622,7 +718,7 @@
622
718
  </div>
623
719
 
624
720
  <div id="footer">
625
- Generated on Wed May 13 16:03:52 2026 by
721
+ Generated on Mon May 18 13:55:32 2026 by
626
722
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
627
723
  0.9.34 (ruby-3.3.5).
628
724
  </div>