compony 0.2.2 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (73) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -1
  3. data/CHANGELOG.md +23 -0
  4. data/Gemfile.lock +3 -3
  5. data/README.md +80 -13
  6. data/Rakefile +1 -1
  7. data/VERSION +1 -1
  8. data/compony.gemspec +5 -5
  9. data/doc/ComponentGenerator.html +1 -1
  10. data/doc/Components.html +1 -1
  11. data/doc/ComponentsGenerator.html +1 -1
  12. data/doc/Compony/Component.html +308 -341
  13. data/doc/Compony/ComponentMixins/Default/Labelling.html +1 -1
  14. data/doc/Compony/ComponentMixins/Default/Standalone/ResourcefulVerbDsl.html +1 -1
  15. data/doc/Compony/ComponentMixins/Default/Standalone/StandaloneDsl.html +1 -1
  16. data/doc/Compony/ComponentMixins/Default/Standalone/VerbDsl.html +1 -1
  17. data/doc/Compony/ComponentMixins/Default/Standalone.html +1 -1
  18. data/doc/Compony/ComponentMixins/Default.html +1 -1
  19. data/doc/Compony/ComponentMixins/Resourceful.html +1 -1
  20. data/doc/Compony/ComponentMixins.html +1 -1
  21. data/doc/Compony/Components/Button.html +3 -3
  22. data/doc/Compony/Components/Destroy.html +3 -3
  23. data/doc/Compony/Components/Edit.html +19 -19
  24. data/doc/Compony/Components/Form.html +3 -3
  25. data/doc/Compony/Components/New.html +19 -19
  26. data/doc/Compony/Components/WithForm.html +4 -4
  27. data/doc/Compony/Components.html +1 -1
  28. data/doc/Compony/ControllerMixin.html +1 -1
  29. data/doc/Compony/Engine.html +1 -1
  30. data/doc/Compony/MethodAccessibleHash.html +1 -1
  31. data/doc/Compony/ModelFields/Anchormodel.html +7 -3
  32. data/doc/Compony/ModelFields/Association.html +1 -1
  33. data/doc/Compony/ModelFields/Attachment.html +1 -1
  34. data/doc/Compony/ModelFields/Base.html +1 -1
  35. data/doc/Compony/ModelFields/Boolean.html +1 -1
  36. data/doc/Compony/ModelFields/Color.html +1 -1
  37. data/doc/Compony/ModelFields/Currency.html +1 -1
  38. data/doc/Compony/ModelFields/Date.html +1 -1
  39. data/doc/Compony/ModelFields/Datetime.html +1 -1
  40. data/doc/Compony/ModelFields/Decimal.html +1 -1
  41. data/doc/Compony/ModelFields/Email.html +1 -1
  42. data/doc/Compony/ModelFields/Float.html +1 -1
  43. data/doc/Compony/ModelFields/Integer.html +1 -1
  44. data/doc/Compony/ModelFields/Percentage.html +1 -1
  45. data/doc/Compony/ModelFields/Phone.html +1 -1
  46. data/doc/Compony/ModelFields/RichText.html +1 -1
  47. data/doc/Compony/ModelFields/String.html +1 -1
  48. data/doc/Compony/ModelFields/Text.html +1 -1
  49. data/doc/Compony/ModelFields/Time.html +1 -1
  50. data/doc/Compony/ModelFields/Url.html +1 -1
  51. data/doc/Compony/ModelFields.html +1 -1
  52. data/doc/Compony/ModelMixin.html +1 -1
  53. data/doc/Compony/NaturalOrdering.html +292 -0
  54. data/doc/Compony/RequestContext.html +72 -1
  55. data/doc/Compony/Version.html +1 -1
  56. data/doc/Compony/ViewHelpers.html +1 -1
  57. data/doc/Compony.html +3 -3
  58. data/doc/ComponyController.html +1 -1
  59. data/doc/_index.html +8 -1
  60. data/doc/class_list.html +1 -1
  61. data/doc/file.README.html +73 -16
  62. data/doc/index.html +73 -16
  63. data/doc/method_list.html +100 -100
  64. data/doc/top-level-namespace.html +1 -1
  65. data/lib/compony/component.rb +30 -54
  66. data/lib/compony/components/edit.rb +2 -4
  67. data/lib/compony/components/new.rb +4 -6
  68. data/lib/compony/components/with_form.rb +1 -1
  69. data/lib/compony/model_fields/anchormodel.rb +3 -1
  70. data/lib/compony/natural_ordering.rb +56 -0
  71. data/lib/compony/request_context.rb +8 -0
  72. data/lib/compony.rb +1 -0
  73. metadata +6 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fde6d013ecb5bcf1288608cbbb4cc1ea29c78a9fcd69a49662d39b3e7a80aff2
4
- data.tar.gz: 05f28621fddc7c0bdd016f0215466f0907a8d605507994b15bbad1ac727e52e7
3
+ metadata.gz: 24c595a91c7f6f7ef4c46c9ab61d4546fea8686e11393514b0fe2974a030fceb
4
+ data.tar.gz: 6f05d552a52cd8ffc229f13fe7f07fde9048b25086a0d5ada9a0db80aaae06c4
5
5
  SHA512:
6
- metadata.gz: a44257229475cf5c9a2c139484c85de9882f88f952835069d8918eca0e827651158a51952c4140cbbb8f559d293e243244f64261e873f9aa8a5fdf19566c4832
7
- data.tar.gz: 99ce464810f661e5dc19610d0c70c64a178854edc3d6c8e1ef055e0eeb48d64a6aadd2396d5c50f94ad6a5cc64b110a6b6e93056de500522dbea1152e6ac9bee
6
+ metadata.gz: 459751c5eaf0f5e5f32f0f629bdcc0a6cb6c5d4a9ed09e1b7fc04121f97a15cb718e524399971398110ab252fc66421b2aed429f78649648c37bbe8f635848d1
7
+ data.tar.gz: 12c8ac8782bded58b19c61be23c27914ac4f573de89f63430b0666ce8ed87602a6383aacc3ca5eba4bb013311bae873607a62f167abd4e1c2017ddf8f0998389
data/.gitignore CHANGED
@@ -1,2 +1,3 @@
1
1
  .rubocop.yml
2
- .yardoc
2
+ .yardoc
3
+ /pkg/*
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.2.edge)
5
- anchormodel (~> 0.1.5)
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.1.5)
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 (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.
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
- If a subclass component calls `content`, it overwrites the block of the parent class, replacing the entire content. To make overwriting more granular, you can use `add_content` instead of `content`. This method can be called multiple times to create an array of content. If no argument is specified, the new content is placed at the bottom. Otherwise, it is inserted at the indicated position. Example:
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
- add_content do
444
+ content :thanks do
439
445
  para 'Thank you and see you tomorrow.'
440
446
  end
441
- add_content 1 do
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
- The result is the h1 with index 0, then the paragraph reading "This paragraph..." with index 1, and finally "Thank you..." with index 2.
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 block is evaluated if present: `before_render`. If this block creates a reponse body in the Rails controller, the content blocks are skipped.
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
- add_content do
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 `@created_succeeded` to true if storing was successful (and to set it to false otherwise).
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.1.5'
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.2.2
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.2.2 ruby lib
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.2.2".freeze
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-04-24"
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.1.5".freeze])
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
@@ -221,7 +221,7 @@
221
221
  </div>
222
222
 
223
223
  <div id="footer">
224
- Generated on Wed Apr 24 17:14:06 2024 by
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
@@ -95,7 +95,7 @@
95
95
  </div>
96
96
 
97
97
  <div id="footer">
98
- Generated on Wed Apr 24 17:14:05 2024 by
98
+ Generated on Wed May 29 15:53:00 2024 by
99
99
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
100
100
  0.9.34 (ruby-3.2.2).
101
101
  </div>
@@ -193,7 +193,7 @@
193
193
  </div>
194
194
 
195
195
  <div id="footer">
196
- Generated on Wed Apr 24 17:14:06 2024 by
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>