compony 0.3.0 → 0.3.2

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.
Files changed (68) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +13 -0
  3. data/README.md +10 -0
  4. data/VERSION +1 -1
  5. data/compony.gemspec +3 -3
  6. data/doc/ComponentGenerator.html +1 -1
  7. data/doc/Components.html +1 -1
  8. data/doc/ComponentsGenerator.html +1 -1
  9. data/doc/Compony/Component.html +244 -56
  10. data/doc/Compony/ComponentMixins/Default/Labelling.html +1 -1
  11. data/doc/Compony/ComponentMixins/Default/Standalone/ResourcefulVerbDsl.html +1 -1
  12. data/doc/Compony/ComponentMixins/Default/Standalone/StandaloneDsl.html +1 -1
  13. data/doc/Compony/ComponentMixins/Default/Standalone/VerbDsl.html +1 -1
  14. data/doc/Compony/ComponentMixins/Default/Standalone.html +1 -1
  15. data/doc/Compony/ComponentMixins/Default.html +1 -1
  16. data/doc/Compony/ComponentMixins/Resourceful.html +1 -1
  17. data/doc/Compony/ComponentMixins.html +1 -1
  18. data/doc/Compony/Components/Button.html +2 -2
  19. data/doc/Compony/Components/Destroy.html +14 -14
  20. data/doc/Compony/Components/Edit.html +18 -18
  21. data/doc/Compony/Components/Form.html +86 -86
  22. data/doc/Compony/Components/New.html +14 -14
  23. data/doc/Compony/Components/WithForm.html +2 -2
  24. data/doc/Compony/Components.html +1 -1
  25. data/doc/Compony/ControllerMixin.html +1 -1
  26. data/doc/Compony/Engine.html +1 -1
  27. data/doc/Compony/MethodAccessibleHash.html +1 -1
  28. data/doc/Compony/ModelFields/Anchormodel.html +1 -1
  29. data/doc/Compony/ModelFields/Association.html +1 -1
  30. data/doc/Compony/ModelFields/Attachment.html +1 -1
  31. data/doc/Compony/ModelFields/Base.html +1 -1
  32. data/doc/Compony/ModelFields/Boolean.html +1 -1
  33. data/doc/Compony/ModelFields/Color.html +1 -1
  34. data/doc/Compony/ModelFields/Currency.html +1 -1
  35. data/doc/Compony/ModelFields/Date.html +1 -1
  36. data/doc/Compony/ModelFields/Datetime.html +1 -1
  37. data/doc/Compony/ModelFields/Decimal.html +1 -1
  38. data/doc/Compony/ModelFields/Email.html +1 -1
  39. data/doc/Compony/ModelFields/Float.html +1 -1
  40. data/doc/Compony/ModelFields/Integer.html +1 -1
  41. data/doc/Compony/ModelFields/Percentage.html +1 -1
  42. data/doc/Compony/ModelFields/Phone.html +1 -1
  43. data/doc/Compony/ModelFields/RichText.html +1 -1
  44. data/doc/Compony/ModelFields/String.html +1 -1
  45. data/doc/Compony/ModelFields/Text.html +1 -1
  46. data/doc/Compony/ModelFields/Time.html +1 -1
  47. data/doc/Compony/ModelFields/Url.html +1 -1
  48. data/doc/Compony/ModelFields.html +1 -1
  49. data/doc/Compony/ModelMixin.html +1 -1
  50. data/doc/Compony/NaturalOrdering.html +14 -6
  51. data/doc/Compony/RequestContext.html +16 -4
  52. data/doc/Compony/Version.html +1 -1
  53. data/doc/Compony/ViewHelpers.html +1 -1
  54. data/doc/Compony.html +1 -1
  55. data/doc/ComponyController.html +1 -1
  56. data/doc/_index.html +1 -1
  57. data/doc/file.README.html +10 -1
  58. data/doc/index.html +10 -1
  59. data/doc/method_list.html +16 -0
  60. data/doc/top-level-namespace.html +1 -1
  61. data/lib/compony/component.rb +25 -2
  62. data/lib/compony/components/destroy.rb +9 -1
  63. data/lib/compony/components/edit.rb +4 -0
  64. data/lib/compony/components/form.rb +16 -5
  65. data/lib/compony/components/new.rb +1 -0
  66. data/lib/compony/natural_ordering.rb +6 -2
  67. data/lib/compony/request_context.rb +8 -2
  68. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 24c595a91c7f6f7ef4c46c9ab61d4546fea8686e11393514b0fe2974a030fceb
4
- data.tar.gz: 6f05d552a52cd8ffc229f13fe7f07fde9048b25086a0d5ada9a0db80aaae06c4
3
+ metadata.gz: 06e0173c3d9173301367b1775e1fec05c0ea40a77f5738fcd8639ec7e3e327f0
4
+ data.tar.gz: 51ba73e024c5ad97f7a8a935c91b01d06b382ca0870fc95b5e011a9c50726029
5
5
  SHA512:
6
- metadata.gz: 459751c5eaf0f5e5f32f0f629bdcc0a6cb6c5d4a9ed09e1b7fc04121f97a15cb718e524399971398110ab252fc66421b2aed429f78649648c37bbe8f635848d1
7
- data.tar.gz: 12c8ac8782bded58b19c61be23c27914ac4f573de89f63430b0666ce8ed87602a6383aacc3ca5eba4bb013311bae873607a62f167abd4e1c2017ddf8f0998389
6
+ metadata.gz: 89574a221ec8f0bf76e62efc7d378d35b9607d42288d96f2c8e2cee05fac06b415e1d7f2b00f60f58e2775588e942c40cfb7c3dd4f1081b0784a07b0c45bbed5
7
+ data.tar.gz: a05cc34c77c8c921f51b282f754e4c46bcf5ee469d63d448427c72caa08a757bc81e3a31bb8c3db61b268abd8dfbed27b8d6b42c21e230b269cf4ac4cb178f71
data/CHANGELOG.md CHANGED
@@ -1,3 +1,16 @@
1
+ # 0.3.2
2
+
3
+ - Add label content block to edit component
4
+ - Introduce `remove_content!` and make its non-bang pendant tolerate missing blocks
5
+
6
+ # 0.3.1
7
+
8
+ - In `NaturalOrdering`, tolerate omitting payload only if it's an override
9
+ - In `content`, tolerate omitting block if it's an override
10
+ - Instanciate a fresh ActionView `output_buffer` when rendering nested content to prevent double render errors
11
+ - Reshape `Destroy` and `Form` components to provide more fine-grained content blocks that can be selectively overridden
12
+ - Implement `remove_content` which allows removing a previously defined content block (useful for usage in subclasses)
13
+
1
14
  # 0.3.0
2
15
 
3
16
  - Internals:
data/README.md CHANGED
@@ -513,6 +513,16 @@ The output is:
513
513
  <div class="card card-body"><h1>Hello</h1><p>Welcome to my site.</p></div>
514
514
  ```
515
515
 
516
+ ##### Removing content blocks
517
+
518
+ If a component's parent class defines a content block that is undesired in a subclass component, the content block can be removed as follows:
519
+
520
+ ```ruby
521
+ setup do
522
+ remove_content :some_content_defined_in_parent # This component will now behave as if this content block was never declared in its parent.
523
+ end
524
+ ```
525
+
516
526
  #### Redirecting away / Intercepting rendering
517
527
 
518
528
  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.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.0
1
+ 0.3.2
data/compony.gemspec CHANGED
@@ -2,16 +2,16 @@
2
2
  # This file is auto-generated via: 'rake gemspec'.
3
3
 
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: compony 0.3.0 ruby lib
5
+ # stub: compony 0.3.2 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "compony".freeze
9
- s.version = "0.3.0".freeze
9
+ s.version = "0.3.2".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-05-29"
14
+ s.date = "2024-06-01"
15
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
@@ -221,7 +221,7 @@
221
221
  </div>
222
222
 
223
223
  <div id="footer">
224
- Generated on Wed May 29 15:53:01 2024 by
224
+ Generated on Sat Jun 1 14:22:43 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 May 29 15:53:00 2024 by
98
+ Generated on Sat Jun 1 14:22:42 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 May 29 15:53:01 2024 by
196
+ Generated on Sat Jun 1 14:22:43 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>
@@ -557,6 +557,54 @@
557
557
  <p>Returns a hash for the path.</p>
558
558
  </div></span>
559
559
 
560
+ </li>
561
+
562
+
563
+ <li class="public ">
564
+ <span class="summary_signature">
565
+
566
+ <a href="#remove_content-instance_method" title="#remove_content (instance method)">#<strong>remove_content</strong>(name) &#x21d2; Object </a>
567
+
568
+
569
+
570
+ </span>
571
+
572
+
573
+
574
+
575
+
576
+
577
+
578
+
579
+
580
+ <span class="summary_desc"><div class='inline'>
581
+ <p>DSL method Removes a content block.</p>
582
+ </div></span>
583
+
584
+ </li>
585
+
586
+
587
+ <li class="public ">
588
+ <span class="summary_signature">
589
+
590
+ <a href="#remove_content!-instance_method" title="#remove_content! (instance method)">#<strong>remove_content!</strong>(name) &#x21d2; Object </a>
591
+
592
+
593
+
594
+ </span>
595
+
596
+
597
+
598
+
599
+
600
+
601
+
602
+
603
+
604
+ <span class="summary_desc"><div class='inline'>
605
+ <p>DSL method Removes a content block and fails if the content block was not found.</p>
606
+ </div></span>
607
+
560
608
  </li>
561
609
 
562
610
 
@@ -1023,12 +1071,12 @@
1023
1071
  <pre class="lines">
1024
1072
 
1025
1073
 
1026
- 175
1027
- 176
1028
- 177</pre>
1074
+ 198
1075
+ 199
1076
+ 200</pre>
1029
1077
  </td>
1030
1078
  <td>
1031
- <pre class="code"><span class="info file"># File 'lib/compony/component.rb', line 175</span>
1079
+ <pre class="code"><span class="info file"># File 'lib/compony/component.rb', line 198</span>
1032
1080
 
1033
1081
  <span class='kw'>def</span> <span class='id identifier rubyid_action'>action</span><span class='lparen'>(</span><span class='id identifier rubyid_action_name'>action_name</span><span class='comma'>,</span> <span class='label'>before:</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
1034
1082
  <span class='ivar'>@actions</span><span class='period'>.</span><span class='id identifier rubyid_natural_push'>natural_push</span><span class='lparen'>(</span><span class='id identifier rubyid_action_name'>action_name</span><span class='comma'>,</span> <span class='id identifier rubyid_block'>block</span><span class='comma'>,</span> <span class='label'>before:</span><span class='rparen'>)</span>
@@ -1320,14 +1368,20 @@
1320
1368
  132
1321
1369
  133
1322
1370
  134
1323
- 135</pre>
1371
+ 135
1372
+ 136
1373
+ 137
1374
+ 138</pre>
1324
1375
  </td>
1325
1376
  <td>
1326
1377
  <pre class="code"><span class="info file"># File 'lib/compony/component.rb', line 132</span>
1327
1378
 
1328
1379
  <span class='kw'>def</span> <span class='id identifier rubyid_content'>content</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span> <span class='op'>=</span> <span class='symbol'>:main</span><span class='comma'>,</span> <span class='label'>before:</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='op'>**</span><span class='id identifier rubyid_kwargs'>kwargs</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
1329
- <span class='id identifier rubyid_fail'>fail</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>`content` expects a block in </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_inspect'>inspect</span><span class='embexpr_end'>}</span><span class='tstring_content'>.</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span> <span class='kw'>unless</span> <span class='id identifier rubyid_block_given?'>block_given?</span>
1330
- <span class='ivar'>@content_blocks</span><span class='period'>.</span><span class='id identifier rubyid_natural_push'>natural_push</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='comma'>,</span> <span class='id identifier rubyid_block'>block</span><span class='comma'>,</span> <span class='label'>before:</span><span class='comma'>,</span> <span class='op'>**</span><span class='id identifier rubyid_kwargs'>kwargs</span><span class='rparen'>)</span>
1380
+ <span class='comment'># A block is required here, but if this is an override (e.g. to hide another content block), we can tolerate the missing block.
1381
+ </span> <span class='kw'>if</span> <span class='op'>!</span><span class='id identifier rubyid_block_given?'>block_given?</span> <span class='op'>&amp;&amp;</span> <span class='ivar'>@content_blocks</span><span class='period'>.</span><span class='id identifier rubyid_find'>find</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_b'>b</span><span class='op'>|</span> <span class='id identifier rubyid_b'>b</span><span class='period'>.</span><span class='id identifier rubyid_name'>name</span> <span class='op'>==</span> <span class='id identifier rubyid_name'>name</span> <span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
1382
+ <span class='id identifier rubyid_fail'>fail</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>`content` expects a block in </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_inspect'>inspect</span><span class='embexpr_end'>}</span><span class='tstring_content'>.</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1383
+ <span class='kw'>end</span>
1384
+ <span class='ivar'>@content_blocks</span><span class='period'>.</span><span class='id identifier rubyid_natural_push'>natural_push</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='comma'>,</span> <span class='id identifier rubyid_block'>block</span> <span class='op'>||</span> <span class='symbol'>:missing</span><span class='comma'>,</span> <span class='label'>before:</span><span class='comma'>,</span> <span class='op'>**</span><span class='id identifier rubyid_kwargs'>kwargs</span><span class='rparen'>)</span>
1331
1385
  <span class='kw'>end</span></pre>
1332
1386
  </td>
1333
1387
  </tr>
@@ -1628,9 +1682,9 @@
1628
1682
  </div>
1629
1683
 
1630
1684
  <div class="method_details ">
1631
- <h3 class="signature " id="render-instance_method">
1685
+ <h3 class="signature " id="remove_content-instance_method">
1632
1686
 
1633
- #<strong>render</strong>(controller, standalone: false, **locals) &#x21d2; <tt>Object</tt>
1687
+ #<strong>remove_content</strong>(name) &#x21d2; <tt>Object</tt>
1634
1688
 
1635
1689
 
1636
1690
 
@@ -1639,7 +1693,7 @@
1639
1693
  </h3><div class="docstring">
1640
1694
  <div class="discussion">
1641
1695
 
1642
- <p>Renders the component using the controller passsed to it and returns it as a string. Do not overwrite.</p>
1696
+ <p>DSL method Removes a content block. Use this in subclasses if a content block defined in the parent should be removed from the child.</p>
1643
1697
 
1644
1698
 
1645
1699
  </div>
@@ -1650,18 +1704,16 @@
1650
1704
 
1651
1705
  <li>
1652
1706
 
1653
- <span class='name'>standalone</span>
1707
+ <span class='name'>name</span>
1654
1708
 
1655
1709
 
1656
- <span class='type'>(<tt>Boolean</tt>)</span>
1710
+ <span class='type'>(<tt>Symbol</tt>, <tt>String</tt>)</span>
1657
1711
 
1658
1712
 
1659
- <em class="default">(defaults to: <tt>false</tt>)</em>
1660
-
1661
1713
 
1662
1714
  &mdash;
1663
1715
  <div class='inline'>
1664
- <p>pass true iff <code>render</code> is called from <code>render_standalone</code></p>
1716
+ <p>Name of the content block that should be removed</p>
1665
1717
  </div>
1666
1718
 
1667
1719
  </li>
@@ -1675,9 +1727,6 @@
1675
1727
  <pre class="lines">
1676
1728
 
1677
1729
 
1678
- 140
1679
- 141
1680
- 142
1681
1730
  143
1682
1731
  144
1683
1732
  145
@@ -1686,18 +1735,134 @@
1686
1735
  148
1687
1736
  149
1688
1737
  150
1689
- 151
1690
- 152
1691
- 153
1692
- 154
1693
- 155
1738
+ 151</pre>
1739
+ </td>
1740
+ <td>
1741
+ <pre class="code"><span class="info file"># File 'lib/compony/component.rb', line 143</span>
1742
+
1743
+ <span class='kw'>def</span> <span class='id identifier rubyid_remove_content'>remove_content</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='rparen'>)</span>
1744
+ <span class='id identifier rubyid_existing_index'>existing_index</span> <span class='op'>=</span> <span class='ivar'>@content_blocks</span><span class='period'>.</span><span class='id identifier rubyid_find_index'>find_index</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_el'>el</span><span class='op'>|</span> <span class='id identifier rubyid_el'>el</span><span class='period'>.</span><span class='id identifier rubyid_name'>name</span> <span class='op'>==</span> <span class='id identifier rubyid_name'>name</span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span> <span class='rbrace'>}</span>
1745
+ <span class='kw'>if</span> <span class='id identifier rubyid_existing_index'>existing_index</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
1746
+ <span class='kw'>return</span> <span class='kw'>false</span>
1747
+ <span class='kw'>else</span>
1748
+ <span class='ivar'>@content_blocks</span><span class='period'>.</span><span class='id identifier rubyid_delete_at'>delete_at</span><span class='lparen'>(</span><span class='id identifier rubyid_existing_index'>existing_index</span><span class='rparen'>)</span>
1749
+ <span class='kw'>return</span> <span class='kw'>true</span>
1750
+ <span class='kw'>end</span>
1751
+ <span class='kw'>end</span></pre>
1752
+ </td>
1753
+ </tr>
1754
+ </table>
1755
+ </div>
1756
+
1757
+ <div class="method_details ">
1758
+ <h3 class="signature " id="remove_content!-instance_method">
1759
+
1760
+ #<strong>remove_content!</strong>(name) &#x21d2; <tt>Object</tt>
1761
+
1762
+
1763
+
1764
+
1765
+
1766
+ </h3><div class="docstring">
1767
+ <div class="discussion">
1768
+
1769
+ <p>DSL method Removes a content block and fails if the content block was not found.</p>
1770
+
1771
+
1772
+ </div>
1773
+ </div>
1774
+ <div class="tags">
1775
+ <p class="tag_title">Parameters:</p>
1776
+ <ul class="param">
1777
+
1778
+ <li>
1779
+
1780
+ <span class='name'>name</span>
1781
+
1782
+
1783
+ <span class='type'>(<tt>Symbol</tt>, <tt>String</tt>)</span>
1784
+
1785
+
1786
+
1787
+ &mdash;
1788
+ <div class='inline'>
1789
+ <p>Name of the content block that should be removed</p>
1790
+ </div>
1791
+
1792
+ </li>
1793
+
1794
+ </ul>
1795
+
1796
+
1797
+ </div><table class="source_code">
1798
+ <tr>
1799
+ <td>
1800
+ <pre class="lines">
1801
+
1802
+
1694
1803
  156
1695
1804
  157
1696
- 158
1697
- 159
1698
- 160
1699
- 161
1700
- 162
1805
+ 158</pre>
1806
+ </td>
1807
+ <td>
1808
+ <pre class="code"><span class="info file"># File 'lib/compony/component.rb', line 156</span>
1809
+
1810
+ <span class='kw'>def</span> <span class='id identifier rubyid_remove_content!'>remove_content!</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='rparen'>)</span>
1811
+ <span class='id identifier rubyid_remove_content'>remove_content</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='id identifier rubyid_fail'>fail</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Content block </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_name'>name</span><span class='period'>.</span><span class='id identifier rubyid_inspect'>inspect</span><span class='embexpr_end'>}</span><span class='tstring_content'> not found for removal in </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_inspect'>inspect</span><span class='embexpr_end'>}</span><span class='tstring_content'>.</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1812
+ <span class='kw'>end</span></pre>
1813
+ </td>
1814
+ </tr>
1815
+ </table>
1816
+ </div>
1817
+
1818
+ <div class="method_details ">
1819
+ <h3 class="signature " id="render-instance_method">
1820
+
1821
+ #<strong>render</strong>(controller, standalone: false, **locals) &#x21d2; <tt>Object</tt>
1822
+
1823
+
1824
+
1825
+
1826
+
1827
+ </h3><div class="docstring">
1828
+ <div class="discussion">
1829
+
1830
+ <p>Renders the component using the controller passsed to it and returns it as a string. Do not overwrite.</p>
1831
+
1832
+
1833
+ </div>
1834
+ </div>
1835
+ <div class="tags">
1836
+ <p class="tag_title">Parameters:</p>
1837
+ <ul class="param">
1838
+
1839
+ <li>
1840
+
1841
+ <span class='name'>standalone</span>
1842
+
1843
+
1844
+ <span class='type'>(<tt>Boolean</tt>)</span>
1845
+
1846
+
1847
+ <em class="default">(defaults to: <tt>false</tt>)</em>
1848
+
1849
+
1850
+ &mdash;
1851
+ <div class='inline'>
1852
+ <p>pass true iff <code>render</code> is called from <code>render_standalone</code></p>
1853
+ </div>
1854
+
1855
+ </li>
1856
+
1857
+ </ul>
1858
+
1859
+
1860
+ </div><table class="source_code">
1861
+ <tr>
1862
+ <td>
1863
+ <pre class="lines">
1864
+
1865
+
1701
1866
  163
1702
1867
  164
1703
1868
  165
@@ -1705,10 +1870,33 @@
1705
1870
  167
1706
1871
  168
1707
1872
  169
1708
- 170</pre>
1873
+ 170
1874
+ 171
1875
+ 172
1876
+ 173
1877
+ 174
1878
+ 175
1879
+ 176
1880
+ 177
1881
+ 178
1882
+ 179
1883
+ 180
1884
+ 181
1885
+ 182
1886
+ 183
1887
+ 184
1888
+ 185
1889
+ 186
1890
+ 187
1891
+ 188
1892
+ 189
1893
+ 190
1894
+ 191
1895
+ 192
1896
+ 193</pre>
1709
1897
  </td>
1710
1898
  <td>
1711
- <pre class="code"><span class="info file"># File 'lib/compony/component.rb', line 140</span>
1899
+ <pre class="code"><span class="info file"># File 'lib/compony/component.rb', line 163</span>
1712
1900
 
1713
1901
  <span class='kw'>def</span> <span class='id identifier rubyid_render'>render</span><span class='lparen'>(</span><span class='id identifier rubyid_controller'>controller</span><span class='comma'>,</span> <span class='label'>standalone:</span> <span class='kw'>false</span><span class='comma'>,</span> <span class='op'>**</span><span class='id identifier rubyid_locals'>locals</span><span class='rparen'>)</span>
1714
1902
  <span class='comment'># Call before_render hooks (if any) and backfire instance variables back to the component
@@ -1772,25 +1960,25 @@
1772
1960
  <pre class="lines">
1773
1961
 
1774
1962
 
1775
- 186
1776
- 187
1777
- 188
1778
- 189
1779
- 190
1780
- 191
1781
- 192
1782
- 193
1783
- 194
1784
- 195
1785
- 196
1786
- 197
1787
- 198
1788
- 199
1789
- 200
1790
- 201</pre>
1963
+ 209
1964
+ 210
1965
+ 211
1966
+ 212
1967
+ 213
1968
+ 214
1969
+ 215
1970
+ 216
1971
+ 217
1972
+ 218
1973
+ 219
1974
+ 220
1975
+ 221
1976
+ 222
1977
+ 223
1978
+ 224</pre>
1791
1979
  </td>
1792
1980
  <td>
1793
- <pre class="code"><span class="info file"># File 'lib/compony/component.rb', line 186</span>
1981
+ <pre class="code"><span class="info file"># File 'lib/compony/component.rb', line 209</span>
1794
1982
 
1795
1983
  <span class='kw'>def</span> <span class='id identifier rubyid_render_actions'>render_actions</span><span class='lparen'>(</span><span class='id identifier rubyid_controller'>controller</span><span class='comma'>,</span> <span class='label'>wrapper_class:</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='label'>action_class:</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span>
1796
1984
  <span class='id identifier rubyid_h'>h</span> <span class='op'>=</span> <span class='id identifier rubyid_controller'>controller</span><span class='period'>.</span><span class='id identifier rubyid_helpers'>helpers</span>
@@ -1852,12 +2040,12 @@
1852
2040
  <pre class="lines">
1853
2041
 
1854
2042
 
1855
- 204
1856
- 205
1857
- 206</pre>
2043
+ 227
2044
+ 228
2045
+ 229</pre>
1858
2046
  </td>
1859
2047
  <td>
1860
- <pre class="code"><span class="info file"># File 'lib/compony/component.rb', line 204</span>
2048
+ <pre class="code"><span class="info file"># File 'lib/compony/component.rb', line 227</span>
1861
2049
 
1862
2050
  <span class='kw'>def</span> <span class='id identifier rubyid_resourceful?'>resourceful?</span>
1863
2051
  <span class='kw'>return</span> <span class='kw'>false</span>
@@ -1990,12 +2178,12 @@
1990
2178
  <pre class="lines">
1991
2179
 
1992
2180
 
1993
- 181
1994
- 182
1995
- 183</pre>
2181
+ 204
2182
+ 205
2183
+ 206</pre>
1996
2184
  </td>
1997
2185
  <td>
1998
- <pre class="code"><span class="info file"># File 'lib/compony/component.rb', line 181</span>
2186
+ <pre class="code"><span class="info file"># File 'lib/compony/component.rb', line 204</span>
1999
2187
 
2000
2188
  <span class='kw'>def</span> <span class='id identifier rubyid_skip_action'>skip_action</span><span class='lparen'>(</span><span class='id identifier rubyid_action_name'>action_name</span><span class='rparen'>)</span>
2001
2189
  <span class='ivar'>@skipped_actions</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_action_name'>action_name</span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span>
@@ -2055,7 +2243,7 @@
2055
2243
  </div>
2056
2244
 
2057
2245
  <div id="footer">
2058
- Generated on Wed May 29 15:53:00 2024 by
2246
+ Generated on Sat Jun 1 14:22:43 2024 by
2059
2247
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
2060
2248
  0.9.34 (ruby-3.2.2).
2061
2249
  </div>
@@ -396,7 +396,7 @@
396
396
  </div>
397
397
 
398
398
  <div id="footer">
399
- Generated on Wed May 29 15:53:00 2024 by
399
+ Generated on Sat Jun 1 14:22:42 2024 by
400
400
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
401
401
  0.9.34 (ruby-3.2.2).
402
402
  </div>
@@ -529,7 +529,7 @@
529
529
  </div>
530
530
 
531
531
  <div id="footer">
532
- Generated on Wed May 29 15:53:01 2024 by
532
+ Generated on Sat Jun 1 14:22:43 2024 by
533
533
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
534
534
  0.9.34 (ruby-3.2.2).
535
535
  </div>
@@ -578,7 +578,7 @@
578
578
  </div>
579
579
 
580
580
  <div id="footer">
581
- Generated on Wed May 29 15:53:01 2024 by
581
+ Generated on Sat Jun 1 14:22:43 2024 by
582
582
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
583
583
  0.9.34 (ruby-3.2.2).
584
584
  </div>
@@ -567,7 +567,7 @@
567
567
  </div>
568
568
 
569
569
  <div id="footer">
570
- Generated on Wed May 29 15:53:01 2024 by
570
+ Generated on Sat Jun 1 14:22:43 2024 by
571
571
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
572
572
  0.9.34 (ruby-3.2.2).
573
573
  </div>
@@ -682,7 +682,7 @@
682
682
  </div>
683
683
 
684
684
  <div id="footer">
685
- Generated on Wed May 29 15:53:00 2024 by
685
+ Generated on Sat Jun 1 14:22:42 2024 by
686
686
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
687
687
  0.9.34 (ruby-3.2.2).
688
688
  </div>
@@ -116,7 +116,7 @@
116
116
  </div>
117
117
 
118
118
  <div id="footer">
119
- Generated on Wed May 29 15:53:00 2024 by
119
+ Generated on Sat Jun 1 14:22:42 2024 by
120
120
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
121
121
  0.9.34 (ruby-3.2.2).
122
122
  </div>
@@ -1183,7 +1183,7 @@
1183
1183
  </div>
1184
1184
 
1185
1185
  <div id="footer">
1186
- Generated on Wed May 29 15:53:00 2024 by
1186
+ Generated on Sat Jun 1 14:22:42 2024 by
1187
1187
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1188
1188
  0.9.34 (ruby-3.2.2).
1189
1189
  </div>
@@ -116,7 +116,7 @@
116
116
  </div>
117
117
 
118
118
  <div id="footer">
119
- Generated on Wed May 29 15:53:00 2024 by
119
+ Generated on Sat Jun 1 14:22:42 2024 by
120
120
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
121
121
  0.9.34 (ruby-3.2.2).
122
122
  </div>