compony 0.3.0 → 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
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>