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
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c96b51289100f96400e08df0b199dfd9cac2cff364824cc343ba984529167815
4
- data.tar.gz: 5d8d262267b872b04a8e73cc8aa1c4d1a5e3f30ab472d3d760a28ba81f655d43
3
+ metadata.gz: f1399ff7edef087ca32d91983ba526d1b88e44c4135316e1db585ce400ee3724
4
+ data.tar.gz: 2c71b2098ab04ec49010894bbecaf1bbe22238aac458188cae067bfb99fbef86
5
5
  SHA512:
6
- metadata.gz: e412e808765697862c9f1c48ccadb89fed6c0e74a3487f88080230956ebced430e7ec78e2815b2a9fbc4ef6971885679f75ab4d639c4de3c678246844747bcd7
7
- data.tar.gz: 07c13110a8ebf76b1e244de0ef7960555a1d86e1af8b90370fc2893c27a8e9d81c499619ff1d2a1bbf9fcde6b1a4c1b96b0cc597bb5120edca68c0937f382e95
6
+ metadata.gz: d9987d9f0dcd5e2e7b78567751de03272c80fae7b607901e28ae01f76a81c8658b9a446bcbd85e3a0dad3429336e0e336ad597e974ffd07de1beeae2b916a29a
7
+ data.tar.gz: 1e4c208974fa5f9d7f6ad2f615d92eaa4f455235037613033bea4598c18e3a8a45e5fc379b6c8b774a1cd5e1f1d769ca0720a6ef65a5ab73162d645b9709c6c3
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 3.3.5
1
+ 3.4.9
data/CHANGELOG.md CHANGED
@@ -1,3 +1,15 @@
1
+ # 0.11.10
2
+
3
+ - Fix `Compony.intent` (and thus `add` / `render_intent` for custom intents) raising `ArgumentError (given 0, expected 1+)` on Ruby 3.4+. The signature `def self.intent(intent_or_comp_args, ...)` required a leading positional; Ruby 3.4 completed keyword/positional separation, so a kwargs-only call (e.g. `add label: '...', name: :print, button: {...}`) no longer binds the keywords to that positional. Changed to `def self.intent(*args, **kwargs)`.
4
+ - Make feasibility much faster on index/list pages. The autodetected `restrict_with_exception` /
5
+ `restrict_with_error` destroy preventions ran one existence query per row per dependent association
6
+ (`record.assoc.any?`), causing N+1 queries when rendering destroy buttons for a whole page. The
7
+ `List` component now batch-precomputes feasibility for the current page via the new
8
+ `Model.precompute_feasibility(records, action)`, issuing a single `WHERE foreign_key IN (...)`
9
+ existence query per dependent association regardless of row count. Associations that can't be safely
10
+ batched (custom `prevent` blocks, polymorphic/through associations, owner-dependent scopes) transparently
11
+ fall back to the previous per-record behavior, so results are unchanged - only the query count drops.
12
+
1
13
  # 0.11.9
2
14
 
3
15
  - Fix `standalone` overrides clobbering inherited `layout` / `skip_authentication` /
@@ -6,10 +18,10 @@
6
18
  defaults (`layout: true`, `skip_*: false`); `deep_merge!` then overwrote the value
7
19
  inherited from the parent. These now default to `nil` and the real defaults are only
8
20
  injected when `provide_defaults` is true (first call), so `compact` strips them on
9
- overrides and `deep_merge!` preserves the inherited value mirroring `VerbDsl#to_conf`.
21
+ overrides and `deep_merge!` preserves the inherited value - mirroring `VerbDsl#to_conf`.
10
22
  Subclasses no longer need to repeat `layout :backend` just to keep it.
11
23
  - Enhance documentation for better LLM support (and humans as well of course):
12
- - Documentation: add agent-oriented docs `CLAUDE.md` primer, `doc/llms.txt` index,
24
+ - Documentation: add agent-oriented docs - `CLAUDE.md` primer, `doc/llms.txt` index,
13
25
  `doc/guide/dsl_reference.md`, `doc/guide/glossary.md`, `doc/guide/gotchas.md`,
14
26
  `doc/guide/example_advanced.md`, `doc/guide/patterns.md`, `doc/guide/cookbook.md`
15
27
  (task-indexed recipes). Thicken the thin pre-built
@@ -18,7 +30,7 @@
18
30
  component; Edit link), and an `Edit` hook name in `edit.md` (`on_update_failed`).
19
31
  - Inline YARD: documented previously-bare DSL hooks (New/Edit/Destroy `on_*`) and added
20
32
  `@param`/`@return`/`@yield`/`@api` plus `@!group DSL` to the WithForm, Form,
21
- Resourceful, verb and standalone DSL methods. Comments only no behavior change.
33
+ Resourceful, verb and standalone DSL methods. Comments only - no behavior change.
22
34
  - `.yardopts` now lists the guide pages as extra files so the whole guide (including
23
35
  the new agent docs) renders in the YARD/rubydoc reference, not just `lib/`.
24
36
  - Add `doc/integrations.md` (companion-gem map mirroring the gemspec) and
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- compony (0.11.9.edge)
4
+ compony (0.11.10.edge)
5
5
  anchormodel (>= 0.3.0)
6
6
  cancancan (~> 3.6.1)
7
7
  dslblend (>= 0.0.3)
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.11.9
1
+ 0.11.10
data/compony.gemspec CHANGED
@@ -2,11 +2,11 @@
2
2
  # This file is auto-generated via: 'rake gemspec'.
3
3
 
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: compony 0.11.9 ruby lib
5
+ # stub: compony 0.11.10 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "compony".freeze
9
- s.version = "0.11.9".freeze
9
+ s.version = "0.11.10".freeze
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib".freeze]
@@ -14,7 +14,7 @@ Gem::Specification.new do |s|
14
14
  s.date = "1980-01-02"
15
15
  s.files = [".gitignore".freeze, ".ruby-version".freeze, ".yardopts".freeze, "CHANGELOG.md".freeze, "CLAUDE.md".freeze, "Gemfile".freeze, "Gemfile.lock".freeze, "LICENSE".freeze, "README.md".freeze, "Rakefile".freeze, "TODO.md".freeze, "VERSION".freeze, "app/controllers/compony_controller.rb".freeze, "compony.gemspec".freeze, "config/locales/de.yml".freeze, "config/locales/en.yml".freeze, "config/locales/fr.yml".freeze, "config/routes.rb".freeze, "doc/ComponentGenerator.html".freeze, "doc/Components.html".freeze, "doc/ComponentsGenerator.html".freeze, "doc/Compony.html".freeze, "doc/Compony/Component.html".freeze, "doc/Compony/ComponentMixins.html".freeze, "doc/Compony/ComponentMixins/Default.html".freeze, "doc/Compony/ComponentMixins/Default/Labelling.html".freeze, "doc/Compony/ComponentMixins/Default/Standalone.html".freeze, "doc/Compony/ComponentMixins/Default/Standalone/ResourcefulVerbDsl.html".freeze, "doc/Compony/ComponentMixins/Default/Standalone/StandaloneDsl.html".freeze, "doc/Compony/ComponentMixins/Default/Standalone/VerbDsl.html".freeze, "doc/Compony/ComponentMixins/Resourceful.html".freeze, "doc/Compony/Components.html".freeze, "doc/Compony/Components/Button.html".freeze, "doc/Compony/Components/Buttons.html".freeze, "doc/Compony/Components/Buttons/CssButton.html".freeze, "doc/Compony/Components/Buttons/Link.html".freeze, "doc/Compony/Components/Destroy.html".freeze, "doc/Compony/Components/Edit.html".freeze, "doc/Compony/Components/Form.html".freeze, "doc/Compony/Components/Index.html".freeze, "doc/Compony/Components/List.html".freeze, "doc/Compony/Components/New.html".freeze, "doc/Compony/Components/Show.html".freeze, "doc/Compony/Components/WithForm.html".freeze, "doc/Compony/ControllerMixin.html".freeze, "doc/Compony/Engine.html".freeze, "doc/Compony/ExposedIntentsDsl.html".freeze, "doc/Compony/Intent.html".freeze, "doc/Compony/ManageIntentsDsl.html".freeze, "doc/Compony/MethodAccessibleHash.html".freeze, "doc/Compony/ModelFields.html".freeze, "doc/Compony/ModelFields/Anchormodel.html".freeze, "doc/Compony/ModelFields/Association.html".freeze, "doc/Compony/ModelFields/Attachment.html".freeze, "doc/Compony/ModelFields/Base.html".freeze, "doc/Compony/ModelFields/Boolean.html".freeze, "doc/Compony/ModelFields/Color.html".freeze, "doc/Compony/ModelFields/Currency.html".freeze, "doc/Compony/ModelFields/Date.html".freeze, "doc/Compony/ModelFields/Datetime.html".freeze, "doc/Compony/ModelFields/Decimal.html".freeze, "doc/Compony/ModelFields/Email.html".freeze, "doc/Compony/ModelFields/Float.html".freeze, "doc/Compony/ModelFields/Integer.html".freeze, "doc/Compony/ModelFields/Percentage.html".freeze, "doc/Compony/ModelFields/Phone.html".freeze, "doc/Compony/ModelFields/RichText.html".freeze, "doc/Compony/ModelFields/String.html".freeze, "doc/Compony/ModelFields/Text.html".freeze, "doc/Compony/ModelFields/Time.html".freeze, "doc/Compony/ModelFields/Url.html".freeze, "doc/Compony/ModelMixin.html".freeze, "doc/Compony/NaturalOrdering.html".freeze, "doc/Compony/RequestContext.html".freeze, "doc/Compony/Version.html".freeze, "doc/Compony/ViewHelpers.html".freeze, "doc/Compony/VirtualModel.html".freeze, "doc/ComponyController.html".freeze, "doc/_index.html".freeze, "doc/class_list.html".freeze, "doc/css/common.css".freeze, "doc/css/full_list.css".freeze, "doc/css/style.css".freeze, "doc/file.CHANGELOG.html".freeze, "doc/file.README.html".freeze, "doc/file.basic_component.html".freeze, "doc/file.cookbook.html".freeze, "doc/file.destroy.html".freeze, "doc/file.dsl_reference.html".freeze, "doc/file.edit.html".freeze, "doc/file.example.html".freeze, "doc/file.example_advanced.html".freeze, "doc/file.feasibility.html".freeze, "doc/file.form.html".freeze, "doc/file.generators.html".freeze, "doc/file.glossary.html".freeze, "doc/file.gotchas.html".freeze, "doc/file.index.html".freeze, "doc/file.inheritance.html".freeze, "doc/file.installation.html".freeze, "doc/file.integrations.html".freeze, "doc/file.intents.html".freeze, "doc/file.internal_datastructures.html".freeze, "doc/file.list.html".freeze, "doc/file.maintaining.html".freeze, "doc/file.model_fields.html".freeze, "doc/file.nesting.html".freeze, "doc/file.new.html".freeze, "doc/file.ownership.html".freeze, "doc/file.patterns.html".freeze, "doc/file.pre_built_components.html".freeze, "doc/file.resourceful.html".freeze, "doc/file.show.html".freeze, "doc/file.standalone.html".freeze, "doc/file.virtual_models.html".freeze, "doc/file.with_form.html".freeze, "doc/file_list.html".freeze, "doc/frames.html".freeze, "doc/guide/basic_component.md".freeze, "doc/guide/cookbook.md".freeze, "doc/guide/dsl_reference.md".freeze, "doc/guide/example.md".freeze, "doc/guide/example_advanced.md".freeze, "doc/guide/feasibility.md".freeze, "doc/guide/generators.md".freeze, "doc/guide/glossary.md".freeze, "doc/guide/gotchas.md".freeze, "doc/guide/inheritance.md".freeze, "doc/guide/installation.md".freeze, "doc/guide/intents.md".freeze, "doc/guide/internal_datastructures.md".freeze, "doc/guide/maintaining.md".freeze, "doc/guide/model_fields.md".freeze, "doc/guide/nesting.md".freeze, "doc/guide/ownership.md".freeze, "doc/guide/patterns.md".freeze, "doc/guide/pre_built_components.md".freeze, "doc/guide/pre_built_components/destroy.md".freeze, "doc/guide/pre_built_components/edit.md".freeze, "doc/guide/pre_built_components/form.md".freeze, "doc/guide/pre_built_components/index.md".freeze, "doc/guide/pre_built_components/list.md".freeze, "doc/guide/pre_built_components/new.md".freeze, "doc/guide/pre_built_components/show.md".freeze, "doc/guide/pre_built_components/with_form.md".freeze, "doc/guide/resourceful.md".freeze, "doc/guide/standalone.md".freeze, "doc/guide/virtual_models.md".freeze, "doc/imgs/intro-example-destroy.png".freeze, "doc/imgs/intro-example-edit.png".freeze, "doc/imgs/intro-example-index.png".freeze, "doc/imgs/intro-example-new.png".freeze, "doc/imgs/intro-example-show.png".freeze, "doc/index.html".freeze, "doc/integrations.md".freeze, "doc/js/app.js".freeze, "doc/js/full_list.js".freeze, "doc/js/jquery.js".freeze, "doc/llms.txt".freeze, "doc/method_list.html".freeze, "doc/resourceful_lifecycle.graphml".freeze, "doc/resourceful_lifecycle.pdf".freeze, "doc/resourceful_lifecycle.png".freeze, "doc/top-level-namespace.html".freeze, "lib/compony.rb".freeze, "lib/compony/component.rb".freeze, "lib/compony/component_mixins/default/labelling.rb".freeze, "lib/compony/component_mixins/default/standalone.rb".freeze, "lib/compony/component_mixins/default/standalone/resourceful_verb_dsl.rb".freeze, "lib/compony/component_mixins/default/standalone/standalone_dsl.rb".freeze, "lib/compony/component_mixins/default/standalone/verb_dsl.rb".freeze, "lib/compony/component_mixins/resourceful.rb".freeze, "lib/compony/components/buttons/css_button.rb".freeze, "lib/compony/components/buttons/link.rb".freeze, "lib/compony/components/destroy.rb".freeze, "lib/compony/components/edit.rb".freeze, "lib/compony/components/form.rb".freeze, "lib/compony/components/index.rb".freeze, "lib/compony/components/list.rb".freeze, "lib/compony/components/new.rb".freeze, "lib/compony/components/show.rb".freeze, "lib/compony/components/with_form.rb".freeze, "lib/compony/controller_mixin.rb".freeze, "lib/compony/engine.rb".freeze, "lib/compony/intent.rb".freeze, "lib/compony/manage_intents_dsl.rb".freeze, "lib/compony/method_accessible_hash.rb".freeze, "lib/compony/model_fields/anchormodel.rb".freeze, "lib/compony/model_fields/association.rb".freeze, "lib/compony/model_fields/attachment.rb".freeze, "lib/compony/model_fields/base.rb".freeze, "lib/compony/model_fields/boolean.rb".freeze, "lib/compony/model_fields/color.rb".freeze, "lib/compony/model_fields/currency.rb".freeze, "lib/compony/model_fields/date.rb".freeze, "lib/compony/model_fields/datetime.rb".freeze, "lib/compony/model_fields/decimal.rb".freeze, "lib/compony/model_fields/email.rb".freeze, "lib/compony/model_fields/float.rb".freeze, "lib/compony/model_fields/integer.rb".freeze, "lib/compony/model_fields/percentage.rb".freeze, "lib/compony/model_fields/phone.rb".freeze, "lib/compony/model_fields/rich_text.rb".freeze, "lib/compony/model_fields/string.rb".freeze, "lib/compony/model_fields/text.rb".freeze, "lib/compony/model_fields/time.rb".freeze, "lib/compony/model_fields/url.rb".freeze, "lib/compony/model_mixin.rb".freeze, "lib/compony/natural_ordering.rb".freeze, "lib/compony/request_context.rb".freeze, "lib/compony/version.rb".freeze, "lib/compony/view_helpers.rb".freeze, "lib/compony/virtual_model.rb".freeze, "lib/generators/component/USAGE".freeze, "lib/generators/component/component_generator.rb".freeze, "lib/generators/component/templates/component.rb.erb".freeze, "lib/generators/component/templates/destroy.rb.erb".freeze, "lib/generators/component/templates/edit.rb.erb".freeze, "lib/generators/component/templates/form.rb.erb".freeze, "lib/generators/component/templates/index.rb.erb".freeze, "lib/generators/component/templates/list.rb.erb".freeze, "lib/generators/component/templates/new.rb.erb".freeze, "lib/generators/component/templates/show.rb.erb".freeze, "lib/generators/component/templates/with_base_component.rb.erb".freeze, "lib/generators/components/USAGE".freeze, "lib/generators/components/components_generator.rb".freeze, "logo.svg".freeze]
16
16
  s.required_ruby_version = Gem::Requirement.new(">= 3.3.5".freeze)
17
- s.rubygems_version = "4.0.11".freeze
17
+ s.rubygems_version = "4.0.13".freeze
18
18
  s.summary = "Compony is a Gem that allows you to write your Rails application in component-style fashion. It combines a controller action and route along \\ with its view into a single Ruby class. This allows writing much DRYer code, using inheritance even in views and much easier refactoring for your Rails \\ applications, helping you to keep the code clean as the application evolves.".freeze
19
19
 
20
20
  s.specification_version = 4
@@ -249,9 +249,9 @@
249
249
  </div>
250
250
 
251
251
  <div id="footer">
252
- Generated on Mon May 18 13:55:36 2026 by
252
+ Generated on Thu Jun 4 20:37:18 2026 by
253
253
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
254
- 0.9.34 (ruby-3.3.5).
254
+ 0.9.34 (ruby-3.4.9).
255
255
  </div>
256
256
 
257
257
  </div>
data/doc/Components.html CHANGED
@@ -95,9 +95,9 @@
95
95
  </div>
96
96
 
97
97
  <div id="footer">
98
- Generated on Mon May 18 13:55:35 2026 by
98
+ Generated on Thu Jun 4 20:37:17 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>
@@ -193,9 +193,9 @@
193
193
  </div>
194
194
 
195
195
  <div id="footer">
196
- Generated on Mon May 18 13:55:36 2026 by
196
+ Generated on Thu Jun 4 20:37:18 2026 by
197
197
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
198
- 0.9.34 (ruby-3.3.5).
198
+ 0.9.34 (ruby-3.4.9).
199
199
  </div>
200
200
 
201
201
  </div>
@@ -2072,9 +2072,9 @@
2072
2072
  </div>
2073
2073
 
2074
2074
  <div id="footer">
2075
- Generated on Mon May 18 13:55:35 2026 by
2075
+ Generated on Thu Jun 4 20:37:17 2026 by
2076
2076
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
2077
- 0.9.34 (ruby-3.3.5).
2077
+ 0.9.34 (ruby-3.4.9).
2078
2078
  </div>
2079
2079
 
2080
2080
  </div>
@@ -477,9 +477,9 @@
477
477
  </div>
478
478
 
479
479
  <div id="footer">
480
- Generated on Mon May 18 13:55:35 2026 by
480
+ Generated on Thu Jun 4 20:37:17 2026 by
481
481
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
482
- 0.9.34 (ruby-3.3.5).
482
+ 0.9.34 (ruby-3.4.9).
483
483
  </div>
484
484
 
485
485
  </div>
@@ -529,9 +529,9 @@
529
529
  </div>
530
530
 
531
531
  <div id="footer">
532
- Generated on Mon May 18 13:55:36 2026 by
532
+ Generated on Thu Jun 4 20:37:19 2026 by
533
533
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
534
- 0.9.34 (ruby-3.3.5).
534
+ 0.9.34 (ruby-3.4.9).
535
535
  </div>
536
536
 
537
537
  </div>
@@ -698,9 +698,9 @@
698
698
  </div>
699
699
 
700
700
  <div id="footer">
701
- Generated on Mon May 18 13:55:36 2026 by
701
+ Generated on Thu Jun 4 20:37:19 2026 by
702
702
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
703
- 0.9.34 (ruby-3.3.5).
703
+ 0.9.34 (ruby-3.4.9).
704
704
  </div>
705
705
 
706
706
  </div>
@@ -603,9 +603,9 @@
603
603
  </div>
604
604
 
605
605
  <div id="footer">
606
- Generated on Mon May 18 13:55:36 2026 by
606
+ Generated on Thu Jun 4 20:37:19 2026 by
607
607
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
608
- 0.9.34 (ruby-3.3.5).
608
+ 0.9.34 (ruby-3.4.9).
609
609
  </div>
610
610
 
611
611
  </div>
@@ -868,9 +868,9 @@
868
868
  </div>
869
869
 
870
870
  <div id="footer">
871
- Generated on Mon May 18 13:55:35 2026 by
871
+ Generated on Thu Jun 4 20:37:17 2026 by
872
872
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
873
- 0.9.34 (ruby-3.3.5).
873
+ 0.9.34 (ruby-3.4.9).
874
874
  </div>
875
875
 
876
876
  </div>
@@ -116,9 +116,9 @@
116
116
  </div>
117
117
 
118
118
  <div id="footer">
119
- Generated on Mon May 18 13:55:35 2026 by
119
+ Generated on Thu Jun 4 20:37:17 2026 by
120
120
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
121
- 0.9.34 (ruby-3.3.5).
121
+ 0.9.34 (ruby-3.4.9).
122
122
  </div>
123
123
 
124
124
  </div>
@@ -1253,9 +1253,9 @@
1253
1253
  </div>
1254
1254
 
1255
1255
  <div id="footer">
1256
- Generated on Mon May 18 13:55:35 2026 by
1256
+ Generated on Thu Jun 4 20:37:17 2026 by
1257
1257
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1258
- 0.9.34 (ruby-3.3.5).
1258
+ 0.9.34 (ruby-3.4.9).
1259
1259
  </div>
1260
1260
 
1261
1261
  </div>
@@ -116,9 +116,9 @@
116
116
  </div>
117
117
 
118
118
  <div id="footer">
119
- Generated on Mon May 18 13:55:35 2026 by
119
+ Generated on Thu Jun 4 20:37:17 2026 by
120
120
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
121
- 0.9.34 (ruby-3.3.5).
121
+ 0.9.34 (ruby-3.4.9).
122
122
  </div>
123
123
 
124
124
  </div>
@@ -272,9 +272,9 @@
272
272
  </div>
273
273
 
274
274
  <div id="footer">
275
- Generated on Mon May 18 13:55:36 2026 by
275
+ Generated on Thu Jun 4 20:37:18 2026 by
276
276
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
277
- 0.9.34 (ruby-3.3.5).
277
+ 0.9.34 (ruby-3.4.9).
278
278
  </div>
279
279
 
280
280
  </div>
@@ -242,9 +242,9 @@
242
242
  </div>
243
243
 
244
244
  <div id="footer">
245
- Generated on Mon May 18 13:55:36 2026 by
245
+ Generated on Thu Jun 4 20:37:18 2026 by
246
246
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
247
- 0.9.34 (ruby-3.3.5).
247
+ 0.9.34 (ruby-3.4.9).
248
248
  </div>
249
249
 
250
250
  </div>
@@ -116,9 +116,9 @@
116
116
  </div>
117
117
 
118
118
  <div id="footer">
119
- Generated on Mon May 18 13:55:35 2026 by
119
+ Generated on Thu Jun 4 20:37:17 2026 by
120
120
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
121
- 0.9.34 (ruby-3.3.5).
121
+ 0.9.34 (ruby-3.4.9).
122
122
  </div>
123
123
 
124
124
  </div>
@@ -428,9 +428,9 @@
428
428
  </div>
429
429
 
430
430
  <div id="footer">
431
- Generated on Mon May 18 13:55:36 2026 by
431
+ Generated on Thu Jun 4 20:37:18 2026 by
432
432
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
433
- 0.9.34 (ruby-3.3.5).
433
+ 0.9.34 (ruby-3.4.9).
434
434
  </div>
435
435
 
436
436
  </div>
@@ -524,9 +524,9 @@
524
524
  </div>
525
525
 
526
526
  <div id="footer">
527
- Generated on Mon May 18 13:55:35 2026 by
527
+ Generated on Thu Jun 4 20:37:18 2026 by
528
528
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
529
- 0.9.34 (ruby-3.3.5).
529
+ 0.9.34 (ruby-3.4.9).
530
530
  </div>
531
531
 
532
532
  </div>
@@ -1825,9 +1825,9 @@
1825
1825
  </div>
1826
1826
 
1827
1827
  <div id="footer">
1828
- Generated on Mon May 18 13:55:35 2026 by
1828
+ Generated on Thu Jun 4 20:37:18 2026 by
1829
1829
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1830
- 0.9.34 (ruby-3.3.5).
1830
+ 0.9.34 (ruby-3.4.9).
1831
1831
  </div>
1832
1832
 
1833
1833
  </div>
@@ -162,9 +162,9 @@
162
162
  </div>
163
163
 
164
164
  <div id="footer">
165
- Generated on Mon May 18 13:55:36 2026 by
165
+ Generated on Thu Jun 4 20:37:18 2026 by
166
166
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
167
- 0.9.34 (ruby-3.3.5).
167
+ 0.9.34 (ruby-3.4.9).
168
168
  </div>
169
169
 
170
170
  </div>
@@ -1809,12 +1809,12 @@
1809
1809
  <pre class="lines">
1810
1810
 
1811
1811
 
1812
- 390
1813
- 391
1814
- 392</pre>
1812
+ 398
1813
+ 399
1814
+ 400</pre>
1815
1815
  </td>
1816
1816
  <td>
1817
- <pre class="code"><span class="info file"># File 'lib/compony/components/list.rb', line 390</span>
1817
+ <pre class="code"><span class="info file"># File 'lib/compony/components/list.rb', line 398</span>
1818
1818
 
1819
1819
  <span class='kw'>def</span> <span class='id identifier rubyid_filtering_enabled?'>filtering_enabled?</span>
1820
1820
  <span class='ivar'>@filtering</span> <span class='op'>&amp;&amp;</span> <span class='kw'>defined?</span><span class='lparen'>(</span><span class='const'>Ransack</span><span class='rparen'>)</span> <span class='op'>&amp;&amp;</span> <span class='op'>!</span><span class='ivar'>@skip_filtering</span>
@@ -1945,12 +1945,12 @@
1945
1945
  <pre class="lines">
1946
1946
 
1947
1947
 
1948
- 410
1949
- 411
1950
- 412</pre>
1948
+ 418
1949
+ 419
1950
+ 420</pre>
1951
1951
  </td>
1952
1952
  <td>
1953
- <pre class="code"><span class="info file"># File 'lib/compony/components/list.rb', line 410</span>
1953
+ <pre class="code"><span class="info file"># File 'lib/compony/components/list.rb', line 418</span>
1954
1954
 
1955
1955
  <span class='kw'>def</span> <span class='id identifier rubyid_pagination_enabled?'>pagination_enabled?</span>
1956
1956
  <span class='ivar'>@pagination</span> <span class='op'>&amp;&amp;</span> <span class='op'>!</span><span class='ivar'>@skip_pagination</span>
@@ -2019,7 +2019,15 @@
2019
2019
  263
2020
2020
  264
2021
2021
  265
2022
- 266</pre>
2022
+ 266
2023
+ 267
2024
+ 268
2025
+ 269
2026
+ 270
2027
+ 271
2028
+ 272
2029
+ 273
2030
+ 274</pre>
2023
2031
  </td>
2024
2032
  <td>
2025
2033
  <pre class="code"><span class="info file"># File 'lib/compony/components/list.rb', line 233</span>
@@ -2050,6 +2058,14 @@
2050
2058
  <span class='ivar'>@total_pages</span> <span class='op'>=</span> <span class='int'>1</span>
2051
2059
  <span class='ivar'>@pagination_offset</span> <span class='op'>=</span> <span class='int'>0</span>
2052
2060
  <span class='kw'>end</span>
2061
+ <span class='comment'># Batch-precompute feasibility for the records on this page, avoiding N+1 queries from per-row destroy buttons (see ModelMixin#precompute_feasibility).
2062
+ </span> <span class='kw'>if</span> <span class='id identifier rubyid_data_class'>data_class</span><span class='period'>.</span><span class='id identifier rubyid_respond_to?'>respond_to?</span><span class='lparen'>(</span><span class='symbol'>:precompute_feasibility</span><span class='rparen'>)</span> <span class='op'>&amp;&amp;</span> <span class='op'>!</span><span class='ivar'>@skip_row_intents</span>
2063
+ <span class='id identifier rubyid_page_records'>page_records</span> <span class='op'>=</span> <span class='ivar'>@processed_data</span><span class='period'>.</span><span class='id identifier rubyid_to_a'>to_a</span>
2064
+ <span class='kw'>if</span> <span class='id identifier rubyid_page_records'>page_records</span><span class='period'>.</span><span class='id identifier rubyid_any?'>any?</span>
2065
+ <span class='id identifier rubyid_action_names'>action_names</span> <span class='op'>=</span> <span class='id identifier rubyid_row_intents'>row_intents</span><span class='lparen'>(</span><span class='label'>data:</span> <span class='id identifier rubyid_page_records'>page_records</span><span class='period'>.</span><span class='id identifier rubyid_first'>first</span><span class='rparen'>)</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'>:name</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_uniq'>uniq</span>
2066
+ <span class='id identifier rubyid_action_names'>action_names</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_action_name'>action_name</span><span class='op'>|</span> <span class='id identifier rubyid_data_class'>data_class</span><span class='period'>.</span><span class='id identifier rubyid_precompute_feasibility'>precompute_feasibility</span><span class='lparen'>(</span><span class='id identifier rubyid_page_records'>page_records</span><span class='comma'>,</span> <span class='id identifier rubyid_action_name'>action_name</span><span class='rparen'>)</span> <span class='rbrace'>}</span>
2067
+ <span class='kw'>end</span>
2068
+ <span class='kw'>end</span>
2053
2069
  <span class='comment'># Apply skips to configs
2054
2070
  </span> <span class='comment'># Exclude columns that are skipped or the user is not allowed to display
2055
2071
  </span> <span class='ivar'>@columns</span><span class='period'>.</span><span class='id identifier rubyid_select!'>select!</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_col'>col</span><span class='comma'>,</span> <span class='id identifier rubyid__'>_</span><span class='op'>|</span>
@@ -2385,12 +2401,12 @@
2385
2401
  <pre class="lines">
2386
2402
 
2387
2403
 
2388
- 395
2389
- 396
2390
- 397</pre>
2404
+ 403
2405
+ 404
2406
+ 405</pre>
2391
2407
  </td>
2392
2408
  <td>
2393
- <pre class="code"><span class="info file"># File 'lib/compony/components/list.rb', line 395</span>
2409
+ <pre class="code"><span class="info file"># File 'lib/compony/components/list.rb', line 403</span>
2394
2410
 
2395
2411
  <span class='kw'>def</span> <span class='id identifier rubyid_sorting_enabled?'>sorting_enabled?</span>
2396
2412
  <span class='lparen'>(</span><span class='lparen'>(</span><span class='ivar'>@sorting_in_filter</span> <span class='op'>&amp;&amp;</span> <span class='op'>!</span><span class='ivar'>@skip_sorting_in_filter</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='lparen'>(</span><span class='ivar'>@sorting_links</span> <span class='op'>&amp;&amp;</span> <span class='op'>!</span><span class='ivar'>@skip_sorting_links</span><span class='rparen'>)</span><span class='rparen'>)</span> <span class='op'>&amp;&amp;</span> <span class='kw'>defined?</span><span class='lparen'>(</span><span class='const'>Ransack</span><span class='rparen'>)</span>
@@ -2480,12 +2496,12 @@
2480
2496
  <pre class="lines">
2481
2497
 
2482
2498
 
2483
- 400
2484
- 401
2485
- 402</pre>
2499
+ 408
2500
+ 409
2501
+ 410</pre>
2486
2502
  </td>
2487
2503
  <td>
2488
- <pre class="code"><span class="info file"># File 'lib/compony/components/list.rb', line 400</span>
2504
+ <pre class="code"><span class="info file"># File 'lib/compony/components/list.rb', line 408</span>
2489
2505
 
2490
2506
  <span class='kw'>def</span> <span class='id identifier rubyid_sorting_in_filter_enabled?'>sorting_in_filter_enabled?</span>
2491
2507
  <span class='id identifier rubyid_sorting_enabled?'>sorting_enabled?</span> <span class='op'>&amp;&amp;</span> <span class='ivar'>@sorting_in_filter</span> <span class='op'>&amp;&amp;</span> <span class='op'>!</span><span class='ivar'>@skip_sorting_in_filter</span>
@@ -2521,18 +2537,18 @@
2521
2537
  <pre class="lines">
2522
2538
 
2523
2539
 
2524
- 415
2525
- 416
2526
- 417
2527
- 418
2528
- 419
2529
- 420
2530
- 421
2531
- 422
2532
- 423</pre>
2540
+ 423
2541
+ 424
2542
+ 425
2543
+ 426
2544
+ 427
2545
+ 428
2546
+ 429
2547
+ 430
2548
+ 431</pre>
2533
2549
  </td>
2534
2550
  <td>
2535
- <pre class="code"><span class="info file"># File 'lib/compony/components/list.rb', line 415</span>
2551
+ <pre class="code"><span class="info file"># File 'lib/compony/components/list.rb', line 423</span>
2536
2552
 
2537
2553
  <span class='kw'>def</span> <span class='id identifier rubyid_sorting_in_filter_select_opts'>sorting_in_filter_select_opts</span>
2538
2554
  <span class='ivar'>@sorts</span><span class='period'>.</span><span class='id identifier rubyid_flat_map'>flat_map</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_sort'>sort</span><span class='op'>|</span>
@@ -2628,12 +2644,12 @@
2628
2644
  <pre class="lines">
2629
2645
 
2630
2646
 
2631
- 405
2632
- 406
2633
- 407</pre>
2647
+ 413
2648
+ 414
2649
+ 415</pre>
2634
2650
  </td>
2635
2651
  <td>
2636
- <pre class="code"><span class="info file"># File 'lib/compony/components/list.rb', line 405</span>
2652
+ <pre class="code"><span class="info file"># File 'lib/compony/components/list.rb', line 413</span>
2637
2653
 
2638
2654
  <span class='kw'>def</span> <span class='id identifier rubyid_sorting_links_enabled?'>sorting_links_enabled?</span>
2639
2655
  <span class='id identifier rubyid_sorting_enabled?'>sorting_enabled?</span> <span class='op'>&amp;&amp;</span> <span class='ivar'>@sorting_links</span> <span class='op'>&amp;&amp;</span> <span class='op'>!</span><span class='ivar'>@skip_sorting_links</span>
@@ -2689,9 +2705,9 @@
2689
2705
  </div>
2690
2706
 
2691
2707
  <div id="footer">
2692
- Generated on Mon May 18 13:55:36 2026 by
2708
+ Generated on Thu Jun 4 20:37:18 2026 by
2693
2709
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
2694
- 0.9.34 (ruby-3.3.5).
2710
+ 0.9.34 (ruby-3.4.9).
2695
2711
  </div>
2696
2712
 
2697
2713
  </div>
@@ -524,9 +524,9 @@
524
524
  </div>
525
525
 
526
526
  <div id="footer">
527
- Generated on Mon May 18 13:55:35 2026 by
527
+ Generated on Thu Jun 4 20:37:17 2026 by
528
528
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
529
- 0.9.34 (ruby-3.3.5).
529
+ 0.9.34 (ruby-3.4.9).
530
530
  </div>
531
531
 
532
532
  </div>
@@ -755,9 +755,9 @@
755
755
  </div>
756
756
 
757
757
  <div id="footer">
758
- Generated on Mon May 18 13:55:36 2026 by
758
+ Generated on Thu Jun 4 20:37:18 2026 by
759
759
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
760
- 0.9.34 (ruby-3.3.5).
760
+ 0.9.34 (ruby-3.4.9).
761
761
  </div>
762
762
 
763
763
  </div>
@@ -738,9 +738,9 @@
738
738
  </div>
739
739
 
740
740
  <div id="footer">
741
- Generated on Mon May 18 13:55:36 2026 by
741
+ Generated on Thu Jun 4 20:37:18 2026 by
742
742
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
743
- 0.9.34 (ruby-3.3.5).
743
+ 0.9.34 (ruby-3.4.9).
744
744
  </div>
745
745
 
746
746
  </div>
@@ -118,9 +118,9 @@
118
118
  </div>
119
119
 
120
120
  <div id="footer">
121
- Generated on Mon May 18 13:55:35 2026 by
121
+ Generated on Thu Jun 4 20:37:17 2026 by
122
122
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
123
- 0.9.34 (ruby-3.3.5).
123
+ 0.9.34 (ruby-3.4.9).
124
124
  </div>
125
125
 
126
126
  </div>
@@ -126,9 +126,9 @@
126
126
  </div>
127
127
 
128
128
  <div id="footer">
129
- Generated on Mon May 18 13:55:35 2026 by
129
+ Generated on Thu Jun 4 20:37:17 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>
@@ -123,9 +123,9 @@
123
123
  </div>
124
124
 
125
125
  <div id="footer">
126
- Generated on Mon May 18 13:55:35 2026 by
126
+ Generated on Thu Jun 4 20:37:17 2026 by
127
127
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
128
- 0.9.34 (ruby-3.3.5).
128
+ 0.9.34 (ruby-3.4.9).
129
129
  </div>
130
130
 
131
131
  </div>