compony 0.2.2 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +2 -1
- data/CHANGELOG.md +23 -0
- data/Gemfile.lock +3 -3
- data/README.md +80 -13
- data/Rakefile +1 -1
- data/VERSION +1 -1
- data/compony.gemspec +5 -5
- data/doc/ComponentGenerator.html +1 -1
- data/doc/Components.html +1 -1
- data/doc/ComponentsGenerator.html +1 -1
- data/doc/Compony/Component.html +308 -341
- 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/Button.html +3 -3
- data/doc/Compony/Components/Destroy.html +3 -3
- data/doc/Compony/Components/Edit.html +19 -19
- data/doc/Compony/Components/Form.html +3 -3
- data/doc/Compony/Components/New.html +19 -19
- data/doc/Compony/Components/WithForm.html +4 -4
- data/doc/Compony/Components.html +1 -1
- data/doc/Compony/ControllerMixin.html +1 -1
- data/doc/Compony/Engine.html +1 -1
- data/doc/Compony/MethodAccessibleHash.html +1 -1
- data/doc/Compony/ModelFields/Anchormodel.html +7 -3
- data/doc/Compony/ModelFields/Association.html +1 -1
- data/doc/Compony/ModelFields/Attachment.html +1 -1
- data/doc/Compony/ModelFields/Base.html +1 -1
- data/doc/Compony/ModelFields/Boolean.html +1 -1
- data/doc/Compony/ModelFields/Color.html +1 -1
- data/doc/Compony/ModelFields/Currency.html +1 -1
- data/doc/Compony/ModelFields/Date.html +1 -1
- data/doc/Compony/ModelFields/Datetime.html +1 -1
- data/doc/Compony/ModelFields/Decimal.html +1 -1
- data/doc/Compony/ModelFields/Email.html +1 -1
- data/doc/Compony/ModelFields/Float.html +1 -1
- data/doc/Compony/ModelFields/Integer.html +1 -1
- data/doc/Compony/ModelFields/Percentage.html +1 -1
- data/doc/Compony/ModelFields/Phone.html +1 -1
- data/doc/Compony/ModelFields/RichText.html +1 -1
- data/doc/Compony/ModelFields/String.html +1 -1
- data/doc/Compony/ModelFields/Text.html +1 -1
- data/doc/Compony/ModelFields/Time.html +1 -1
- data/doc/Compony/ModelFields/Url.html +1 -1
- data/doc/Compony/ModelFields.html +1 -1
- data/doc/Compony/ModelMixin.html +1 -1
- data/doc/Compony/NaturalOrdering.html +292 -0
- data/doc/Compony/RequestContext.html +72 -1
- data/doc/Compony/Version.html +1 -1
- data/doc/Compony/ViewHelpers.html +1 -1
- data/doc/Compony.html +3 -3
- data/doc/ComponyController.html +1 -1
- data/doc/_index.html +8 -1
- data/doc/class_list.html +1 -1
- data/doc/file.README.html +73 -16
- data/doc/index.html +73 -16
- data/doc/method_list.html +100 -100
- data/doc/top-level-namespace.html +1 -1
- data/lib/compony/component.rb +30 -54
- data/lib/compony/components/edit.rb +2 -4
- data/lib/compony/components/new.rb +4 -6
- data/lib/compony/components/with_form.rb +1 -1
- data/lib/compony/model_fields/anchormodel.rb +3 -1
- data/lib/compony/natural_ordering.rb +56 -0
- data/lib/compony/request_context.rb +8 -0
- data/lib/compony.rb +1 -0
- metadata +6 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 24c595a91c7f6f7ef4c46c9ab61d4546fea8686e11393514b0fe2974a030fceb
|
4
|
+
data.tar.gz: 6f05d552a52cd8ffc229f13fe7f07fde9048b25086a0d5ada9a0db80aaae06c4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 459751c5eaf0f5e5f32f0f629bdcc0a6cb6c5d4a9ed09e1b7fc04121f97a15cb718e524399971398110ab252fc66421b2aed429f78649648c37bbe8f635848d1
|
7
|
+
data.tar.gz: 12c8ac8782bded58b19c61be23c27914ac4f573de89f63430b0666ce8ed87602a6383aacc3ca5eba4bb013311bae873607a62f167abd4e1c2017ddf8f0998389
|
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,26 @@
|
|
1
|
+
# 0.3.0
|
2
|
+
|
3
|
+
- Internals:
|
4
|
+
- Change internal parameter handling in edit and update (now use validated params only)
|
5
|
+
- Create `NaturalOrdering` which provides an interface for the `action` call behavior
|
6
|
+
- Switch actions to `NaturalOrdering`
|
7
|
+
- Remove redundant code
|
8
|
+
- Remove `Component`'s dynamic `comp_class_for` and `comp_class_for!`
|
9
|
+
- Switch `content` to `NaturalOrdering`, enabling `before:`
|
10
|
+
- Remove `add_content`
|
11
|
+
- Switch `before_render` to `NaturalOrdering`, allowing having multiple `before_render` blocks and overwriting them selectively
|
12
|
+
- This change is backwards-compatible as the default behavior of `before_render` is to overwrite `:main`.
|
13
|
+
- Implement nesting of content blocks, as described in README.md -> "Nesting content blocks, calling a content block from another"
|
14
|
+
|
15
|
+
## Steps to take
|
16
|
+
|
17
|
+
- Search for `comp_class_for` and `comp_class_for!` and replace them by `Compony.comp_class_for` and `Compony.comp_class_for!`
|
18
|
+
- Search for `add_content` and replace it by `content` along with a name. If you used an index in `add_content`, replace it by `before:` (see documentation)
|
19
|
+
|
20
|
+
# 0.2.3
|
21
|
+
|
22
|
+
- Support collection of Anchormodels in hidden input
|
23
|
+
|
1
24
|
# 0.2.2
|
2
25
|
|
3
26
|
- Adjust gemspec
|
data/Gemfile.lock
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
compony (0.2.
|
5
|
-
anchormodel (~> 0.
|
4
|
+
compony (0.2.3.edge)
|
5
|
+
anchormodel (~> 0.2.0)
|
6
6
|
cancancan (~> 3.4.0)
|
7
7
|
dslblend (>= 0.0.3)
|
8
8
|
dyny (>= 0.0.3)
|
@@ -88,7 +88,7 @@ GEM
|
|
88
88
|
minitest (>= 5.1)
|
89
89
|
mutex_m
|
90
90
|
tzinfo (~> 2.0)
|
91
|
-
anchormodel (0.
|
91
|
+
anchormodel (0.2.0)
|
92
92
|
rails (~> 7.0)
|
93
93
|
ast (2.4.2)
|
94
94
|
base64 (0.2.0)
|
data/README.md
CHANGED
@@ -17,7 +17,7 @@ Compony's key aspects:
|
|
17
17
|
- Compony only structures your code, but provides no style whatsoever. It is like a bookshelf rather than a reader's library. You still implement your own layouts, CSS and Javascript to define the behavior of your front-end.
|
18
18
|
- Using Compony, you **can** write your application as components, but it is still possible to have regular routes, controllers and views side-to-side to it. This way, you can migrate your applications to Compony little by little and enter and leave the Compony world as you please. It is also possible to render Compony components from regular views and vice versa.
|
19
19
|
- Compony is built for Rails 7 and fully supports Stimulus and Turbo Drive. Turbo Frames and Streams are not yet targeted, so Compony is currently meant for websites where every click triggers a "full page load" (in quotes because they are not actually full page loads due to Turbo Drive).
|
20
|
-
- Compony uses CanCanCan
|
20
|
+
- Compony uses [CanCanCan](https://github.com/CanCanCommunity/cancancan) for authorization but does not provide an authentication mechanism. You can easily build your own by creating login/logout components that manage cookies, and configure Compony to enforce authentication using the `Compony.authentication_before_action` setter. We have also successfully tested Compony to work with [Devise](https://github.com/heartcombo/devise).
|
21
21
|
|
22
22
|
## State of the project
|
23
23
|
|
@@ -248,6 +248,10 @@ The result looks like this:
|
|
248
248
|
|
249
249
|
Note how the admin's delete button is disabled due to the feasibility framework. Pointing the mouse at it causes a tooltip saying: "Cannot destroy admins.", as specified in the model's prevention.
|
250
250
|
|
251
|
+
# Related projects
|
252
|
+
|
253
|
+
A project with a similar aim, but a different approach, is [Phlex]( https://github.com/phlex-ruby/phlex).
|
254
|
+
|
251
255
|
# Installation
|
252
256
|
|
253
257
|
## Installing Compony
|
@@ -422,33 +426,96 @@ Here is an example of a component that renders a title along with a paragraph:
|
|
422
426
|
setup do
|
423
427
|
label(:all) { 'Welcome' }
|
424
428
|
content do
|
425
|
-
h1 'Welcome to my basic component'
|
429
|
+
h1 'Welcome to my basic component.'
|
426
430
|
para "It's not much, but it's honest work."
|
427
431
|
end
|
428
432
|
end
|
429
433
|
```
|
430
434
|
|
431
|
-
|
435
|
+
##### Naming content blocks, ordering and overriding them in subclasses
|
436
|
+
|
437
|
+
Content blocks are actually named. The `content` call adds or replaces a previously defined content block, e.g. in an earlier call to `setup` in a component's superclass. When calling `content` without a name, it defaults to `main` and will overwrite any previous `main` content. However, you can provide your own name and refer to other names by using the `before:` keyword.
|
432
438
|
|
433
439
|
```ruby
|
434
440
|
setup do
|
435
|
-
content do
|
436
|
-
h1 'Welcome to my basic component'
|
441
|
+
content do # will become :main
|
442
|
+
h1 'Welcome to my basic component.'
|
437
443
|
end
|
438
|
-
|
444
|
+
content :thanks do
|
439
445
|
para 'Thank you and see you tomorrow.'
|
440
446
|
end
|
441
|
-
|
447
|
+
content :middle, before: :thanks do
|
442
448
|
para 'This paragraph is inserted between the others.'
|
443
449
|
end
|
450
|
+
content :thanks do
|
451
|
+
para 'Thank you and see you tonight.' # this overwrites "Thank you and see you tomorrow."
|
452
|
+
end
|
453
|
+
content :first, before: :main do
|
454
|
+
para 'This appears first.'
|
455
|
+
end
|
444
456
|
end
|
445
457
|
```
|
446
458
|
|
447
|
-
|
459
|
+
This results in:
|
460
|
+
- This appears first.
|
461
|
+
- Welcome to my basic component.
|
462
|
+
- This paragraph is inserted between the others.
|
463
|
+
- Thank you and see you tonight.
|
464
|
+
|
465
|
+
As you see, overusing this feature can lead to messy code as it becomes unclear what happens in what order. For this reason, this feature should only be used to decouple the content of your abstract components for allowing surgical overrides in subclasses.
|
466
|
+
|
467
|
+
It is a good convention to always have one content block named `:main`, as you might want to refer to it in subclasses.
|
468
|
+
|
469
|
+
##### Nesting content blocks, calling a content block from another
|
470
|
+
|
471
|
+
In some situations, such as in forms, it can be useful to nest content blocks. This will also allow subclasses to override a wrapper while keeping the content, and vice versa. To make this possible, you can also use the `content` keyword inside a content block. Note that unlike the call in `setup`, this call will render a content block instead of defining it. This happens inside the request context and the content block must be defined inside the current component.
|
472
|
+
|
473
|
+
Note that you cannot call another component's content block this way.
|
474
|
+
|
475
|
+
Here is an example on how to use this feature, e.g. to create a bootstrap card that can be overridden with precision:
|
476
|
+
|
477
|
+
```ruby
|
478
|
+
# Components::Bootstrap::Card
|
479
|
+
setup do
|
480
|
+
content hidden: true do # hidden: true will cause `render` to skip this content block. You can still use it in the nested fashion.
|
481
|
+
div 'I am the default content for the card'
|
482
|
+
end
|
483
|
+
|
484
|
+
content :card do
|
485
|
+
div class: 'card card-body' do
|
486
|
+
content :main
|
487
|
+
end
|
488
|
+
end
|
489
|
+
end
|
490
|
+
```
|
491
|
+
|
492
|
+
The output is:
|
493
|
+
|
494
|
+
```html
|
495
|
+
<div class="card card-body"><div>I am the default content for the card</div></div>
|
496
|
+
```
|
497
|
+
|
498
|
+
So when you subclass this component, you can forget about the card and just overwrite `:main` as follows:
|
499
|
+
|
500
|
+
```ruby
|
501
|
+
# Components::Hello::HelloCard < Components::Bootstrap::Card
|
502
|
+
setup do
|
503
|
+
content do # hidden is still true because the old :main content block specified that already.
|
504
|
+
h1 'Hello'
|
505
|
+
para 'Welcome to my site.'
|
506
|
+
end
|
507
|
+
end
|
508
|
+
```
|
509
|
+
|
510
|
+
The output is:
|
511
|
+
|
512
|
+
```html
|
513
|
+
<div class="card card-body"><h1>Hello</h1><p>Welcome to my site.</p></div>
|
514
|
+
```
|
448
515
|
|
449
516
|
#### Redirecting away / Intercepting rendering
|
450
517
|
|
451
|
-
Immediately before the `content` block(s) are evaluated, another
|
518
|
+
Immediately before the `content` block(s) are evaluated, another chain of blocks is evaluated if present: `before_render`. If on of these blocks creates a reponse body in the Rails controller, the subsequent `before_render` blocks and all `content` blocks are skipped.
|
452
519
|
|
453
520
|
This is useful for redirecting. Here is an example of a component that provides a restaurant's lunch menu, but redirects to the menu overview page instead if it's not lunch time:
|
454
521
|
|
@@ -471,6 +538,8 @@ setup do
|
|
471
538
|
end
|
472
539
|
```
|
473
540
|
|
541
|
+
Similarly to `content`, the `before_render` method also accepts a name, defaulting to `:main`, as well as a `before:` keyword. This allows you to selectively extend and/or override `before_render` blocks in subclasses.
|
542
|
+
|
474
543
|
## Standalone
|
475
544
|
|
476
545
|
As stated earlier, Compony can generate routes to your components. This is achieved by using the standalone DSL inside the setup block. The first step is calling the method `standalone` with a path. Inside this block, you will then specify which HTTP verbs (e.g. GET, PATCH etc.) the component should listen to. As soon as both are specified, Compony will generate an appropriate route.
|
@@ -602,7 +671,7 @@ setup do
|
|
602
671
|
standalone do
|
603
672
|
layout 'dark'
|
604
673
|
end
|
605
|
-
|
674
|
+
content :below do
|
606
675
|
para 'This will appear below "Test".'
|
607
676
|
end
|
608
677
|
end
|
@@ -1282,7 +1351,7 @@ Authorization checks for `create` even in GET. The reason is that it makes no se
|
|
1282
1351
|
|
1283
1352
|
This component follows the resourceful lifecycle, explained in above under "Resourceful". `load_data` is set to create a new record and `store_data` attempts to create it. Parameters are validated in `assign_attributes` using a Schemacop schema that is generated from the form. The schema corresponds to Rail's typical strong parameter structure for forms. For example, a user's New component would look for a parameter `user` holding a hash of attributes (e.g. `user[first_name]=Tom`).
|
1284
1353
|
|
1285
|
-
In case you overwrite `store_data`, make sure to set `@
|
1354
|
+
In case you overwrite `store_data`, make sure to set `@create_succeeded` to true if storing was successful (and to set it to false otherwise).
|
1286
1355
|
|
1287
1356
|
The following DSL calls are implemented to allow for convenient overrides of default logic:
|
1288
1357
|
|
@@ -1379,8 +1448,6 @@ Compony is Free Software under the LGPLv3 and you are most welcome to contribute
|
|
1379
1448
|
# Caveats
|
1380
1449
|
|
1381
1450
|
- The API is not yet as consistent as I'd like it. Examples:
|
1382
|
-
- `content` replaces the content and `add_content` inserts some, but for actions the insertion is called `action`.
|
1383
|
-
- Every DSL call, in particular nested ones, should be able to insert and/or override a precise call in the parent class. Override behavior should be made consistent across the entire Compony DSL. For instance, it makes no sense that `add_content` uses an index while `action` uses `before` with a keyword.
|
1384
1451
|
- Instead of `skip_...` methods, `remove_...` should be implemented. This allows yet another level of classes to re-add properties. Skipping should be kept for options given via the constructor.
|
1385
1452
|
- Change resourceful hooks as follows:
|
1386
1453
|
- Verb DSL hooks still take precedence over global hooks, but if given, they MUST provide a block.
|
data/Rakefile
CHANGED
@@ -27,7 +27,7 @@ task :gemspec do
|
|
27
27
|
s.add_runtime_dependency 'schemacop', '>= 3.0.17'
|
28
28
|
s.add_runtime_dependency 'simple_form', '>= 5.1.0'
|
29
29
|
s.add_runtime_dependency 'dslblend', '>= 0.0.3'
|
30
|
-
s.add_runtime_dependency 'anchormodel', '~> 0.
|
30
|
+
s.add_runtime_dependency 'anchormodel', '~> 0.2.0'
|
31
31
|
s.add_runtime_dependency 'cancancan', '~> 3.4.0'
|
32
32
|
end
|
33
33
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.3.0
|
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.
|
5
|
+
# stub: compony 0.3.0 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "compony".freeze
|
9
|
-
s.version = "0.
|
9
|
+
s.version = "0.3.0".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
|
-
s.date = "2024-
|
15
|
-
s.files = [".gitignore".freeze, ".ruby-version".freeze, ".yardopts".freeze, "CHANGELOG.md".freeze, "Gemfile".freeze, "Gemfile.lock".freeze, "LICENSE".freeze, "README.md".freeze, "Rakefile".freeze, "TODO.md".freeze, "VERSION".freeze, "app/controllers/compony_controller.rb".freeze, "compony.gemspec".freeze, "config/locales/de.yml".freeze, "config/locales/en.yml".freeze, "config/locales/fr.yml".freeze, "config/routes.rb".freeze, "doc/ComponentGenerator.html".freeze, "doc/Components.html".freeze, "doc/ComponentsGenerator.html".freeze, "doc/Compony.html".freeze, "doc/Compony/Component.html".freeze, "doc/Compony/ComponentMixins.html".freeze, "doc/Compony/ComponentMixins/Default.html".freeze, "doc/Compony/ComponentMixins/Default/Labelling.html".freeze, "doc/Compony/ComponentMixins/Default/Standalone.html".freeze, "doc/Compony/ComponentMixins/Default/Standalone/ResourcefulVerbDsl.html".freeze, "doc/Compony/ComponentMixins/Default/Standalone/StandaloneDsl.html".freeze, "doc/Compony/ComponentMixins/Default/Standalone/VerbDsl.html".freeze, "doc/Compony/ComponentMixins/Resourceful.html".freeze, "doc/Compony/Components.html".freeze, "doc/Compony/Components/Button.html".freeze, "doc/Compony/Components/Destroy.html".freeze, "doc/Compony/Components/Edit.html".freeze, "doc/Compony/Components/Form.html".freeze, "doc/Compony/Components/New.html".freeze, "doc/Compony/Components/WithForm.html".freeze, "doc/Compony/ControllerMixin.html".freeze, "doc/Compony/Engine.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/RequestContext.html".freeze, "doc/Compony/Version.html".freeze, "doc/Compony/ViewHelpers.html".freeze, "doc/ComponyController.html".freeze, "doc/_index.html".freeze, "doc/class_list.html".freeze, "doc/css/common.css".freeze, "doc/css/full_list.css".freeze, "doc/css/style.css".freeze, "doc/file.README.html".freeze, "doc/file_list.html".freeze, "doc/frames.html".freeze, "doc/imgs/intro-example-destroy.png".freeze, "doc/imgs/intro-example-edit.png".freeze, "doc/imgs/intro-example-index.png".freeze, "doc/imgs/intro-example-new.png".freeze, "doc/imgs/intro-example-show.png".freeze, "doc/index.html".freeze, "doc/js/app.js".freeze, "doc/js/full_list.js".freeze, "doc/js/jquery.js".freeze, "doc/method_list.html".freeze, "doc/resourceful_lifecycle.graphml".freeze, "doc/resourceful_lifecycle.pdf".freeze, "doc/resourceful_lifecycle.png".freeze, "doc/top-level-namespace.html".freeze, "lib/compony.rb".freeze, "lib/compony/component.rb".freeze, "lib/compony/component_mixins/default/labelling.rb".freeze, "lib/compony/component_mixins/default/standalone.rb".freeze, "lib/compony/component_mixins/default/standalone/resourceful_verb_dsl.rb".freeze, "lib/compony/component_mixins/default/standalone/standalone_dsl.rb".freeze, "lib/compony/component_mixins/default/standalone/verb_dsl.rb".freeze, "lib/compony/component_mixins/resourceful.rb".freeze, "lib/compony/components/button.rb".freeze, "lib/compony/components/destroy.rb".freeze, "lib/compony/components/edit.rb".freeze, "lib/compony/components/form.rb".freeze, "lib/compony/components/new.rb".freeze, "lib/compony/components/with_form.rb".freeze, "lib/compony/controller_mixin.rb".freeze, "lib/compony/engine.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/request_context.rb".freeze, "lib/compony/version.rb".freeze, "lib/compony/view_helpers.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/new.rb.erb".freeze, "lib/generators/components/USAGE".freeze, "lib/generators/components/components_generator.rb".freeze, "logo.svg".freeze]
|
14
|
+
s.date = "2024-05-29"
|
15
|
+
s.files = [".gitignore".freeze, ".ruby-version".freeze, ".yardopts".freeze, "CHANGELOG.md".freeze, "Gemfile".freeze, "Gemfile.lock".freeze, "LICENSE".freeze, "README.md".freeze, "Rakefile".freeze, "TODO.md".freeze, "VERSION".freeze, "app/controllers/compony_controller.rb".freeze, "compony.gemspec".freeze, "config/locales/de.yml".freeze, "config/locales/en.yml".freeze, "config/locales/fr.yml".freeze, "config/routes.rb".freeze, "doc/ComponentGenerator.html".freeze, "doc/Components.html".freeze, "doc/ComponentsGenerator.html".freeze, "doc/Compony.html".freeze, "doc/Compony/Component.html".freeze, "doc/Compony/ComponentMixins.html".freeze, "doc/Compony/ComponentMixins/Default.html".freeze, "doc/Compony/ComponentMixins/Default/Labelling.html".freeze, "doc/Compony/ComponentMixins/Default/Standalone.html".freeze, "doc/Compony/ComponentMixins/Default/Standalone/ResourcefulVerbDsl.html".freeze, "doc/Compony/ComponentMixins/Default/Standalone/StandaloneDsl.html".freeze, "doc/Compony/ComponentMixins/Default/Standalone/VerbDsl.html".freeze, "doc/Compony/ComponentMixins/Resourceful.html".freeze, "doc/Compony/Components.html".freeze, "doc/Compony/Components/Button.html".freeze, "doc/Compony/Components/Destroy.html".freeze, "doc/Compony/Components/Edit.html".freeze, "doc/Compony/Components/Form.html".freeze, "doc/Compony/Components/New.html".freeze, "doc/Compony/Components/WithForm.html".freeze, "doc/Compony/ControllerMixin.html".freeze, "doc/Compony/Engine.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/ComponyController.html".freeze, "doc/_index.html".freeze, "doc/class_list.html".freeze, "doc/css/common.css".freeze, "doc/css/full_list.css".freeze, "doc/css/style.css".freeze, "doc/file.README.html".freeze, "doc/file_list.html".freeze, "doc/frames.html".freeze, "doc/imgs/intro-example-destroy.png".freeze, "doc/imgs/intro-example-edit.png".freeze, "doc/imgs/intro-example-index.png".freeze, "doc/imgs/intro-example-new.png".freeze, "doc/imgs/intro-example-show.png".freeze, "doc/index.html".freeze, "doc/js/app.js".freeze, "doc/js/full_list.js".freeze, "doc/js/jquery.js".freeze, "doc/method_list.html".freeze, "doc/resourceful_lifecycle.graphml".freeze, "doc/resourceful_lifecycle.pdf".freeze, "doc/resourceful_lifecycle.png".freeze, "doc/top-level-namespace.html".freeze, "lib/compony.rb".freeze, "lib/compony/component.rb".freeze, "lib/compony/component_mixins/default/labelling.rb".freeze, "lib/compony/component_mixins/default/standalone.rb".freeze, "lib/compony/component_mixins/default/standalone/resourceful_verb_dsl.rb".freeze, "lib/compony/component_mixins/default/standalone/standalone_dsl.rb".freeze, "lib/compony/component_mixins/default/standalone/verb_dsl.rb".freeze, "lib/compony/component_mixins/resourceful.rb".freeze, "lib/compony/components/button.rb".freeze, "lib/compony/components/destroy.rb".freeze, "lib/compony/components/edit.rb".freeze, "lib/compony/components/form.rb".freeze, "lib/compony/components/new.rb".freeze, "lib/compony/components/with_form.rb".freeze, "lib/compony/controller_mixin.rb".freeze, "lib/compony/engine.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/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/new.rb.erb".freeze, "lib/generators/components/USAGE".freeze, "lib/generators/components/components_generator.rb".freeze, "logo.svg".freeze]
|
16
16
|
s.required_ruby_version = Gem::Requirement.new(">= 3.0.0".freeze)
|
17
17
|
s.rubygems_version = "3.5.9".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
|
@@ -28,6 +28,6 @@ Gem::Specification.new do |s|
|
|
28
28
|
s.add_runtime_dependency(%q<schemacop>.freeze, [">= 3.0.17".freeze])
|
29
29
|
s.add_runtime_dependency(%q<simple_form>.freeze, [">= 5.1.0".freeze])
|
30
30
|
s.add_runtime_dependency(%q<dslblend>.freeze, [">= 0.0.3".freeze])
|
31
|
-
s.add_runtime_dependency(%q<anchormodel>.freeze, ["~> 0.
|
31
|
+
s.add_runtime_dependency(%q<anchormodel>.freeze, ["~> 0.2.0".freeze])
|
32
32
|
s.add_runtime_dependency(%q<cancancan>.freeze, ["~> 3.4.0".freeze])
|
33
33
|
end
|
data/doc/ComponentGenerator.html
CHANGED
@@ -221,7 +221,7 @@
|
|
221
221
|
</div>
|
222
222
|
|
223
223
|
<div id="footer">
|
224
|
-
Generated on Wed
|
224
|
+
Generated on Wed May 29 15:53:01 2024 by
|
225
225
|
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
226
226
|
0.9.34 (ruby-3.2.2).
|
227
227
|
</div>
|
data/doc/Components.html
CHANGED
@@ -193,7 +193,7 @@
|
|
193
193
|
</div>
|
194
194
|
|
195
195
|
<div id="footer">
|
196
|
-
Generated on Wed
|
196
|
+
Generated on Wed May 29 15:53:01 2024 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.2.2).
|
199
199
|
</div>
|