compony 0.11.12 → 0.11.13
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/.rspec +2 -0
- data/CHANGELOG.md +9 -0
- data/Gemfile +3 -0
- data/Gemfile.lock +145 -106
- data/README.md +12 -1
- data/Rakefile +10 -0
- data/TODO.md +2 -1
- data/VERSION +1 -1
- data/compony.gemspec +5 -3
- data/doc/ComponentGenerator.html +1 -1
- data/doc/Components.html +1 -1
- data/doc/ComponentsGenerator.html +1 -1
- data/doc/Compony/Component.html +1 -1
- 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 +1 -1
- data/doc/Compony/ComponentMixins/Default/Standalone/VerbDsl.html +1 -1
- data/doc/Compony/ComponentMixins/Default/Standalone.html +1 -1
- data/doc/Compony/ComponentMixins/Default.html +1 -1
- data/doc/Compony/ComponentMixins/Resourceful.html +1 -1
- 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 +1 -1
- data/doc/Compony/Components/Edit.html +1 -1
- data/doc/Compony/Components/Form.html +1 -1
- data/doc/Compony/Components/Index.html +1 -1
- data/doc/Compony/Components/List.html +1 -1
- data/doc/Compony/Components/New.html +1 -1
- data/doc/Compony/Components/Show.html +1 -1
- data/doc/Compony/Components/WithForm.html +1 -1
- 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 +1 -1
- data/doc/Compony/ManageIntentsDsl.html +2 -2
- 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 +8 -2
- 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 +1 -1
- data/doc/file.CHANGELOG.html +84 -77
- data/doc/file.README.html +21 -11
- data/doc/file.basic_component.html +14 -14
- data/doc/file.cookbook.html +27 -27
- data/doc/file.destroy.html +2 -2
- data/doc/file.dsl_reference.html +199 -199
- data/doc/file.edit.html +3 -3
- data/doc/file.example.html +13 -13
- data/doc/file.example_advanced.html +10 -10
- data/doc/file.feasibility.html +2 -2
- data/doc/file.form.html +7 -7
- data/doc/file.generators.html +3 -3
- data/doc/file.glossary.html +44 -44
- data/doc/file.gotchas.html +35 -35
- data/doc/file.index.html +10 -10
- data/doc/file.inheritance.html +5 -5
- data/doc/file.installation.html +9 -9
- data/doc/file.integrations.html +46 -46
- data/doc/file.intents.html +11 -11
- data/doc/file.internal_datastructures.html +6 -6
- data/doc/file.list.html +35 -35
- data/doc/file.maintaining.html +21 -21
- data/doc/file.model_fields.html +3 -3
- data/doc/file.nesting.html +5 -5
- data/doc/file.new.html +3 -3
- data/doc/file.ownership.html +2 -2
- data/doc/file.patterns.html +50 -50
- data/doc/file.pre_built_components.html +2 -2
- data/doc/file.resourceful.html +5 -5
- data/doc/file.show.html +17 -17
- data/doc/file.standalone.html +12 -12
- data/doc/file.virtual_models.html +2 -2
- data/doc/file.with_form.html +23 -23
- data/doc/index.html +21 -11
- data/doc/top-level-namespace.html +1 -1
- data/lib/compony/model_fields/base.rb +3 -0
- data/spec/README.md +22 -0
- data/spec/compony/component_spec.rb +80 -0
- data/spec/compony/compony_spec.rb +102 -0
- data/spec/compony/intent_spec.rb +94 -0
- data/spec/compony/method_accessible_hash_spec.rb +32 -0
- data/spec/compony/model_fields_spec.rb +70 -0
- data/spec/compony/model_mixin_spec.rb +81 -0
- data/spec/compony/natural_ordering_spec.rb +61 -0
- data/spec/dummy/app/components/statics/home.rb +17 -0
- data/spec/dummy/app/components/statics/secret.rb +15 -0
- data/spec/dummy/app/components/users/destroy.rb +2 -0
- data/spec/dummy/app/components/users/edit.rb +2 -0
- data/spec/dummy/app/components/users/form.rb +14 -0
- data/spec/dummy/app/components/users/index.rb +29 -0
- data/spec/dummy/app/components/users/new.rb +2 -0
- data/spec/dummy/app/components/users/show.rb +26 -0
- data/spec/dummy/app/controllers/application_controller.rb +3 -0
- data/spec/dummy/app/models/ability.rb +7 -0
- data/spec/dummy/app/models/application_record.rb +4 -0
- data/spec/dummy/app/models/user.rb +22 -0
- data/spec/dummy/app/views/layouts/application.html.erb +7 -0
- data/spec/dummy/config/application.rb +20 -0
- data/spec/dummy/config/database.yml +3 -0
- data/spec/dummy/config/environment.rb +3 -0
- data/spec/dummy/config/initializers/simple_form.rb +9 -0
- data/spec/dummy/config/routes.rb +3 -0
- data/spec/dummy/db/schema.rb +14 -0
- data/spec/rails_helper.rb +23 -0
- data/spec/requests/authorization_spec.rb +16 -0
- data/spec/requests/plain_component_spec.rb +9 -0
- data/spec/requests/routing_spec.rb +20 -0
- data/spec/requests/users_crud_spec.rb +99 -0
- metadata +62 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f8bcaa093e0e0d37e75f158b228477640cd9e82d2eefea6b4982d0a3ff2d1d9e
|
|
4
|
+
data.tar.gz: ba97437f66551ac3f83f4aca18ac07065fb240280c2c54f81cdce82e9049c88f
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 5c5374ee8aae8733c6558ed0e2ad8494bf0191d9dd9531a4be3408b3ae3357fb5496011793f9326257e920686b4c75a32ed69d3f8800a2490e657ad0c3721ffa
|
|
7
|
+
data.tar.gz: 84c2985fba93265015107127b5508d953d5d537873c1baf2a8d1522d1fd1950eba12ae53ba40405d734453b4ae6921b8fc65c37925fc05df9b532ae1ea12faa7
|
data/.rspec
ADDED
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
# 0.11.13
|
|
2
|
+
|
|
3
|
+
- Fix `value_for` raising `NoMethodError` for a field that answers with nil, e.g. a `:percentage` field whose value
|
|
4
|
+
cannot be computed. Such a value is now rendered as nil instead of being handed to the type's transformation,
|
|
5
|
+
which mirrors the behavior for enumerable values, whose nil entries have always been dropped.
|
|
6
|
+
- Add an RSpec test suite (`bundle exec rspec` / `rake spec`) with a dummy Rails app under `spec/dummy`,
|
|
7
|
+
covering the module API, intents, feasibility, model fields, routing and the pre-built CRUD components.
|
|
8
|
+
See `spec/README.md` for layout and version pins. New development dependencies: `rspec-rails`, `sqlite3`.
|
|
9
|
+
|
|
1
10
|
# 0.11.12
|
|
2
11
|
|
|
3
12
|
- Add Spanish (`es`) translations.
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
compony (0.11.
|
|
4
|
+
compony (0.11.13.edge)
|
|
5
5
|
anchormodel (>= 0.3.0)
|
|
6
6
|
cancancan (~> 3.6.1)
|
|
7
7
|
dslblend (>= 0.0.3)
|
|
@@ -14,67 +14,70 @@ PATH
|
|
|
14
14
|
GEM
|
|
15
15
|
remote: https://rubygems.org/
|
|
16
16
|
specs:
|
|
17
|
-
actioncable (7.2.
|
|
18
|
-
actionpack (= 7.2.
|
|
19
|
-
activesupport (= 7.2.
|
|
17
|
+
actioncable (7.2.3)
|
|
18
|
+
actionpack (= 7.2.3)
|
|
19
|
+
activesupport (= 7.2.3)
|
|
20
20
|
nio4r (~> 2.0)
|
|
21
21
|
websocket-driver (>= 0.6.1)
|
|
22
22
|
zeitwerk (~> 2.6)
|
|
23
|
-
actionmailbox (7.2.
|
|
24
|
-
actionpack (= 7.2.
|
|
25
|
-
activejob (= 7.2.
|
|
26
|
-
activerecord (= 7.2.
|
|
27
|
-
activestorage (= 7.2.
|
|
28
|
-
activesupport (= 7.2.
|
|
23
|
+
actionmailbox (7.2.3)
|
|
24
|
+
actionpack (= 7.2.3)
|
|
25
|
+
activejob (= 7.2.3)
|
|
26
|
+
activerecord (= 7.2.3)
|
|
27
|
+
activestorage (= 7.2.3)
|
|
28
|
+
activesupport (= 7.2.3)
|
|
29
29
|
mail (>= 2.8.0)
|
|
30
|
-
actionmailer (7.2.
|
|
31
|
-
actionpack (= 7.2.
|
|
32
|
-
actionview (= 7.2.
|
|
33
|
-
activejob (= 7.2.
|
|
34
|
-
activesupport (= 7.2.
|
|
30
|
+
actionmailer (7.2.3)
|
|
31
|
+
actionpack (= 7.2.3)
|
|
32
|
+
actionview (= 7.2.3)
|
|
33
|
+
activejob (= 7.2.3)
|
|
34
|
+
activesupport (= 7.2.3)
|
|
35
35
|
mail (>= 2.8.0)
|
|
36
36
|
rails-dom-testing (~> 2.2)
|
|
37
|
-
actionpack (7.2.
|
|
38
|
-
actionview (= 7.2.
|
|
39
|
-
activesupport (= 7.2.
|
|
37
|
+
actionpack (7.2.3)
|
|
38
|
+
actionview (= 7.2.3)
|
|
39
|
+
activesupport (= 7.2.3)
|
|
40
|
+
cgi
|
|
40
41
|
nokogiri (>= 1.8.5)
|
|
41
42
|
racc
|
|
42
|
-
rack (>= 2.2.4, < 3.
|
|
43
|
+
rack (>= 2.2.4, < 3.3)
|
|
43
44
|
rack-session (>= 1.0.1)
|
|
44
45
|
rack-test (>= 0.6.3)
|
|
45
46
|
rails-dom-testing (~> 2.2)
|
|
46
47
|
rails-html-sanitizer (~> 1.6)
|
|
47
48
|
useragent (~> 0.16)
|
|
48
|
-
actiontext (7.2.
|
|
49
|
-
actionpack (= 7.2.
|
|
50
|
-
activerecord (= 7.2.
|
|
51
|
-
activestorage (= 7.2.
|
|
52
|
-
activesupport (= 7.2.
|
|
49
|
+
actiontext (7.2.3)
|
|
50
|
+
actionpack (= 7.2.3)
|
|
51
|
+
activerecord (= 7.2.3)
|
|
52
|
+
activestorage (= 7.2.3)
|
|
53
|
+
activesupport (= 7.2.3)
|
|
53
54
|
globalid (>= 0.6.0)
|
|
54
55
|
nokogiri (>= 1.8.5)
|
|
55
|
-
actionview (7.2.
|
|
56
|
-
activesupport (= 7.2.
|
|
56
|
+
actionview (7.2.3)
|
|
57
|
+
activesupport (= 7.2.3)
|
|
57
58
|
builder (~> 3.1)
|
|
59
|
+
cgi
|
|
58
60
|
erubi (~> 1.11)
|
|
59
61
|
rails-dom-testing (~> 2.2)
|
|
60
62
|
rails-html-sanitizer (~> 1.6)
|
|
61
|
-
activejob (7.2.
|
|
62
|
-
activesupport (= 7.2.
|
|
63
|
+
activejob (7.2.3)
|
|
64
|
+
activesupport (= 7.2.3)
|
|
63
65
|
globalid (>= 0.3.6)
|
|
64
|
-
activemodel (7.2.
|
|
65
|
-
activesupport (= 7.2.
|
|
66
|
-
activerecord (7.2.
|
|
67
|
-
activemodel (= 7.2.
|
|
68
|
-
activesupport (= 7.2.
|
|
66
|
+
activemodel (7.2.3)
|
|
67
|
+
activesupport (= 7.2.3)
|
|
68
|
+
activerecord (7.2.3)
|
|
69
|
+
activemodel (= 7.2.3)
|
|
70
|
+
activesupport (= 7.2.3)
|
|
69
71
|
timeout (>= 0.4.0)
|
|
70
|
-
activestorage (7.2.
|
|
71
|
-
actionpack (= 7.2.
|
|
72
|
-
activejob (= 7.2.
|
|
73
|
-
activerecord (= 7.2.
|
|
74
|
-
activesupport (= 7.2.
|
|
72
|
+
activestorage (7.2.3)
|
|
73
|
+
actionpack (= 7.2.3)
|
|
74
|
+
activejob (= 7.2.3)
|
|
75
|
+
activerecord (= 7.2.3)
|
|
76
|
+
activesupport (= 7.2.3)
|
|
75
77
|
marcel (~> 1.0)
|
|
76
|
-
activesupport (7.2.
|
|
78
|
+
activesupport (7.2.3)
|
|
77
79
|
base64
|
|
80
|
+
benchmark (>= 0.3)
|
|
78
81
|
bigdecimal
|
|
79
82
|
concurrent-ruby (~> 1.0, >= 1.3.1)
|
|
80
83
|
connection_pool (>= 2.2.5)
|
|
@@ -88,109 +91,139 @@ GEM
|
|
|
88
91
|
rails (>= 7.0)
|
|
89
92
|
ast (2.4.3)
|
|
90
93
|
base64 (0.3.0)
|
|
91
|
-
|
|
92
|
-
|
|
94
|
+
benchmark (0.5.0)
|
|
95
|
+
bigdecimal (4.1.2)
|
|
96
|
+
builder (3.3.0)
|
|
93
97
|
cancancan (3.6.1)
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
+
cgi (0.5.2)
|
|
99
|
+
concurrent-ruby (1.3.7)
|
|
100
|
+
connection_pool (3.0.2)
|
|
101
|
+
crass (1.0.7)
|
|
102
|
+
date (3.5.1)
|
|
103
|
+
diff-lcs (1.6.2)
|
|
98
104
|
drb (2.2.3)
|
|
99
105
|
dslblend (0.0.3)
|
|
100
106
|
dyny (0.0.3)
|
|
101
107
|
rails
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
108
|
+
erb (6.0.4)
|
|
109
|
+
erubi (1.13.1)
|
|
110
|
+
globalid (1.4.0)
|
|
111
|
+
activesupport (>= 6.1)
|
|
112
|
+
i18n (1.15.2)
|
|
106
113
|
concurrent-ruby (~> 1.0)
|
|
107
|
-
io-console (0.
|
|
108
|
-
irb (1.
|
|
114
|
+
io-console (0.8.2)
|
|
115
|
+
irb (1.18.0)
|
|
116
|
+
pp (>= 0.6.0)
|
|
117
|
+
prism (>= 1.3.0)
|
|
109
118
|
rdoc (>= 4.0.0)
|
|
110
119
|
reline (>= 0.4.2)
|
|
111
|
-
json (2.
|
|
120
|
+
json (2.20.0)
|
|
112
121
|
language_server-protocol (3.17.0.5)
|
|
113
122
|
lint_roller (1.1.0)
|
|
114
123
|
logger (1.7.0)
|
|
115
|
-
loofah (2.
|
|
124
|
+
loofah (2.25.1)
|
|
116
125
|
crass (~> 1.0.2)
|
|
117
126
|
nokogiri (>= 1.12.0)
|
|
118
|
-
mail (2.
|
|
127
|
+
mail (2.9.1)
|
|
128
|
+
logger
|
|
119
129
|
mini_mime (>= 0.1.1)
|
|
120
130
|
net-imap
|
|
121
131
|
net-pop
|
|
122
132
|
net-smtp
|
|
123
|
-
marcel (1.
|
|
124
|
-
mini_mime (1.1.
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
net-imap (0.3.4)
|
|
133
|
+
marcel (1.2.1)
|
|
134
|
+
mini_mime (1.1.5)
|
|
135
|
+
minitest (5.27.0)
|
|
136
|
+
net-imap (0.6.4.1)
|
|
128
137
|
date
|
|
129
138
|
net-protocol
|
|
130
139
|
net-pop (0.1.2)
|
|
131
140
|
net-protocol
|
|
132
|
-
net-protocol (0.2.
|
|
141
|
+
net-protocol (0.2.2)
|
|
133
142
|
timeout
|
|
134
|
-
net-smtp (0.
|
|
143
|
+
net-smtp (0.5.1)
|
|
135
144
|
net-protocol
|
|
136
|
-
nio4r (2.5
|
|
137
|
-
nokogiri (1.
|
|
138
|
-
mini_portile2 (~> 2.8.2)
|
|
145
|
+
nio4r (2.7.5)
|
|
146
|
+
nokogiri (1.19.4-x86_64-linux-gnu)
|
|
139
147
|
racc (~> 1.4)
|
|
140
148
|
parallel (1.27.0)
|
|
141
149
|
parser (3.3.9.0)
|
|
142
150
|
ast (~> 2.4.1)
|
|
143
151
|
racc
|
|
152
|
+
pp (0.6.4)
|
|
153
|
+
prettyprint
|
|
154
|
+
prettyprint (0.2.0)
|
|
144
155
|
prism (1.4.0)
|
|
145
|
-
psych (5.
|
|
156
|
+
psych (5.4.0)
|
|
157
|
+
date
|
|
146
158
|
stringio
|
|
147
|
-
racc (1.
|
|
148
|
-
rack (
|
|
149
|
-
rack-session (1.
|
|
150
|
-
|
|
151
|
-
|
|
159
|
+
racc (1.8.1)
|
|
160
|
+
rack (3.2.6)
|
|
161
|
+
rack-session (2.1.2)
|
|
162
|
+
base64 (>= 0.1.0)
|
|
163
|
+
rack (>= 3.0.0)
|
|
164
|
+
rack-test (2.2.0)
|
|
152
165
|
rack (>= 1.3)
|
|
153
|
-
rackup (
|
|
154
|
-
rack (
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
activesupport (= 7.2.1)
|
|
166
|
+
rackup (2.3.1)
|
|
167
|
+
rack (>= 3)
|
|
168
|
+
rails (7.2.3)
|
|
169
|
+
actioncable (= 7.2.3)
|
|
170
|
+
actionmailbox (= 7.2.3)
|
|
171
|
+
actionmailer (= 7.2.3)
|
|
172
|
+
actionpack (= 7.2.3)
|
|
173
|
+
actiontext (= 7.2.3)
|
|
174
|
+
actionview (= 7.2.3)
|
|
175
|
+
activejob (= 7.2.3)
|
|
176
|
+
activemodel (= 7.2.3)
|
|
177
|
+
activerecord (= 7.2.3)
|
|
178
|
+
activestorage (= 7.2.3)
|
|
179
|
+
activesupport (= 7.2.3)
|
|
168
180
|
bundler (>= 1.15.0)
|
|
169
|
-
railties (= 7.2.
|
|
170
|
-
rails-dom-testing (2.
|
|
181
|
+
railties (= 7.2.3)
|
|
182
|
+
rails-dom-testing (2.3.0)
|
|
171
183
|
activesupport (>= 5.0.0)
|
|
172
184
|
minitest
|
|
173
185
|
nokogiri (>= 1.6)
|
|
174
|
-
rails-html-sanitizer (1.
|
|
175
|
-
loofah (~> 2.
|
|
176
|
-
nokogiri (
|
|
177
|
-
railties (7.2.
|
|
178
|
-
actionpack (= 7.2.
|
|
179
|
-
activesupport (= 7.2.
|
|
186
|
+
rails-html-sanitizer (1.7.0)
|
|
187
|
+
loofah (~> 2.25)
|
|
188
|
+
nokogiri (>= 1.15.7, != 1.16.7, != 1.16.6, != 1.16.5, != 1.16.4, != 1.16.3, != 1.16.2, != 1.16.1, != 1.16.0.rc1, != 1.16.0)
|
|
189
|
+
railties (7.2.3)
|
|
190
|
+
actionpack (= 7.2.3)
|
|
191
|
+
activesupport (= 7.2.3)
|
|
192
|
+
cgi
|
|
180
193
|
irb (~> 1.13)
|
|
181
194
|
rackup (>= 1.0.0)
|
|
182
195
|
rake (>= 12.2)
|
|
183
196
|
thor (~> 1.0, >= 1.2.2)
|
|
197
|
+
tsort (>= 0.2)
|
|
184
198
|
zeitwerk (~> 2.6)
|
|
185
199
|
rainbow (3.1.1)
|
|
186
|
-
rake (13.
|
|
187
|
-
rdoc (
|
|
200
|
+
rake (13.4.2)
|
|
201
|
+
rdoc (7.2.0)
|
|
202
|
+
erb
|
|
188
203
|
psych (>= 4.0.0)
|
|
204
|
+
tsort
|
|
189
205
|
regexp_parser (2.11.2)
|
|
190
|
-
reline (0.
|
|
206
|
+
reline (0.6.3)
|
|
191
207
|
io-console (~> 0.5)
|
|
192
208
|
request_store (1.7.0)
|
|
193
209
|
rack (>= 1.4)
|
|
210
|
+
rspec-core (3.13.6)
|
|
211
|
+
rspec-support (~> 3.13.0)
|
|
212
|
+
rspec-expectations (3.13.5)
|
|
213
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
|
214
|
+
rspec-support (~> 3.13.0)
|
|
215
|
+
rspec-mocks (3.13.8)
|
|
216
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
|
217
|
+
rspec-support (~> 3.13.0)
|
|
218
|
+
rspec-rails (8.0.4)
|
|
219
|
+
actionpack (>= 7.2)
|
|
220
|
+
activesupport (>= 7.2)
|
|
221
|
+
railties (>= 7.2)
|
|
222
|
+
rspec-core (>= 3.13.0, < 5.0.0)
|
|
223
|
+
rspec-expectations (>= 3.13.0, < 5.0.0)
|
|
224
|
+
rspec-mocks (>= 3.13.0, < 5.0.0)
|
|
225
|
+
rspec-support (>= 3.13.0, < 5.0.0)
|
|
226
|
+
rspec-support (3.13.7)
|
|
194
227
|
rubocop (1.79.2)
|
|
195
228
|
json (~> 2.3)
|
|
196
229
|
language_server-protocol (~> 3.17.0.2)
|
|
@@ -217,32 +250,38 @@ GEM
|
|
|
217
250
|
activesupport (>= 4.0)
|
|
218
251
|
ruby2_keywords (= 0.0.4)
|
|
219
252
|
securerandom (0.4.1)
|
|
220
|
-
simple_form (5.
|
|
221
|
-
actionpack (>=
|
|
222
|
-
activemodel (>=
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
253
|
+
simple_form (5.4.1)
|
|
254
|
+
actionpack (>= 7.0)
|
|
255
|
+
activemodel (>= 7.0)
|
|
256
|
+
sqlite3 (2.9.5-x86_64-linux-gnu)
|
|
257
|
+
stringio (3.2.0)
|
|
258
|
+
thor (1.5.0)
|
|
259
|
+
timeout (0.6.1)
|
|
260
|
+
tsort (0.2.0)
|
|
226
261
|
tzinfo (2.0.6)
|
|
227
262
|
concurrent-ruby (~> 1.0)
|
|
228
263
|
unicode-display_width (3.1.5)
|
|
229
264
|
unicode-emoji (~> 4.0, >= 4.0.4)
|
|
230
265
|
unicode-emoji (4.0.4)
|
|
231
|
-
useragent (0.16.
|
|
232
|
-
|
|
233
|
-
|
|
266
|
+
useragent (0.16.11)
|
|
267
|
+
websocket-driver (0.8.2)
|
|
268
|
+
base64
|
|
234
269
|
websocket-extensions (>= 0.1.0)
|
|
235
270
|
websocket-extensions (0.1.5)
|
|
236
271
|
yard (0.9.34)
|
|
237
|
-
zeitwerk (2.
|
|
272
|
+
zeitwerk (2.8.2)
|
|
238
273
|
|
|
239
274
|
PLATFORMS
|
|
240
275
|
x86_64-linux
|
|
241
276
|
|
|
242
277
|
DEPENDENCIES
|
|
243
278
|
compony!
|
|
279
|
+
rack (>= 3.1)
|
|
280
|
+
rails (~> 7.2.1)
|
|
281
|
+
rspec-rails (>= 6.1)
|
|
244
282
|
rubocop (>= 1.48)
|
|
245
283
|
rubocop-rails (>= 2.18.0)
|
|
284
|
+
sqlite3 (>= 1.7)
|
|
246
285
|
yard (>= 0.9.28)
|
|
247
286
|
|
|
248
287
|
BUNDLED WITH
|
data/README.md
CHANGED
|
@@ -24,7 +24,7 @@ Compony's key aspects:
|
|
|
24
24
|
|
|
25
25
|
## State of the project
|
|
26
26
|
|
|
27
|
-
I am actively using this framework in various applications and both performance and reliability are good. However, the project is experimental and lacking peer reviews and especially automatic testing, such as unit and integration tests. Also, expect there to be ([documented](/CHANGELOG.md)) breaking changes in the future, as the API will likely be further refined, resulting in renamings and deprecation of various methods.
|
|
27
|
+
I am actively using this framework in various applications and both performance and reliability are good. However, the project is experimental and lacking peer reviews and especially extensive automatic testing, such as unit and integration tests. Also, expect there to be ([documented](/CHANGELOG.md)) breaking changes in the future, as the API will likely be further refined, resulting in renamings and deprecation of various methods.
|
|
28
28
|
|
|
29
29
|
## Other projects exploring similar concepts
|
|
30
30
|
|
|
@@ -78,6 +78,17 @@ Compony is Free Software under the LGPLv3 and you are most welcome to contribute
|
|
|
78
78
|
- If you'd like to contribute feedback or discuss something, please open an issue.
|
|
79
79
|
- If you have an idea that is worth implementing, please fork the repo, implement your changes in your own fork, and open a pull request.
|
|
80
80
|
|
|
81
|
+
## Running the tests
|
|
82
|
+
|
|
83
|
+
The gem ships an RSpec suite backed by a minimal dummy Rails app (in-memory SQLite, no setup needed):
|
|
84
|
+
|
|
85
|
+
```sh
|
|
86
|
+
bundle install
|
|
87
|
+
bundle exec rspec # or: bundle exec rake spec (also the default rake task)
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
See [spec/README.md](./spec/README.md) for the suite's layout and the reasons behind the Gemfile's `rails` and `rack` version pins.
|
|
91
|
+
|
|
81
92
|
# Caveats
|
|
82
93
|
|
|
83
94
|
- The API is not yet as consistent as I'd like it. Examples:
|
data/Rakefile
CHANGED
|
@@ -3,6 +3,14 @@ require_relative 'lib/compony/version'
|
|
|
3
3
|
|
|
4
4
|
File.open('VERSION', 'w') { |f| f.puts(Compony::Version::LABEL) }
|
|
5
5
|
|
|
6
|
+
begin
|
|
7
|
+
require 'rspec/core/rake_task'
|
|
8
|
+
RSpec::Core::RakeTask.new(:spec)
|
|
9
|
+
task default: :spec
|
|
10
|
+
rescue LoadError
|
|
11
|
+
# rspec not available (e.g. production install), skip test task
|
|
12
|
+
end
|
|
13
|
+
|
|
6
14
|
task :gemspec do
|
|
7
15
|
specification = Gem::Specification.new do |s|
|
|
8
16
|
s.name = 'compony'
|
|
@@ -20,6 +28,8 @@ task :gemspec do
|
|
|
20
28
|
s.add_development_dependency 'yard', '>= 0.9.28'
|
|
21
29
|
s.add_development_dependency 'rubocop', '>= 1.48'
|
|
22
30
|
s.add_development_dependency 'rubocop-rails', '>= 2.18.0'
|
|
31
|
+
s.add_development_dependency 'rspec-rails', '>= 6.1'
|
|
32
|
+
s.add_development_dependency 'sqlite3', '>= 1.7'
|
|
23
33
|
|
|
24
34
|
s.add_runtime_dependency 'rails', '>= 7.2.1'
|
|
25
35
|
s.add_runtime_dependency 'request_store', '>= 1.7'
|
data/TODO.md
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
- When cancelling in an owned form, prefer Show instead of owner.Index
|
|
2
|
-
- Come up with something like `data_class(BaseClass){ attribute(:foo) }` -> ActiveType
|
|
2
|
+
- Come up with something like `data_class(BaseClass){ attribute(:foo) }` -> ActiveType
|
|
3
|
+
- Fix standalone config deep-merge losing verb defaults across class hierarchies: when a base class declares `standalone do ... end` first (e.g. to set `layout`/`skip_authentication!`), the subclass's later `standalone path: ... do verb :get ... end` merges with `provide_defaults: false`, so its VerbDsl conf lacks the default respond block (`respond_blocks[nil]` stays nil). `on_standalone_access` then calls `request_context.evaluate(&nil)` → `instance_eval` without a block → cryptic `ArgumentError: wrong number of arguments (given 0, expected 1..3)`. Workaround: every such verb needs an explicit `respond { render_standalone(controller) }`. Fix idea: fall back to the default respond block at dispatch time (`respond_blocks[nil] || proc { render_standalone(controller) }`) or provide per-verb defaults regardless of merge order. Related: `before_render` (name `:main`) in a subclass silently replaces the base class's unnamed `before_render` via NaturalOrdering — base classes must name their hooks; consider documenting or warning. (Both hit while building the storabble-direct portal base component, 2026-07.)
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.11.
|
|
1
|
+
0.11.13
|
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.13 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.13".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, "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/es.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]
|
|
15
|
+
s.files = [".gitignore".freeze, ".rspec".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/es.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, "spec/README.md".freeze, "spec/compony/component_spec.rb".freeze, "spec/compony/compony_spec.rb".freeze, "spec/compony/intent_spec.rb".freeze, "spec/compony/method_accessible_hash_spec.rb".freeze, "spec/compony/model_fields_spec.rb".freeze, "spec/compony/model_mixin_spec.rb".freeze, "spec/compony/natural_ordering_spec.rb".freeze, "spec/dummy/app/components/statics/home.rb".freeze, "spec/dummy/app/components/statics/secret.rb".freeze, "spec/dummy/app/components/users/destroy.rb".freeze, "spec/dummy/app/components/users/edit.rb".freeze, "spec/dummy/app/components/users/form.rb".freeze, "spec/dummy/app/components/users/index.rb".freeze, "spec/dummy/app/components/users/new.rb".freeze, "spec/dummy/app/components/users/show.rb".freeze, "spec/dummy/app/controllers/application_controller.rb".freeze, "spec/dummy/app/models/ability.rb".freeze, "spec/dummy/app/models/application_record.rb".freeze, "spec/dummy/app/models/user.rb".freeze, "spec/dummy/app/views/layouts/application.html.erb".freeze, "spec/dummy/config/application.rb".freeze, "spec/dummy/config/database.yml".freeze, "spec/dummy/config/environment.rb".freeze, "spec/dummy/config/initializers/simple_form.rb".freeze, "spec/dummy/config/routes.rb".freeze, "spec/dummy/db/schema.rb".freeze, "spec/rails_helper.rb".freeze, "spec/requests/authorization_spec.rb".freeze, "spec/requests/plain_component_spec.rb".freeze, "spec/requests/routing_spec.rb".freeze, "spec/requests/users_crud_spec.rb".freeze]
|
|
16
16
|
s.required_ruby_version = Gem::Requirement.new(">= 3.3.5".freeze)
|
|
17
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
|
|
@@ -22,6 +22,8 @@ Gem::Specification.new do |s|
|
|
|
22
22
|
s.add_development_dependency(%q<yard>.freeze, [">= 0.9.28".freeze])
|
|
23
23
|
s.add_development_dependency(%q<rubocop>.freeze, [">= 1.48".freeze])
|
|
24
24
|
s.add_development_dependency(%q<rubocop-rails>.freeze, [">= 2.18.0".freeze])
|
|
25
|
+
s.add_development_dependency(%q<rspec-rails>.freeze, [">= 6.1".freeze])
|
|
26
|
+
s.add_development_dependency(%q<sqlite3>.freeze, [">= 1.7".freeze])
|
|
25
27
|
s.add_runtime_dependency(%q<rails>.freeze, [">= 7.2.1".freeze])
|
|
26
28
|
s.add_runtime_dependency(%q<request_store>.freeze, [">= 1.7".freeze])
|
|
27
29
|
s.add_runtime_dependency(%q<dyny>.freeze, [">= 0.0.3".freeze])
|
data/doc/ComponentGenerator.html
CHANGED
|
@@ -249,7 +249,7 @@
|
|
|
249
249
|
</div>
|
|
250
250
|
|
|
251
251
|
<div id="footer">
|
|
252
|
-
Generated on Tue
|
|
252
|
+
Generated on Tue Aug 18 14:36:37 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.4.9).
|
|
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 Tue
|
|
196
|
+
Generated on Tue Aug 18 14:36:37 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.4.9).
|
|
199
199
|
</div>
|
data/doc/Compony/Component.html
CHANGED
|
@@ -2072,7 +2072,7 @@
|
|
|
2072
2072
|
</div>
|
|
2073
2073
|
|
|
2074
2074
|
<div id="footer">
|
|
2075
|
-
Generated on Tue
|
|
2075
|
+
Generated on Tue Aug 18 14:36:36 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.4.9).
|
|
2078
2078
|
</div>
|
|
@@ -477,7 +477,7 @@
|
|
|
477
477
|
</div>
|
|
478
478
|
|
|
479
479
|
<div id="footer">
|
|
480
|
-
Generated on Tue
|
|
480
|
+
Generated on Tue Aug 18 14:36:36 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.4.9).
|
|
483
483
|
</div>
|
|
@@ -529,7 +529,7 @@
|
|
|
529
529
|
</div>
|
|
530
530
|
|
|
531
531
|
<div id="footer">
|
|
532
|
-
Generated on Tue
|
|
532
|
+
Generated on Tue Aug 18 14:36:37 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.4.9).
|
|
535
535
|
</div>
|
|
@@ -698,7 +698,7 @@
|
|
|
698
698
|
</div>
|
|
699
699
|
|
|
700
700
|
<div id="footer">
|
|
701
|
-
Generated on Tue
|
|
701
|
+
Generated on Tue Aug 18 14:36:37 2026 by
|
|
702
702
|
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
703
703
|
0.9.34 (ruby-3.4.9).
|
|
704
704
|
</div>
|
|
@@ -603,7 +603,7 @@
|
|
|
603
603
|
</div>
|
|
604
604
|
|
|
605
605
|
<div id="footer">
|
|
606
|
-
Generated on Tue
|
|
606
|
+
Generated on Tue Aug 18 14:36:37 2026 by
|
|
607
607
|
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
608
608
|
0.9.34 (ruby-3.4.9).
|
|
609
609
|
</div>
|