compony 0.11.8 → 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.
- checksums.yaml +4 -4
- data/.yardopts +36 -1
- data/CHANGELOG.md +31 -0
- data/CLAUDE.md +85 -0
- data/Gemfile.lock +1 -1
- data/README.md +13 -3
- data/VERSION +1 -1
- data/compony.gemspec +3 -3
- data/doc/ComponentGenerator.html +1 -1
- data/doc/Components.html +1 -1
- data/doc/ComponentsGenerator.html +1 -1
- data/doc/Compony/Component.html +54 -54
- data/doc/Compony/ComponentMixins/Default/Labelling.html +1 -1
- data/doc/Compony/ComponentMixins/Default/Standalone/ResourcefulVerbDsl.html +1 -1
- data/doc/Compony/ComponentMixins/Default/Standalone/StandaloneDsl.html +109 -70
- data/doc/Compony/ComponentMixins/Default/Standalone/VerbDsl.html +64 -28
- data/doc/Compony/ComponentMixins/Default/Standalone.html +1 -1
- data/doc/Compony/ComponentMixins/Default.html +1 -1
- data/doc/Compony/ComponentMixins/Resourceful.html +213 -74
- data/doc/Compony/ComponentMixins.html +1 -1
- data/doc/Compony/Components/Buttons/CssButton.html +1 -1
- data/doc/Compony/Components/Buttons/Link.html +1 -1
- data/doc/Compony/Components/Buttons.html +1 -1
- data/doc/Compony/Components/Destroy.html +83 -29
- data/doc/Compony/Components/Edit.html +110 -38
- data/doc/Compony/Components/Form.html +551 -208
- data/doc/Compony/Components/Index.html +1 -1
- data/doc/Compony/Components/List.html +3 -3
- data/doc/Compony/Components/New.html +110 -38
- data/doc/Compony/Components/Show.html +1 -1
- data/doc/Compony/Components/WithForm.html +194 -47
- data/doc/Compony/Components.html +1 -1
- data/doc/Compony/ControllerMixin.html +1 -1
- data/doc/Compony/Engine.html +1 -1
- data/doc/Compony/Intent.html +2 -2
- data/doc/Compony/ManageIntentsDsl.html +1 -1
- data/doc/Compony/MethodAccessibleHash.html +1 -1
- data/doc/Compony/ModelFields/Anchormodel.html +1 -1
- data/doc/Compony/ModelFields/Association.html +1 -1
- data/doc/Compony/ModelFields/Attachment.html +1 -1
- data/doc/Compony/ModelFields/Base.html +1 -1
- data/doc/Compony/ModelFields/Boolean.html +1 -1
- data/doc/Compony/ModelFields/Color.html +1 -1
- data/doc/Compony/ModelFields/Currency.html +1 -1
- data/doc/Compony/ModelFields/Date.html +1 -1
- data/doc/Compony/ModelFields/Datetime.html +1 -1
- data/doc/Compony/ModelFields/Decimal.html +1 -1
- data/doc/Compony/ModelFields/Email.html +1 -1
- data/doc/Compony/ModelFields/Float.html +1 -1
- data/doc/Compony/ModelFields/Integer.html +1 -1
- data/doc/Compony/ModelFields/Percentage.html +1 -1
- data/doc/Compony/ModelFields/Phone.html +1 -1
- data/doc/Compony/ModelFields/RichText.html +1 -1
- data/doc/Compony/ModelFields/String.html +1 -1
- data/doc/Compony/ModelFields/Text.html +1 -1
- data/doc/Compony/ModelFields/Time.html +1 -1
- data/doc/Compony/ModelFields/Url.html +1 -1
- data/doc/Compony/ModelFields.html +1 -1
- data/doc/Compony/ModelMixin.html +1 -1
- data/doc/Compony/NaturalOrdering.html +1 -1
- data/doc/Compony/RequestContext.html +1 -1
- data/doc/Compony/Version.html +1 -1
- data/doc/Compony/ViewHelpers.html +1 -1
- data/doc/Compony/VirtualModel.html +1 -1
- data/doc/Compony.html +1 -1
- data/doc/ComponyController.html +1 -1
- data/doc/_index.html +97 -1
- data/doc/file.CHANGELOG.html +758 -0
- data/doc/file.README.html +25 -4
- data/doc/file.basic_component.html +314 -0
- data/doc/file.cookbook.html +189 -0
- data/doc/file.destroy.html +105 -0
- data/doc/file.dsl_reference.html +672 -0
- data/doc/file.edit.html +109 -0
- data/doc/file.example.html +291 -0
- data/doc/file.example_advanced.html +257 -0
- data/doc/file.feasibility.html +115 -0
- data/doc/file.form.html +195 -0
- data/doc/file.generators.html +89 -0
- data/doc/file.glossary.html +217 -0
- data/doc/file.gotchas.html +222 -0
- data/doc/file.index.html +135 -0
- data/doc/file.inheritance.html +136 -0
- data/doc/file.installation.html +115 -0
- data/doc/file.integrations.html +218 -0
- data/doc/file.intents.html +265 -0
- data/doc/file.internal_datastructures.html +129 -0
- data/doc/file.list.html +253 -0
- data/doc/file.maintaining.html +127 -0
- data/doc/file.model_fields.html +137 -0
- data/doc/file.nesting.html +237 -0
- data/doc/file.new.html +109 -0
- data/doc/file.ownership.html +98 -0
- data/doc/file.patterns.html +669 -0
- data/doc/file.pre_built_components.html +99 -0
- data/doc/file.resourceful.html +181 -0
- data/doc/file.show.html +158 -0
- data/doc/file.standalone.html +233 -0
- data/doc/file.virtual_models.html +117 -0
- data/doc/file.with_form.html +157 -0
- data/doc/file_list.html +160 -0
- data/doc/guide/cookbook.md +41 -0
- data/doc/guide/dsl_reference.md +155 -0
- data/doc/guide/example_advanced.md +209 -0
- data/doc/guide/generators.md +1 -1
- data/doc/guide/glossary.md +42 -0
- data/doc/guide/gotchas.md +125 -0
- data/doc/guide/maintaining.md +64 -0
- data/doc/guide/patterns.md +681 -0
- data/doc/guide/pre_built_components/edit.md +1 -1
- data/doc/guide/pre_built_components/index.md +64 -1
- data/doc/guide/pre_built_components/list.md +111 -7
- data/doc/guide/pre_built_components/show.md +57 -2
- data/doc/guide/pre_built_components/with_form.md +56 -9
- data/doc/guide/pre_built_components.md +7 -2
- data/doc/guide/standalone.md +16 -1
- data/doc/index.html +25 -4
- data/doc/integrations.md +61 -0
- data/doc/llms.txt +62 -0
- data/doc/top-level-namespace.html +1 -1
- data/lib/compony/component.rb +8 -3
- data/lib/compony/component_mixins/default/standalone/standalone_dsl.rb +32 -15
- data/lib/compony/component_mixins/default/standalone/verb_dsl.rb +11 -3
- data/lib/compony/component_mixins/resourceful.rb +30 -16
- data/lib/compony/components/destroy.rb +21 -1
- data/lib/compony/components/edit.rb +25 -1
- data/lib/compony/components/form.rb +63 -21
- data/lib/compony/components/list.rb +1 -1
- data/lib/compony/components/new.rb +25 -1
- data/lib/compony/components/with_form.rb +20 -5
- data/lib/compony/intent.rb +1 -1
- metadata +43 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: c96b51289100f96400e08df0b199dfd9cac2cff364824cc343ba984529167815
|
|
4
|
+
data.tar.gz: 5d8d262267b872b04a8e73cc8aa1c4d1a5e3f30ab472d3d760a28ba81f655d43
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e412e808765697862c9f1c48ccadb89fed6c0e74a3487f88080230956ebced430e7ec78e2815b2a9fbc4ef6971885679f75ab4d639c4de3c678246844747bcd7
|
|
7
|
+
data.tar.gz: 07c13110a8ebf76b1e244de0ef7960555a1d86e1af8b90370fc2893c27a8e9d81c499619ff1d2a1bbf9fcde6b1a4c1b96b0cc597bb5120edca68c0937f382e95
|
data/.yardopts
CHANGED
|
@@ -1,2 +1,37 @@
|
|
|
1
1
|
--markup=markdown
|
|
2
|
-
--protected
|
|
2
|
+
--protected
|
|
3
|
+
--main README.md
|
|
4
|
+
-
|
|
5
|
+
README.md
|
|
6
|
+
CHANGELOG.md
|
|
7
|
+
doc/guide/installation.md
|
|
8
|
+
doc/guide/example.md
|
|
9
|
+
doc/guide/example_advanced.md
|
|
10
|
+
doc/guide/basic_component.md
|
|
11
|
+
doc/guide/standalone.md
|
|
12
|
+
doc/guide/inheritance.md
|
|
13
|
+
doc/guide/nesting.md
|
|
14
|
+
doc/guide/resourceful.md
|
|
15
|
+
doc/guide/intents.md
|
|
16
|
+
doc/guide/feasibility.md
|
|
17
|
+
doc/guide/ownership.md
|
|
18
|
+
doc/guide/model_fields.md
|
|
19
|
+
doc/guide/generators.md
|
|
20
|
+
doc/guide/internal_datastructures.md
|
|
21
|
+
doc/guide/virtual_models.md
|
|
22
|
+
doc/guide/pre_built_components.md
|
|
23
|
+
doc/guide/pre_built_components/show.md
|
|
24
|
+
doc/guide/pre_built_components/index.md
|
|
25
|
+
doc/guide/pre_built_components/list.md
|
|
26
|
+
doc/guide/pre_built_components/destroy.md
|
|
27
|
+
doc/guide/pre_built_components/with_form.md
|
|
28
|
+
doc/guide/pre_built_components/form.md
|
|
29
|
+
doc/guide/pre_built_components/new.md
|
|
30
|
+
doc/guide/pre_built_components/edit.md
|
|
31
|
+
doc/guide/dsl_reference.md
|
|
32
|
+
doc/guide/glossary.md
|
|
33
|
+
doc/guide/gotchas.md
|
|
34
|
+
doc/guide/patterns.md
|
|
35
|
+
doc/guide/cookbook.md
|
|
36
|
+
doc/integrations.md
|
|
37
|
+
doc/guide/maintaining.md
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,34 @@
|
|
|
1
|
+
# 0.11.9
|
|
2
|
+
|
|
3
|
+
- Fix `standalone` overrides clobbering inherited `layout` / `skip_authentication` /
|
|
4
|
+
`skip_forgery_protection`. A second `standalone` call (e.g. a subclass overriding a
|
|
5
|
+
pre-built component) re-ran `StandaloneDsl` whose `to_conf` always emitted the hard
|
|
6
|
+
defaults (`layout: true`, `skip_*: false`); `deep_merge!` then overwrote the value
|
|
7
|
+
inherited from the parent. These now default to `nil` and the real defaults are only
|
|
8
|
+
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`.
|
|
10
|
+
Subclasses no longer need to repeat `layout :backend` just to keep it.
|
|
11
|
+
- 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,
|
|
13
|
+
`doc/guide/dsl_reference.md`, `doc/guide/glossary.md`, `doc/guide/gotchas.md`,
|
|
14
|
+
`doc/guide/example_advanced.md`, `doc/guide/patterns.md`, `doc/guide/cookbook.md`
|
|
15
|
+
(task-indexed recipes). Thicken the thin pre-built
|
|
16
|
+
component docs (Index, Show, List, WithForm). Fix stale docs: README guide index links
|
|
17
|
+
(Virtual models, Edit), `pre_built_components.md` (wrongly claimed no Show/Index
|
|
18
|
+
component; Edit link), and an `Edit` hook name in `edit.md` (`on_update_failed`).
|
|
19
|
+
- Inline YARD: documented previously-bare DSL hooks (New/Edit/Destroy `on_*`) and added
|
|
20
|
+
`@param`/`@return`/`@yield`/`@api` plus `@!group DSL` to the WithForm, Form,
|
|
21
|
+
Resourceful, verb and standalone DSL methods. Comments only — no behavior change.
|
|
22
|
+
- `.yardopts` now lists the guide pages as extra files so the whole guide (including
|
|
23
|
+
the new agent docs) renders in the YARD/rubydoc reference, not just `lib/`.
|
|
24
|
+
- Add `doc/integrations.md` (companion-gem map mirroring the gemspec) and
|
|
25
|
+
`doc/guide/maintaining.md` (release / docs / dependency / anonymization policy);
|
|
26
|
+
cross-link non-obvious DSL methods (e.g. `path`) to matching patterns.
|
|
27
|
+
- Fix broken relative links: `generators.md` → `inheritance.md#best-practice` (was a
|
|
28
|
+
doubled `./doc/guide/` path) and two wrong-depth links in `pre_built_components.md`
|
|
29
|
+
(`../` → `./`). Full guide link/anchor set now verified (0 broken).
|
|
30
|
+
- (Run `yard doc` to regenerate the HTML under `doc/` after doc changes.)
|
|
31
|
+
|
|
1
32
|
# 0.11.8
|
|
2
33
|
|
|
3
34
|
- Fix `Compony::VirtualModel#attributes` to include virtual attributes (declared via `attribute :foo, :type`). The `include ActiveModel::Attributes` was shadowing `ActiveType::VirtualAttributes#attributes`, so virtual attribute values were stored in `@virtual_attributes` but invisible to `#attributes`, breaking callers that use `model.attributes.slice(...)` or `model.attributes.select { ... }`.
|
data/CLAUDE.md
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# Compony — agent primer
|
|
2
|
+
|
|
3
|
+
Compony is a Ruby on Rails gem. A **component** = one Ruby class that exports a route, a
|
|
4
|
+
controller action, and a view (written in [Dyny](https://github.com/kalsan/dyny), HTML as
|
|
5
|
+
Ruby). Components are subclassable, so views and controller logic inherit like normal Ruby.
|
|
6
|
+
|
|
7
|
+
This file orients coding agents. Humans: start at [README.md](/README.md).
|
|
8
|
+
|
|
9
|
+
## Mental model in 6 sentences
|
|
10
|
+
|
|
11
|
+
1. A component lives at `app/components/<family>/<comp>.rb` as `Components::<Family>::<Comp>`.
|
|
12
|
+
Family = pluralized model/controller name (`Users`); comp = action name (`Show`).
|
|
13
|
+
2. Almost all behavior goes inside a `setup do ... end` block; subclass `setup` runs after
|
|
14
|
+
parent `setup`, so children override parents.
|
|
15
|
+
3. `standalone path: '...' do verb :get do authorize { ... } end end` generates the Rails
|
|
16
|
+
route. No `standalone` → component must be nested in another, has no URL.
|
|
17
|
+
4. `content do ... end` is the view, evaluated in a `RequestContext` (Dyny + controller
|
|
18
|
+
helpers + component as `self`-ish providers).
|
|
19
|
+
5. Resourceful components (`include Compony::ComponentMixins::Resourceful` or inherit a
|
|
20
|
+
pre-built one) auto-load a record into `@data` from `params[:id]`.
|
|
21
|
+
6. Point between components with **intents**: `Compony.path(:show, model)` for redirects,
|
|
22
|
+
`render_intent(:edit, model)` for buttons/links inside content.
|
|
23
|
+
|
|
24
|
+
## Public API surface (the `Compony.*` module methods)
|
|
25
|
+
|
|
26
|
+
| Symbol | Purpose |
|
|
27
|
+
| --- | --- |
|
|
28
|
+
| `Compony.intent(...)` | Build an `Intent` (gateway to a component). |
|
|
29
|
+
| `Compony.path(comp, model_or_family, **)` | Rails path string. Use for redirects. |
|
|
30
|
+
| `Compony.comp_class_for(:show, family)` | Returns comp class or `nil` (existence check). |
|
|
31
|
+
| `Compony.comp_class_for!(...)` | Same, raises if missing. |
|
|
32
|
+
| `Compony.root_comp` | Currently rendered root component (use in layout). |
|
|
33
|
+
| `Compony.family_name_for(model_or_sym)` | Resolve family name. |
|
|
34
|
+
| `Compony.register_button_style(:name, 'Class')` | Register a button style. |
|
|
35
|
+
| `Compony.default_button_style=(:name)` | Set default button style. |
|
|
36
|
+
| `Compony.authentication_before_action=(sym)` | Hook app auth into Compony. |
|
|
37
|
+
| `Compony.content_before_root_comp { }` / `_after_` | Inject markup around root comp. |
|
|
38
|
+
| `Compony.model_field_namespaces=([...])` | Add custom model-field type classes. |
|
|
39
|
+
|
|
40
|
+
Set the config setters in `config/initializers/compony.rb`.
|
|
41
|
+
|
|
42
|
+
## Where to read what
|
|
43
|
+
|
|
44
|
+
| You need to… | Read |
|
|
45
|
+
| --- | --- |
|
|
46
|
+
| Full DSL method list with signatures | [doc/guide/dsl_reference.md](/doc/guide/dsl_reference.md) |
|
|
47
|
+
| Definition of a Compony term | [doc/guide/glossary.md](/doc/guide/glossary.md) |
|
|
48
|
+
| Avoid a known footgun | [doc/guide/gotchas.md](/doc/guide/gotchas.md) |
|
|
49
|
+
| A simple end-to-end app | [doc/guide/example.md](/doc/guide/example.md) |
|
|
50
|
+
| A realistic app (custom form, virtual fields, CSV, feasibility) | [doc/guide/example_advanced.md](/doc/guide/example_advanced.md) |
|
|
51
|
+
| Routing | [doc/guide/standalone.md](/doc/guide/standalone.md) |
|
|
52
|
+
| Linking between components | [doc/guide/intents.md](/doc/guide/intents.md) |
|
|
53
|
+
| Pre-built CRUD components | [doc/guide/pre_built_components.md](/doc/guide/pre_built_components.md) |
|
|
54
|
+
| Companion gems (required/optional/app-side) | [doc/integrations.md](/doc/integrations.md) |
|
|
55
|
+
| Release & docs policy (working on the gem) | [doc/guide/maintaining.md](/doc/guide/maintaining.md) |
|
|
56
|
+
| Machine-readable index of all docs | [doc/llms.txt](/doc/llms.txt) |
|
|
57
|
+
|
|
58
|
+
## Source layout
|
|
59
|
+
|
|
60
|
+
- `lib/compony.rb` — the `Compony.*` module methods (public API).
|
|
61
|
+
- `lib/compony/component.rb` — base `Component`: `setup`, `content`, `before_render`,
|
|
62
|
+
`exposed_intents`, `sub_comp`, `render`, `path`.
|
|
63
|
+
- `lib/compony/component_mixins/resourceful.rb` — `@data`, `load_data`, `store_data`,
|
|
64
|
+
`assign_attributes`, `after_assign_attributes`, `data_class`.
|
|
65
|
+
- `lib/compony/component_mixins/default/standalone/` — `standalone` / `verb` / `respond` /
|
|
66
|
+
`authorize` / `skip_authentication!` / `layout` DSL.
|
|
67
|
+
- `lib/compony/components/` — pre-built `Show Index List New Edit Form WithForm Destroy`.
|
|
68
|
+
- `lib/compony/intent.rb` — `Intent`: path/label/feasibility/button rendering.
|
|
69
|
+
- `lib/compony/model_mixin.rb` — model side: `field`, `prevent` (feasibility), `owned_by`.
|
|
70
|
+
- `lib/compony/virtual_model.rb` — non-persistent ActiveType-backed models.
|
|
71
|
+
|
|
72
|
+
When a consumer app vendors the gem, source is at
|
|
73
|
+
`vendor/bundle/ruby/<ver>/gems/compony-<ver>/`.
|
|
74
|
+
|
|
75
|
+
## Conventions when editing this gem
|
|
76
|
+
|
|
77
|
+
- DSL methods carry a `# DSL method` comment. Keep that marker; the
|
|
78
|
+
[dsl_reference.md](/doc/guide/dsl_reference.md) table mirrors it.
|
|
79
|
+
- Every user-facing behavior change needs a `CHANGELOG.md` entry (under `# unreleased`).
|
|
80
|
+
`VERSION` ending in `.edge` means an unreleased prerelease.
|
|
81
|
+
- Write code matching surrounding style. RuboCop config is in `.rubocop.yml`.
|
|
82
|
+
- The gem ships no CSS/JS — never add styling; that is the host app's job.
|
|
83
|
+
- Dependencies live in the `:gemspec` Rake task (not the hand); `compony.gemspec` is
|
|
84
|
+
generated. New guide page → add it to [.yardopts](/.yardopts) or it won't render.
|
|
85
|
+
- Full release/docs/anonymization rules: [doc/guide/maintaining.md](/doc/guide/maintaining.md).
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
|
@@ -19,7 +19,7 @@ Compony's key aspects:
|
|
|
19
19
|
- Compony's feasibility framework allows you to prohibit actions based on conditions, along with an error message. This causes all buttons pointing to that action to be disabled with a meaningful error message.
|
|
20
20
|
- Compony only structures your code, but provides no style whatsoever. It is like a bookshelf rather than a reader's library. You still implement your own layouts, CSS and Javascript to define the behavior of your front-end.
|
|
21
21
|
- Compony seamlessly integrates with Rails and does not interfere with existing code. Using Compony, you **can** write your application as components, but it is still possible to have regular routes, controllers and views side-to-side to it. This way, you can migrate your applications to Compony little by little and enter and leave the Compony world as you please. It is also possible to render Compony components from regular views and vice versa.
|
|
22
|
-
- Compony
|
|
22
|
+
- Compony requires Rails >= 7.2.1 and Ruby >= 3.3.5 (see [doc/integrations.md](./doc/integrations.md) for all dependencies), and fully supports Stimulus and Turbo Drive. It is also compatible Turbo Frames and Streams, but there are not many helpers specifically targetting theme at this point..
|
|
23
23
|
- Compony uses [CanCanCan](https://github.com/CanCanCommunity/cancancan) for authorization but does not provide an authentication mechanism. You can easily build your own by creating login/logout components that manage cookies, and configure Compony to enforce authentication using the `Compony.authentication_before_action` setter. I have also successfully tested Compony to work with [Devise](https://github.com/heartcombo/devise).
|
|
24
24
|
|
|
25
25
|
## State of the project
|
|
@@ -35,7 +35,17 @@ A project with a similar aim, but a different approach, is [Phlex](https://githu
|
|
|
35
35
|
The following topics should help you get started. Please note that the links will not work in yard doc - read this on [Compony's GitHub repo](https://github.com/kalsan/compony).
|
|
36
36
|
|
|
37
37
|
- [Self-contained example](./doc/guide/example.md) for those who like to dive straight into code
|
|
38
|
+
- [Advanced example](./doc/guide/example_advanced.md): custom form, feasibility, CSV export, virtual-model launch form
|
|
38
39
|
- [Installation](./doc/guide/installation.md) (start here)
|
|
40
|
+
- Quick reference (also handy for AI coding assistants):
|
|
41
|
+
- [DSL reference](./doc/guide/dsl_reference.md): every DSL method with signature and context
|
|
42
|
+
- [Glossary](./doc/guide/glossary.md): one-line definitions of Compony vocabulary
|
|
43
|
+
- [Gotchas](./doc/guide/gotchas.md): known anti-patterns with symptom, cause, fix
|
|
44
|
+
- [Real-world patterns](./doc/guide/patterns.md): idioms distilled from production apps
|
|
45
|
+
- [Cookbook](./doc/guide/cookbook.md): recipes indexed by task ("I want to do X")
|
|
46
|
+
- [Integrations](./doc/integrations.md): companion gems — required, optional, app-side
|
|
47
|
+
- [Agent primer](./CLAUDE.md) and [doc/llms.txt](./doc/llms.txt): orientation for LLM-based tools
|
|
48
|
+
- [Maintaining](./doc/guide/maintaining.md): release & docs policy (for gem contributors)
|
|
39
49
|
- Concepts and usage:
|
|
40
50
|
- [A basic component](./doc/guide/basic_component.md): Basic concepts relevant for all components
|
|
41
51
|
- [Standalone](./doc/guide/standalone.md): Routing to components
|
|
@@ -48,7 +58,7 @@ The following topics should help you get started. Please note that the links wil
|
|
|
48
58
|
- [Model fields](./doc/guide/model_fields.md): Allowing Compony to auto-generate UI elements by telling it about the structure of your model
|
|
49
59
|
- [Rails generators](./doc/guide/generators.md): Creating components quickly
|
|
50
60
|
- [Internal datastructures](./doc/guide/internal_datastructures.md): Noteworthy datastructures provided by Compony
|
|
51
|
-
- [Virtual models](./doc/guide/
|
|
61
|
+
- [Virtual models](./doc/guide/virtual_models.md): Unleashing non-persistent interactions through Compony's `ActiveType` integration
|
|
52
62
|
- Pre-built components shipped with Compony
|
|
53
63
|
- [Introduction](./doc/guide/pre_built_components.md)
|
|
54
64
|
- [Show](./doc/guide/pre_built_components/show.md): Compony's equivalent to Rail's `show` controller action
|
|
@@ -58,7 +68,7 @@ The following topics should help you get started. Please note that the links wil
|
|
|
58
68
|
- [WithForm](./doc/guide/pre_built_components/with_form.md): A base class for components containing and submitting forms
|
|
59
69
|
- [Form](./doc/guide/pre_built_components/form.md): Compony's equivalent to Rail's `_form` partial
|
|
60
70
|
- [New](./doc/guide/pre_built_components/new.md): Compony's equivalent to Rail's `new` and `create` controller action
|
|
61
|
-
- [Edit](./doc/guide/pre_built_components/
|
|
71
|
+
- [Edit](./doc/guide/pre_built_components/edit.md): Compony's equivalent to Rail's `edit` and `update` controller action
|
|
62
72
|
|
|
63
73
|
# Contributing
|
|
64
74
|
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.11.
|
|
1
|
+
0.11.9
|
data/compony.gemspec
CHANGED
|
@@ -2,17 +2,17 @@
|
|
|
2
2
|
# This file is auto-generated via: 'rake gemspec'.
|
|
3
3
|
|
|
4
4
|
# -*- encoding: utf-8 -*-
|
|
5
|
-
# stub: compony 0.11.
|
|
5
|
+
# stub: compony 0.11.9 ruby lib
|
|
6
6
|
|
|
7
7
|
Gem::Specification.new do |s|
|
|
8
8
|
s.name = "compony".freeze
|
|
9
|
-
s.version = "0.11.
|
|
9
|
+
s.version = "0.11.9".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]
|
|
13
13
|
s.authors = ["Sandro Kalbermatter".freeze, "contributors".freeze]
|
|
14
14
|
s.date = "1980-01-02"
|
|
15
|
-
s.files = [".gitignore".freeze, ".ruby-version".freeze, ".yardopts".freeze, "CHANGELOG.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.README.html".freeze, "doc/file_list.html".freeze, "doc/frames.html".freeze, "doc/guide/basic_component.md".freeze, "doc/guide/example.md".freeze, "doc/guide/feasibility.md".freeze, "doc/guide/generators.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/model_fields.md".freeze, "doc/guide/nesting.md".freeze, "doc/guide/ownership.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/js/app.js".freeze, "doc/js/full_list.js".freeze, "doc/js/jquery.js".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]
|
|
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
17
|
s.rubygems_version = "4.0.11".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
|
data/doc/ComponentGenerator.html
CHANGED
|
@@ -249,7 +249,7 @@
|
|
|
249
249
|
</div>
|
|
250
250
|
|
|
251
251
|
<div id="footer">
|
|
252
|
-
Generated on
|
|
252
|
+
Generated on Mon May 18 13:55:36 2026 by
|
|
253
253
|
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
254
254
|
0.9.34 (ruby-3.3.5).
|
|
255
255
|
</div>
|
data/doc/Components.html
CHANGED
|
@@ -193,7 +193,7 @@
|
|
|
193
193
|
</div>
|
|
194
194
|
|
|
195
195
|
<div id="footer">
|
|
196
|
-
Generated on
|
|
196
|
+
Generated on Mon May 18 13:55:36 2026 by
|
|
197
197
|
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
198
198
|
0.9.34 (ruby-3.3.5).
|
|
199
199
|
</div>
|
data/doc/Compony/Component.html
CHANGED
|
@@ -515,7 +515,7 @@
|
|
|
515
515
|
<li class="public ">
|
|
516
516
|
<span class="summary_signature">
|
|
517
517
|
|
|
518
|
-
<a href="#path-instance_method" title="#path (instance method)">#<strong>path</strong>(&block) ⇒
|
|
518
|
+
<a href="#path-instance_method" title="#path (instance method)">#<strong>path</strong>(&block) ⇒ void </a>
|
|
519
519
|
|
|
520
520
|
|
|
521
521
|
|
|
@@ -1155,13 +1155,13 @@
|
|
|
1155
1155
|
<pre class="lines">
|
|
1156
1156
|
|
|
1157
1157
|
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
|
|
1158
|
+
147
|
|
1159
|
+
148
|
|
1160
|
+
149
|
|
1161
|
+
150</pre>
|
|
1162
1162
|
</td>
|
|
1163
1163
|
<td>
|
|
1164
|
-
<pre class="code"><span class="info file"># File 'lib/compony/component.rb', line
|
|
1164
|
+
<pre class="code"><span class="info file"># File 'lib/compony/component.rb', line 147</span>
|
|
1165
1165
|
|
|
1166
1166
|
<span class='kw'>def</span> <span class='id identifier rubyid_before_render'>before_render</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span> <span class='op'>=</span> <span class='symbol'>:main</span><span class='comma'>,</span> <span class='label'>before:</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='op'>**</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
|
|
1167
1167
|
<span class='id identifier rubyid_fail'>fail</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>`before_render` expects a block in </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_inspect'>inspect</span><span class='embexpr_end'>}</span><span class='tstring_content'>.</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span> <span class='kw'>unless</span> <span class='id identifier rubyid_block_given?'>block_given?</span>
|
|
@@ -1270,16 +1270,16 @@
|
|
|
1270
1270
|
<pre class="lines">
|
|
1271
1271
|
|
|
1272
1272
|
|
|
1273
|
-
153
|
|
1274
|
-
154
|
|
1275
|
-
155
|
|
1276
|
-
156
|
|
1277
|
-
157
|
|
1278
1273
|
158
|
|
1279
|
-
159
|
|
1274
|
+
159
|
|
1275
|
+
160
|
|
1276
|
+
161
|
|
1277
|
+
162
|
|
1278
|
+
163
|
|
1279
|
+
164</pre>
|
|
1280
1280
|
</td>
|
|
1281
1281
|
<td>
|
|
1282
|
-
<pre class="code"><span class="info file"># File 'lib/compony/component.rb', line
|
|
1282
|
+
<pre class="code"><span class="info file"># File 'lib/compony/component.rb', line 158</span>
|
|
1283
1283
|
|
|
1284
1284
|
<span class='kw'>def</span> <span class='id identifier rubyid_content'>content</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span> <span class='op'>=</span> <span class='symbol'>:main</span><span class='comma'>,</span> <span class='label'>before:</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='op'>**</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
|
|
1285
1285
|
<span class='comment'># A block is required here, but if this is an override (e.g. to hide another content block), we can tolerate the missing block.
|
|
@@ -1305,7 +1305,7 @@
|
|
|
1305
1305
|
</h3><div class="docstring">
|
|
1306
1306
|
<div class="discussion">
|
|
1307
1307
|
|
|
1308
|
-
<p>DSL method If a block is given: Enters the DSL where exposed intents can be added or removed (use from <span class='object_link'><a href="#setup-class_method" title="Compony::Component.setup (method)">setup</a></span> within the component). If no block is given: Builds the declared intents and returns them (use from a
|
|
1308
|
+
<p>DSL method If a block is given: Enters the DSL where exposed intents can be added or removed (use from <span class='object_link'><a href="#setup-class_method" title="Compony::Component.setup (method)">setup</a></span> within the component). If no block is given: Builds the declared intents and returns them (use from a <span class='object_link'><a href="RequestContext.html" title="Compony::RequestContext (class)">RequestContext</a></span> outside the component).</p>
|
|
1309
1309
|
|
|
1310
1310
|
|
|
1311
1311
|
</div>
|
|
@@ -1319,21 +1319,21 @@
|
|
|
1319
1319
|
<pre class="lines">
|
|
1320
1320
|
|
|
1321
1321
|
|
|
1322
|
-
219
|
|
1323
|
-
220
|
|
1324
|
-
221
|
|
1325
|
-
222
|
|
1326
|
-
223
|
|
1327
1322
|
224
|
|
1328
1323
|
225
|
|
1329
1324
|
226
|
|
1330
1325
|
227
|
|
1331
1326
|
228
|
|
1332
1327
|
229
|
|
1333
|
-
230
|
|
1328
|
+
230
|
|
1329
|
+
231
|
|
1330
|
+
232
|
|
1331
|
+
233
|
|
1332
|
+
234
|
|
1333
|
+
235</pre>
|
|
1334
1334
|
</td>
|
|
1335
1335
|
<td>
|
|
1336
|
-
<pre class="code"><span class="info file"># File 'lib/compony/component.rb', line
|
|
1336
|
+
<pre class="code"><span class="info file"># File 'lib/compony/component.rb', line 224</span>
|
|
1337
1337
|
|
|
1338
1338
|
<span class='kw'>def</span> <span class='id identifier rubyid_exposed_intents'>exposed_intents</span><span class='lparen'>(</span><span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
|
|
1339
1339
|
<span class='kw'>if</span> <span class='id identifier rubyid_block_given?'>block_given?</span>
|
|
@@ -1568,7 +1568,7 @@
|
|
|
1568
1568
|
<div class="method_details ">
|
|
1569
1569
|
<h3 class="signature " id="path-instance_method">
|
|
1570
1570
|
|
|
1571
|
-
#<strong>path</strong>(&block) ⇒ <tt>
|
|
1571
|
+
#<strong>path</strong>(&block) ⇒ <tt>void</tt>
|
|
1572
1572
|
|
|
1573
1573
|
|
|
1574
1574
|
|
|
@@ -1576,8 +1576,8 @@
|
|
|
1576
1576
|
|
|
1577
1577
|
</h3><div class="docstring">
|
|
1578
1578
|
<div class="discussion">
|
|
1579
|
-
|
|
1580
|
-
<p>DSL method Overrides how the path to this component should be generated. The block will be given the following args: a model (optional), pos. args for the path helper, the kwarg <code>standalone_name</code> and kwargs for the path helper. The block is expected to return a Rails path. It is not given <code>controller</code> or <code>helpers</code>, instead use: <code>Rails.application.routes.url_helpers</code>. For
|
|
1579
|
+
<p class="note returns_void">This method returns an undefined value.</p>
|
|
1580
|
+
<p>DSL method Overrides how the path to this component should be generated. The block will be given the following args: a model (optional), pos. args for the path helper, the kwarg <code>standalone_name</code> and kwargs for the path helper. The block is expected to return a Rails path. It is not given <code>controller</code> or <code>helpers</code>, instead use: <code>Rails.application.routes.url_helpers</code>. For the default block, refer to the initializer of this class. Useful when callers should pass a higher-level argument that is translated into path params here, e.g. minting a signed token into the URL so an unauthenticated link can authorize itself. Worked examples: see <code>doc/guide/standalone.md</code> (“Customizing path generation”) and <code>doc/guide/patterns.md</code> §18 (signed-token capability links).</p>
|
|
1581
1581
|
|
|
1582
1582
|
|
|
1583
1583
|
</div>
|
|
@@ -1591,17 +1591,17 @@
|
|
|
1591
1591
|
<pre class="lines">
|
|
1592
1592
|
|
|
1593
1593
|
|
|
1594
|
-
127
|
|
1595
|
-
128
|
|
1596
|
-
129
|
|
1597
|
-
130
|
|
1598
|
-
131
|
|
1599
1594
|
132
|
|
1600
1595
|
133
|
|
1601
|
-
134
|
|
1596
|
+
134
|
|
1597
|
+
135
|
|
1598
|
+
136
|
|
1599
|
+
137
|
|
1600
|
+
138
|
|
1601
|
+
139</pre>
|
|
1602
1602
|
</td>
|
|
1603
1603
|
<td>
|
|
1604
|
-
<pre class="code"><span class="info file"># File 'lib/compony/component.rb', line
|
|
1604
|
+
<pre class="code"><span class="info file"># File 'lib/compony/component.rb', line 132</span>
|
|
1605
1605
|
|
|
1606
1606
|
<span class='kw'>def</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='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
|
|
1607
1607
|
<span class='kw'>if</span> <span class='id identifier rubyid_block_given?'>block_given?</span>
|
|
@@ -1662,18 +1662,18 @@
|
|
|
1662
1662
|
<pre class="lines">
|
|
1663
1663
|
|
|
1664
1664
|
|
|
1665
|
-
164
|
|
1666
|
-
165
|
|
1667
|
-
166
|
|
1668
|
-
167
|
|
1669
|
-
168
|
|
1670
1665
|
169
|
|
1671
1666
|
170
|
|
1672
1667
|
171
|
|
1673
|
-
172
|
|
1668
|
+
172
|
|
1669
|
+
173
|
|
1670
|
+
174
|
|
1671
|
+
175
|
|
1672
|
+
176
|
|
1673
|
+
177</pre>
|
|
1674
1674
|
</td>
|
|
1675
1675
|
<td>
|
|
1676
|
-
<pre class="code"><span class="info file"># File 'lib/compony/component.rb', line
|
|
1676
|
+
<pre class="code"><span class="info file"># File 'lib/compony/component.rb', line 169</span>
|
|
1677
1677
|
|
|
1678
1678
|
<span class='kw'>def</span> <span class='id identifier rubyid_remove_content'>remove_content</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='rparen'>)</span> <span class='comment'># rubocop:disable Naming/PredicateMethod
|
|
1679
1679
|
</span> <span class='id identifier rubyid_existing_index'>existing_index</span> <span class='op'>=</span> <span class='ivar'>@content_blocks</span><span class='period'>.</span><span class='id identifier rubyid_find_index'>find_index</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_el'>el</span><span class='op'>|</span> <span class='id identifier rubyid_el'>el</span><span class='period'>.</span><span class='id identifier rubyid_name'>name</span> <span class='op'>==</span> <span class='id identifier rubyid_name'>name</span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span> <span class='rbrace'>}</span>
|
|
@@ -1735,12 +1735,12 @@
|
|
|
1735
1735
|
<pre class="lines">
|
|
1736
1736
|
|
|
1737
1737
|
|
|
1738
|
-
|
|
1739
|
-
|
|
1740
|
-
|
|
1738
|
+
182
|
|
1739
|
+
183
|
|
1740
|
+
184</pre>
|
|
1741
1741
|
</td>
|
|
1742
1742
|
<td>
|
|
1743
|
-
<pre class="code"><span class="info file"># File 'lib/compony/component.rb', line
|
|
1743
|
+
<pre class="code"><span class="info file"># File 'lib/compony/component.rb', line 182</span>
|
|
1744
1744
|
|
|
1745
1745
|
<span class='kw'>def</span> <span class='id identifier rubyid_remove_content!'>remove_content!</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='rparen'>)</span>
|
|
1746
1746
|
<span class='id identifier rubyid_remove_content'>remove_content</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='id identifier rubyid_fail'>fail</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Content block </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_name'>name</span><span class='period'>.</span><span class='id identifier rubyid_inspect'>inspect</span><span class='embexpr_end'>}</span><span class='tstring_content'> not found for removal in </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_inspect'>inspect</span><span class='embexpr_end'>}</span><span class='tstring_content'>.</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
|
@@ -1798,11 +1798,6 @@
|
|
|
1798
1798
|
<pre class="lines">
|
|
1799
1799
|
|
|
1800
1800
|
|
|
1801
|
-
184
|
|
1802
|
-
185
|
|
1803
|
-
186
|
|
1804
|
-
187
|
|
1805
|
-
188
|
|
1806
1801
|
189
|
|
1807
1802
|
190
|
|
1808
1803
|
191
|
|
@@ -1828,10 +1823,15 @@
|
|
|
1828
1823
|
211
|
|
1829
1824
|
212
|
|
1830
1825
|
213
|
|
1831
|
-
214
|
|
1826
|
+
214
|
|
1827
|
+
215
|
|
1828
|
+
216
|
|
1829
|
+
217
|
|
1830
|
+
218
|
|
1831
|
+
219</pre>
|
|
1832
1832
|
</td>
|
|
1833
1833
|
<td>
|
|
1834
|
-
<pre class="code"><span class="info file"># File 'lib/compony/component.rb', line
|
|
1834
|
+
<pre class="code"><span class="info file"># File 'lib/compony/component.rb', line 189</span>
|
|
1835
1835
|
|
|
1836
1836
|
<span class='kw'>def</span> <span class='id identifier rubyid_render'>render</span><span class='lparen'>(</span><span class='id identifier rubyid_controller'>controller</span><span class='comma'>,</span> <span class='label'>standalone:</span> <span class='kw'>false</span><span class='comma'>,</span> <span class='op'>**</span><span class='id identifier rubyid_locals'>locals</span><span class='rparen'>)</span>
|
|
1837
1837
|
<span class='comment'># Call before_render hooks (if any) and backfire instance variables back to the component
|
|
@@ -1908,12 +1908,12 @@
|
|
|
1908
1908
|
<pre class="lines">
|
|
1909
1909
|
|
|
1910
1910
|
|
|
1911
|
-
|
|
1912
|
-
|
|
1913
|
-
|
|
1911
|
+
238
|
|
1912
|
+
239
|
|
1913
|
+
240</pre>
|
|
1914
1914
|
</td>
|
|
1915
1915
|
<td>
|
|
1916
|
-
<pre class="code"><span class="info file"># File 'lib/compony/component.rb', line
|
|
1916
|
+
<pre class="code"><span class="info file"># File 'lib/compony/component.rb', line 238</span>
|
|
1917
1917
|
|
|
1918
1918
|
<span class='kw'>def</span> <span class='id identifier rubyid_resourceful?'>resourceful?</span>
|
|
1919
1919
|
<span class='kw'>return</span> <span class='kw'>false</span>
|
|
@@ -2072,7 +2072,7 @@
|
|
|
2072
2072
|
</div>
|
|
2073
2073
|
|
|
2074
2074
|
<div id="footer">
|
|
2075
|
-
Generated on
|
|
2075
|
+
Generated on Mon May 18 13:55:35 2026 by
|
|
2076
2076
|
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
2077
2077
|
0.9.34 (ruby-3.3.5).
|
|
2078
2078
|
</div>
|
|
@@ -477,7 +477,7 @@
|
|
|
477
477
|
</div>
|
|
478
478
|
|
|
479
479
|
<div id="footer">
|
|
480
|
-
Generated on
|
|
480
|
+
Generated on Mon May 18 13:55:35 2026 by
|
|
481
481
|
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
482
482
|
0.9.34 (ruby-3.3.5).
|
|
483
483
|
</div>
|
|
@@ -529,7 +529,7 @@
|
|
|
529
529
|
</div>
|
|
530
530
|
|
|
531
531
|
<div id="footer">
|
|
532
|
-
Generated on
|
|
532
|
+
Generated on Mon May 18 13:55:36 2026 by
|
|
533
533
|
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
534
534
|
0.9.34 (ruby-3.3.5).
|
|
535
535
|
</div>
|