compony 0.11.11 → 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 +13 -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/config/locales/es.yml +46 -0
- 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 +88 -76
- 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 +63 -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,16 @@
|
|
|
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
|
+
|
|
10
|
+
# 0.11.12
|
|
11
|
+
|
|
12
|
+
- Add Spanish (`es`) translations.
|
|
13
|
+
|
|
1
14
|
# 0.11.11
|
|
2
15
|
|
|
3
16
|
- Fix the `New` component's `method: :post` intent button (immediate create, no form) being hidden for
|
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/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])
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
es:
|
|
2
|
+
compony:
|
|
3
|
+
cancel: 'Cancelar'
|
|
4
|
+
back: 'Atrás'
|
|
5
|
+
filtered: '[Filtered]' # Not translated as this appears in log
|
|
6
|
+
boolean:
|
|
7
|
+
true: 'Sí'
|
|
8
|
+
false: 'No'
|
|
9
|
+
feasibility:
|
|
10
|
+
has_dependent_models: 'existen %{dependent_class} dependientes'
|
|
11
|
+
model_fields:
|
|
12
|
+
attachment:
|
|
13
|
+
remove: 'Eliminar'
|
|
14
|
+
components:
|
|
15
|
+
show:
|
|
16
|
+
label:
|
|
17
|
+
short: 'Mostrar'
|
|
18
|
+
index:
|
|
19
|
+
actions: 'Acciones'
|
|
20
|
+
filters: 'Filtros'
|
|
21
|
+
sorting: 'Orden'
|
|
22
|
+
pagination:
|
|
23
|
+
first: 'Primera'
|
|
24
|
+
previous: 'Anterior'
|
|
25
|
+
next: 'Siguiente'
|
|
26
|
+
last: 'Última'
|
|
27
|
+
form:
|
|
28
|
+
submit: 'Enviar'
|
|
29
|
+
cancel: 'Cancelar'
|
|
30
|
+
edit:
|
|
31
|
+
label:
|
|
32
|
+
long: 'Editar %{data_label}'
|
|
33
|
+
short: 'Editar'
|
|
34
|
+
data_was_updated: '%{data_label} se ha guardado.'
|
|
35
|
+
new:
|
|
36
|
+
label:
|
|
37
|
+
long: 'Crear %{data_class}'
|
|
38
|
+
short: 'Nuevo'
|
|
39
|
+
data_was_created: '%{data_label} se ha creado.'
|
|
40
|
+
destroy:
|
|
41
|
+
label:
|
|
42
|
+
long: 'Eliminar %{data_label}'
|
|
43
|
+
short: 'Eliminar'
|
|
44
|
+
confirm_question: '¿Está seguro de que desea eliminar %{data_label}?'
|
|
45
|
+
confirm_button: 'Sí, eliminar'
|
|
46
|
+
data_was_destroyed: '%{data_label} se ha eliminado.'
|
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 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
|
|
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
|
|
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>
|