compony 0.9.0 → 0.10.0

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 (86) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +21 -0
  3. data/Gemfile.lock +1 -1
  4. data/README.md +1 -1
  5. data/VERSION +1 -1
  6. data/compony.gemspec +4 -4
  7. data/doc/ComponentGenerator.html +1 -1
  8. data/doc/Components.html +1 -1
  9. data/doc/ComponentsGenerator.html +1 -1
  10. data/doc/Compony/Component.html +2 -2
  11. data/doc/Compony/ComponentMixins/Default/Labelling.html +120 -39
  12. data/doc/Compony/ComponentMixins/Default/Standalone/ResourcefulVerbDsl.html +1 -1
  13. data/doc/Compony/ComponentMixins/Default/Standalone/StandaloneDsl.html +1 -1
  14. data/doc/Compony/ComponentMixins/Default/Standalone/VerbDsl.html +1 -1
  15. data/doc/Compony/ComponentMixins/Default/Standalone.html +1 -1
  16. data/doc/Compony/ComponentMixins/Default.html +1 -1
  17. data/doc/Compony/ComponentMixins/Resourceful.html +1 -1
  18. data/doc/Compony/ComponentMixins.html +1 -1
  19. data/doc/Compony/Components/Buttons/CssButton.html +1 -1
  20. data/doc/Compony/Components/Buttons/Link.html +1 -1
  21. data/doc/Compony/Components/Buttons.html +1 -1
  22. data/doc/Compony/Components/Destroy.html +13 -13
  23. data/doc/Compony/Components/Edit.html +17 -17
  24. data/doc/Compony/Components/Form.html +49 -49
  25. data/doc/Compony/Components/Index.html +1 -1
  26. data/doc/Compony/Components/List.html +346 -473
  27. data/doc/Compony/Components/New.html +13 -13
  28. data/doc/Compony/Components/Show.html +28 -28
  29. data/doc/Compony/Components/WithForm.html +1 -1
  30. data/doc/Compony/Components.html +1 -1
  31. data/doc/Compony/ControllerMixin.html +1 -1
  32. data/doc/Compony/Engine.html +1 -1
  33. data/doc/Compony/ExposedIntentsDsl.html +1 -1
  34. data/doc/Compony/Intent.html +79 -65
  35. data/doc/Compony/MethodAccessibleHash.html +1 -1
  36. data/doc/Compony/ModelFields/Anchormodel.html +1 -1
  37. data/doc/Compony/ModelFields/Association.html +1 -1
  38. data/doc/Compony/ModelFields/Attachment.html +1 -1
  39. data/doc/Compony/ModelFields/Base.html +1 -1
  40. data/doc/Compony/ModelFields/Boolean.html +1 -1
  41. data/doc/Compony/ModelFields/Color.html +1 -1
  42. data/doc/Compony/ModelFields/Currency.html +1 -1
  43. data/doc/Compony/ModelFields/Date.html +1 -1
  44. data/doc/Compony/ModelFields/Datetime.html +1 -1
  45. data/doc/Compony/ModelFields/Decimal.html +1 -1
  46. data/doc/Compony/ModelFields/Email.html +1 -1
  47. data/doc/Compony/ModelFields/Float.html +1 -1
  48. data/doc/Compony/ModelFields/Integer.html +1 -1
  49. data/doc/Compony/ModelFields/Percentage.html +1 -1
  50. data/doc/Compony/ModelFields/Phone.html +1 -1
  51. data/doc/Compony/ModelFields/RichText.html +1 -1
  52. data/doc/Compony/ModelFields/String.html +1 -1
  53. data/doc/Compony/ModelFields/Text.html +1 -1
  54. data/doc/Compony/ModelFields/Time.html +1 -1
  55. data/doc/Compony/ModelFields/Url.html +1 -1
  56. data/doc/Compony/ModelFields.html +1 -1
  57. data/doc/Compony/ModelMixin.html +1 -1
  58. data/doc/Compony/NaturalOrdering.html +1 -1
  59. data/doc/Compony/RequestContext.html +22 -10
  60. data/doc/Compony/Version.html +1 -1
  61. data/doc/Compony/ViewHelpers.html +1 -1
  62. data/doc/Compony/VirtualModel.html +1 -1
  63. data/doc/Compony.html +8 -8
  64. data/doc/ComponyController.html +1 -1
  65. data/doc/_index.html +8 -8
  66. data/doc/class_list.html +1 -1
  67. data/doc/file.README.html +2 -2
  68. data/doc/guide/nesting.md +26 -4
  69. data/doc/index.html +2 -2
  70. data/doc/method_list.html +174 -182
  71. data/doc/top-level-namespace.html +1 -1
  72. data/lib/compony/component.rb +1 -1
  73. data/lib/compony/component_mixins/default/labelling.rb +28 -17
  74. data/lib/compony/components/destroy.rb +2 -5
  75. data/lib/compony/components/edit.rb +2 -4
  76. data/lib/compony/components/form.rb +0 -1
  77. data/lib/compony/components/index.rb +1 -1
  78. data/lib/compony/components/list.rb +57 -62
  79. data/lib/compony/components/new.rb +0 -1
  80. data/lib/compony/components/show.rb +4 -11
  81. data/lib/compony/intent.rb +10 -4
  82. data/lib/compony/{exposed_intents_dsl.rb → manage_intents_dsl.rb} +6 -3
  83. data/lib/compony/model_mixin.rb +1 -1
  84. data/lib/compony/request_context.rb +10 -3
  85. data/lib/compony.rb +4 -4
  86. metadata +3 -3
@@ -309,12 +309,12 @@
309
309
  <pre class="lines">
310
310
 
311
311
 
312
+ 98
312
313
  99
313
- 100
314
- 101</pre>
314
+ 100</pre>
315
315
  </td>
316
316
  <td>
317
- <pre class="code"><span class="info file"># File 'lib/compony/components/new.rb', line 99</span>
317
+ <pre class="code"><span class="info file"># File 'lib/compony/components/new.rb', line 98</span>
318
318
 
319
319
  <span class='kw'>def</span> <span class='id identifier rubyid_on_create_failed_respond'>on_create_failed_respond</span><span class='lparen'>(</span><span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
320
320
  <span class='ivar'>@on_create_failed_respond_block</span> <span class='op'>=</span> <span class='id identifier rubyid_block'>block</span>
@@ -350,12 +350,12 @@
350
350
  <pre class="lines">
351
351
 
352
352
 
353
+ 83
353
354
  84
354
- 85
355
- 86</pre>
355
+ 85</pre>
356
356
  </td>
357
357
  <td>
358
- <pre class="code"><span class="info file"># File 'lib/compony/components/new.rb', line 84</span>
358
+ <pre class="code"><span class="info file"># File 'lib/compony/components/new.rb', line 83</span>
359
359
 
360
360
  <span class='kw'>def</span> <span class='id identifier rubyid_on_created'>on_created</span><span class='lparen'>(</span><span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
361
361
  <span class='ivar'>@on_created_block</span> <span class='op'>=</span> <span class='id identifier rubyid_block'>block</span>
@@ -391,12 +391,12 @@
391
391
  <pre class="lines">
392
392
 
393
393
 
394
+ 93
394
395
  94
395
- 95
396
- 96</pre>
396
+ 95</pre>
397
397
  </td>
398
398
  <td>
399
- <pre class="code"><span class="info file"># File 'lib/compony/components/new.rb', line 94</span>
399
+ <pre class="code"><span class="info file"># File 'lib/compony/components/new.rb', line 93</span>
400
400
 
401
401
  <span class='kw'>def</span> <span class='id identifier rubyid_on_created_redirect_path'>on_created_redirect_path</span><span class='lparen'>(</span><span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
402
402
  <span class='ivar'>@on_created_redirect_path_block</span> <span class='op'>=</span> <span class='id identifier rubyid_block'>block</span>
@@ -432,12 +432,12 @@
432
432
  <pre class="lines">
433
433
 
434
434
 
435
+ 88
435
436
  89
436
- 90
437
- 91</pre>
437
+ 90</pre>
438
438
  </td>
439
439
  <td>
440
- <pre class="code"><span class="info file"># File 'lib/compony/components/new.rb', line 89</span>
440
+ <pre class="code"><span class="info file"># File 'lib/compony/components/new.rb', line 88</span>
441
441
 
442
442
  <span class='kw'>def</span> <span class='id identifier rubyid_on_created_respond'>on_created_respond</span><span class='lparen'>(</span><span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
443
443
  <span class='ivar'>@on_created_respond_block</span> <span class='op'>=</span> <span class='id identifier rubyid_block'>block</span>
@@ -452,7 +452,7 @@
452
452
  </div>
453
453
 
454
454
  <div id="footer">
455
- Generated on Fri Nov 28 12:38:44 2025 by
455
+ Generated on Mon Dec 8 15:19:20 2025 by
456
456
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
457
457
  0.9.34 (ruby-3.3.5).
458
458
  </div>
@@ -341,14 +341,14 @@
341
341
  <pre class="lines">
342
342
 
343
343
 
344
- 63
345
- 64
346
- 65
347
- 66
348
- 67</pre>
344
+ 56
345
+ 57
346
+ 58
347
+ 59
348
+ 60</pre>
349
349
  </td>
350
350
  <td>
351
- <pre class="code"><span class="info file"># File 'lib/compony/components/show.rb', line 63</span>
351
+ <pre class="code"><span class="info file"># File 'lib/compony/components/show.rb', line 56</span>
352
352
 
353
353
  <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='op'>*</span><span class='comma'>,</span> <span class='label'>skip_columns:</span> <span class='lbracket'>[</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='op'>**</span><span class='rparen'>)</span>
354
354
  <span class='ivar'>@columns</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../NaturalOrdering.html" title="Compony::NaturalOrdering (class)">NaturalOrdering</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
@@ -413,12 +413,12 @@
413
413
  <pre class="lines">
414
414
 
415
415
 
416
- 111
417
- 112
418
- 113</pre>
416
+ 104
417
+ 105
418
+ 106</pre>
419
419
  </td>
420
420
  <td>
421
- <pre class="code"><span class="info file"># File 'lib/compony/components/show.rb', line 111</span>
421
+ <pre class="code"><span class="info file"># File 'lib/compony/components/show.rb', line 104</span>
422
422
 
423
423
  <span class='kw'>def</span> <span class='id identifier rubyid_all_field_columns'>all_field_columns</span><span class='lparen'>(</span><span class='id identifier rubyid_data'>data</span><span class='rparen'>)</span>
424
424
  <span class='id identifier rubyid_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_fields'>fields</span><span class='period'>.</span><span class='id identifier rubyid_each_key'>each_key</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_field_name'>field_name</span><span class='op'>|</span> <span class='id identifier rubyid_column'>column</span><span class='lparen'>(</span><span class='id identifier rubyid_field_name'>field_name</span><span class='rparen'>)</span> <span class='rbrace'>}</span>
@@ -562,6 +562,13 @@
562
562
  <pre class="lines">
563
563
 
564
564
 
565
+ 69
566
+ 70
567
+ 71
568
+ 72
569
+ 73
570
+ 74
571
+ 75
565
572
  76
566
573
  77
567
574
  78
@@ -570,17 +577,10 @@
570
577
  81
571
578
  82
572
579
  83
573
- 84
574
- 85
575
- 86
576
- 87
577
- 88
578
- 89
579
- 90
580
- 91</pre>
580
+ 84</pre>
581
581
  </td>
582
582
  <td>
583
- <pre class="code"><span class="info file"># File 'lib/compony/components/show.rb', line 76</span>
583
+ <pre class="code"><span class="info file"># File 'lib/compony/components/show.rb', line 69</span>
584
584
 
585
585
  <span class='kw'>def</span> <span class='id identifier rubyid_column'>column</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='comma'>,</span> <span class='label'>label:</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='label'>class:</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='label'>link_opts:</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='label'>link_to_component:</span> <span class='symbol'>:show</span><span class='comma'>,</span> <span class='op'>**</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
586
586
  <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>
@@ -649,12 +649,12 @@
649
649
  <pre class="lines">
650
650
 
651
651
 
652
- 96
653
- 97
654
- 98</pre>
652
+ 89
653
+ 90
654
+ 91</pre>
655
655
  </td>
656
656
  <td>
657
- <pre class="code"><span class="info file"># File 'lib/compony/components/show.rb', line 96</span>
657
+ <pre class="code"><span class="info file"># File 'lib/compony/components/show.rb', line 89</span>
658
658
 
659
659
  <span class='kw'>def</span> <span class='id identifier rubyid_columns'>columns</span><span class='lparen'>(</span><span class='op'>*</span><span class='id identifier rubyid_col_names'>col_names</span><span class='comma'>,</span> <span class='op'>**</span><span class='rparen'>)</span>
660
660
  <span class='id identifier rubyid_col_names'>col_names</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_col_name'>col_name</span><span class='op'>|</span> <span class='id identifier rubyid_column'>column</span><span class='lparen'>(</span><span class='id identifier rubyid_col_name'>col_name</span><span class='comma'>,</span> <span class='op'>**</span><span class='rparen'>)</span> <span class='rbrace'>}</span>
@@ -710,12 +710,12 @@
710
710
  <pre class="lines">
711
711
 
712
712
 
713
- 104
714
- 105
715
- 106</pre>
713
+ 97
714
+ 98
715
+ 99</pre>
716
716
  </td>
717
717
  <td>
718
- <pre class="code"><span class="info file"># File 'lib/compony/components/show.rb', line 104</span>
718
+ <pre class="code"><span class="info file"># File 'lib/compony/components/show.rb', line 97</span>
719
719
 
720
720
  <span class='kw'>def</span> <span class='id identifier rubyid_skip_column'>skip_column</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='rparen'>)</span>
721
721
  <span class='ivar'>@skipped_columns</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_name'>name</span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span>
@@ -730,7 +730,7 @@
730
730
  </div>
731
731
 
732
732
  <div id="footer">
733
- Generated on Fri Nov 28 12:38:45 2025 by
733
+ Generated on Mon Dec 8 15:19:20 2025 by
734
734
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
735
735
  0.9.34 (ruby-3.3.5).
736
736
  </div>
@@ -591,7 +591,7 @@
591
591
  </div>
592
592
 
593
593
  <div id="footer">
594
- Generated on Fri Nov 28 12:38:45 2025 by
594
+ Generated on Mon Dec 8 15:19:21 2025 by
595
595
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
596
596
  0.9.34 (ruby-3.3.5).
597
597
  </div>
@@ -118,7 +118,7 @@
118
118
  </div>
119
119
 
120
120
  <div id="footer">
121
- Generated on Fri Nov 28 12:38:44 2025 by
121
+ Generated on Mon Dec 8 15:19:20 2025 by
122
122
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
123
123
  0.9.34 (ruby-3.3.5).
124
124
  </div>
@@ -126,7 +126,7 @@
126
126
  </div>
127
127
 
128
128
  <div id="footer">
129
- Generated on Fri Nov 28 12:38:44 2025 by
129
+ Generated on Mon Dec 8 15:19:20 2025 by
130
130
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
131
131
  0.9.34 (ruby-3.3.5).
132
132
  </div>
@@ -123,7 +123,7 @@
123
123
  </div>
124
124
 
125
125
  <div id="footer">
126
- Generated on Fri Nov 28 12:38:44 2025 by
126
+ Generated on Mon Dec 8 15:19:20 2025 by
127
127
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
128
128
  0.9.34 (ruby-3.3.5).
129
129
  </div>
@@ -393,7 +393,7 @@
393
393
  </div>
394
394
 
395
395
  <div id="footer">
396
- Generated on Fri Nov 28 12:38:45 2025 by
396
+ Generated on Fri Nov 28 12:38:50 2025 by
397
397
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
398
398
  0.9.34 (ruby-3.3.5).
399
399
  </div>
@@ -303,7 +303,7 @@
303
303
  <li class="public ">
304
304
  <span class="summary_signature">
305
305
 
306
- <a href="#initialize-instance_method" title="#initialize (instance method)">#<strong>initialize</strong>(comp_name_or_cst_or_class, model_or_family_name_or_cst = nil, standalone_name: nil, name: nil, label: nil, style: nil, button: {}, path: nil, method: nil, data: nil, data_class: nil, feasibility_target: nil, feasibility_action: nil) &#x21d2; Intent </a>
306
+ <a href="#initialize-instance_method" title="#initialize (instance method)">#<strong>initialize</strong>(comp_name_or_cst_or_class = nil, model_or_family_name_or_cst = nil, standalone_name: nil, name: nil, label: nil, style: nil, button: {}, path: nil, method: nil, data: nil, data_class: nil, feasibility_target: nil, feasibility_action: nil) &#x21d2; Intent </a>
307
307
 
308
308
 
309
309
 
@@ -477,7 +477,7 @@
477
477
  <div class="method_details first">
478
478
  <h3 class="signature first" id="initialize-instance_method">
479
479
 
480
- #<strong>initialize</strong>(comp_name_or_cst_or_class, model_or_family_name_or_cst = nil, standalone_name: nil, name: nil, label: nil, style: nil, button: {}, path: nil, method: nil, data: nil, data_class: nil, feasibility_target: nil, feasibility_action: nil) &#x21d2; <tt><span class='object_link'><a href="" title="Compony::Intent (class)">Intent</a></span></tt>
480
+ #<strong>initialize</strong>(comp_name_or_cst_or_class = nil, model_or_family_name_or_cst = nil, standalone_name: nil, name: nil, label: nil, style: nil, button: {}, path: nil, method: nil, data: nil, data_class: nil, feasibility_target: nil, feasibility_action: nil) &#x21d2; <tt><span class='object_link'><a href="" title="Compony::Intent (class)">Intent</a></span></tt>
481
481
 
482
482
 
483
483
 
@@ -503,6 +503,8 @@
503
503
  <span class='type'>(<tt>String</tt>, <tt>Symbol</tt>, <tt>Class</tt>)</span>
504
504
 
505
505
 
506
+ <em class="default">(defaults to: <tt>nil</tt>)</em>
507
+
506
508
 
507
509
  &mdash;
508
510
  <div class='inline'>
@@ -759,12 +761,16 @@
759
761
  64
760
762
  65
761
763
  66
762
- 67</pre>
764
+ 67
765
+ 68
766
+ 69
767
+ 70
768
+ 71</pre>
763
769
  </td>
764
770
  <td>
765
771
  <pre class="code"><span class="info file"># File 'lib/compony/intent.rb', line 26</span>
766
772
 
767
- <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_comp_name_or_cst_or_class'>comp_name_or_cst_or_class</span><span class='comma'>,</span>
773
+ <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_comp_name_or_cst_or_class'>comp_name_or_cst_or_class</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='comma'>,</span>
768
774
  <span class='id identifier rubyid_model_or_family_name_or_cst'>model_or_family_name_or_cst</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='comma'>,</span>
769
775
  <span class='label'>standalone_name:</span> <span class='kw'>nil</span><span class='comma'>,</span>
770
776
  <span class='label'>name:</span> <span class='kw'>nil</span><span class='comma'>,</span>
@@ -783,7 +789,11 @@
783
789
  <span class='ivar'>@data_class</span> <span class='op'>=</span> <span class='id identifier rubyid_data_class'>data_class</span>
784
790
 
785
791
  <span class='comment'># Figure out comp_class
786
- </span> <span class='kw'>if</span> <span class='id identifier rubyid_comp_name_or_cst_or_class'>comp_name_or_cst_or_class</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Class</span><span class='rparen'>)</span> <span class='op'>&amp;&amp;</span> <span class='lparen'>(</span><span class='id identifier rubyid_comp_name_or_cst_or_class'>comp_name_or_cst_or_class</span> <span class='op'>&lt;=</span> <span class='const'><span class='object_link'><a href="../Compony.html" title="Compony (module)">Compony</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Component.html" title="Compony::Component (class)">Component</a></span></span><span class='rparen'>)</span>
792
+ </span> <span class='kw'>if</span> <span class='id identifier rubyid_comp_name_or_cst_or_class'>comp_name_or_cst_or_class</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
793
+ <span class='kw'>if</span> <span class='id identifier rubyid_name'>name</span><span class='period'>.</span><span class='id identifier rubyid_blank?'>blank?</span> <span class='op'>||</span> <span class='op'>!</span><span class='id identifier rubyid_label'>label</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>String</span><span class='rparen'>)</span>
794
+ <span class='id identifier rubyid_fail'>fail</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>An intent created without positional arguments must be given the kwargs `name:`, `label` (String).</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span>
795
+ <span class='kw'>end</span>
796
+ <span class='kw'>elsif</span> <span class='id identifier rubyid_comp_name_or_cst_or_class'>comp_name_or_cst_or_class</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Class</span><span class='rparen'>)</span> <span class='op'>&amp;&amp;</span> <span class='lparen'>(</span><span class='id identifier rubyid_comp_name_or_cst_or_class'>comp_name_or_cst_or_class</span> <span class='op'>&lt;=</span> <span class='const'><span class='object_link'><a href="../Compony.html" title="Compony (module)">Compony</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Component.html" title="Compony::Component (class)">Component</a></span></span><span class='rparen'>)</span>
787
797
  <span class='comment'># A class was given as the first argument
788
798
  </span> <span class='ivar'>@comp_class</span> <span class='op'>=</span> <span class='id identifier rubyid_comp_name_or_cst_or_class'>comp_name_or_cst_or_class</span>
789
799
  <span class='kw'>else</span>
@@ -931,18 +941,18 @@
931
941
  <pre class="lines">
932
942
 
933
943
 
934
- 121
935
- 122
936
- 123
937
- 124
938
- 125
939
- 126
940
944
  127
941
945
  128
942
- 129</pre>
946
+ 129
947
+ 130
948
+ 131
949
+ 132
950
+ 133
951
+ 134
952
+ 135</pre>
943
953
  </td>
944
954
  <td>
945
- <pre class="code"><span class="info file"># File 'lib/compony/intent.rb', line 121</span>
955
+ <pre class="code"><span class="info file"># File 'lib/compony/intent.rb', line 127</span>
946
956
 
947
957
  <span class='kw'>def</span> <span class='id identifier rubyid_button_comp_opts'>button_comp_opts</span>
948
958
  <span class='kw'>return</span> <span class='lbrace'>{</span>
@@ -984,14 +994,16 @@
984
994
  <pre class="lines">
985
995
 
986
996
 
987
- 77
988
- 78
989
- 79</pre>
997
+ 81
998
+ 82
999
+ 83
1000
+ 84</pre>
990
1001
  </td>
991
1002
  <td>
992
- <pre class="code"><span class="info file"># File 'lib/compony/intent.rb', line 77</span>
1003
+ <pre class="code"><span class="info file"># File 'lib/compony/intent.rb', line 81</span>
993
1004
 
994
1005
  <span class='kw'>def</span> <span class='id identifier rubyid_comp'>comp</span><span class='lparen'>(</span><span class='op'>*</span><span class='comma'>,</span> <span class='op'>**</span><span class='rparen'>)</span>
1006
+ <span class='kw'>return</span> <span class='kw'>nil</span> <span class='kw'>if</span> <span class='ivar'>@comp_class</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
995
1007
  <span class='kw'>return</span> <span class='ivar'>@comp</span> <span class='op'>||=</span> <span class='ivar'>@comp_class</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='op'>*</span><span class='comma'>,</span> <span class='label'>data:</span> <span class='ivar'>@data</span><span class='comma'>,</span> <span class='label'>data_class:</span> <span class='ivar'>@data_class</span><span class='comma'>,</span> <span class='op'>**</span><span class='rparen'>)</span>
996
1008
  <span class='kw'>end</span></pre>
997
1009
  </td>
@@ -1023,12 +1035,12 @@
1023
1035
  <pre class="lines">
1024
1036
 
1025
1037
 
1026
- 110
1027
- 111
1028
- 112</pre>
1038
+ 116
1039
+ 117
1040
+ 118</pre>
1029
1041
  </td>
1030
1042
  <td>
1031
- <pre class="code"><span class="info file"># File 'lib/compony/intent.rb', line 110</span>
1043
+ <pre class="code"><span class="info file"># File 'lib/compony/intent.rb', line 116</span>
1032
1044
 
1033
1045
  <span class='kw'>def</span> <span class='id identifier rubyid_feasibility_action'>feasibility_action</span>
1034
1046
  <span class='ivar'>@feasibility_action</span><span class='period'>.</span><span class='id identifier rubyid_presence'>presence</span> <span class='op'>||</span> <span class='id identifier rubyid_comp_class'>comp_class</span><span class='period'>.</span><span class='id identifier rubyid_comp_name'>comp_name</span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span>
@@ -1062,12 +1074,12 @@
1062
1074
  <pre class="lines">
1063
1075
 
1064
1076
 
1065
- 106
1066
- 107
1067
- 108</pre>
1077
+ 112
1078
+ 113
1079
+ 114</pre>
1068
1080
  </td>
1069
1081
  <td>
1070
- <pre class="code"><span class="info file"># File 'lib/compony/intent.rb', line 106</span>
1082
+ <pre class="code"><span class="info file"># File 'lib/compony/intent.rb', line 112</span>
1071
1083
 
1072
1084
  <span class='kw'>def</span> <span class='id identifier rubyid_feasibility_target'>feasibility_target</span>
1073
1085
  <span class='ivar'>@feasibility_target</span><span class='period'>.</span><span class='id identifier rubyid_presence'>presence</span> <span class='op'>||</span> <span class='id identifier rubyid_model?'>model?</span> <span class='op'>?</span> <span class='ivar'>@data</span> <span class='op'>:</span> <span class='kw'>nil</span>
@@ -1116,13 +1128,13 @@
1116
1128
  <pre class="lines">
1117
1129
 
1118
1130
 
1119
- 115
1120
- 116
1121
- 117
1122
- 118</pre>
1131
+ 121
1132
+ 122
1133
+ 123
1134
+ 124</pre>
1123
1135
  </td>
1124
1136
  <td>
1125
- <pre class="code"><span class="info file"># File 'lib/compony/intent.rb', line 115</span>
1137
+ <pre class="code"><span class="info file"># File 'lib/compony/intent.rb', line 121</span>
1126
1138
 
1127
1139
  <span class='kw'>def</span> <span class='id identifier rubyid_feasible?'>feasible?</span>
1128
1140
  <span class='kw'>return</span> <span class='kw'>true</span> <span class='kw'>if</span> <span class='id identifier rubyid_feasibility_target'>feasibility_target</span><span class='period'>.</span><span class='id identifier rubyid_blank?'>blank?</span> <span class='op'>||</span> <span class='id identifier rubyid_feasibility_action'>feasibility_action</span><span class='period'>.</span><span class='id identifier rubyid_blank?'>blank?</span>
@@ -1159,13 +1171,13 @@
1159
1171
  <pre class="lines">
1160
1172
 
1161
1173
 
1162
- 97
1163
- 98
1164
- 99
1165
- 100</pre>
1174
+ 103
1175
+ 104
1176
+ 105
1177
+ 106</pre>
1166
1178
  </td>
1167
1179
  <td>
1168
- <pre class="code"><span class="info file"># File 'lib/compony/intent.rb', line 97</span>
1180
+ <pre class="code"><span class="info file"># File 'lib/compony/intent.rb', line 103</span>
1169
1181
 
1170
1182
  <span class='kw'>def</span> <span class='id identifier rubyid_label'>label</span><span class='lparen'>(</span><span class='id identifier rubyid_model'>model</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='op'>*</span><span class='comma'>,</span> <span class='op'>**</span><span class='id identifier rubyid_label_opt_overrides'>label_opt_overrides</span><span class='rparen'>)</span>
1171
1183
  <span class='id identifier rubyid_label_opts'>label_opts</span> <span class='op'>=</span> <span class='ivar'>@label_opts</span><span class='period'>.</span><span class='id identifier rubyid_deep_merge'>deep_merge</span><span class='lparen'>(</span><span class='id identifier rubyid_label_opt_overrides'>label_opt_overrides</span><span class='rparen'>)</span>
@@ -1200,12 +1212,12 @@
1200
1212
  <pre class="lines">
1201
1213
 
1202
1214
 
1203
- 102
1204
- 103
1205
- 104</pre>
1215
+ 108
1216
+ 109
1217
+ 110</pre>
1206
1218
  </td>
1207
1219
  <td>
1208
- <pre class="code"><span class="info file"># File 'lib/compony/intent.rb', line 102</span>
1220
+ <pre class="code"><span class="info file"># File 'lib/compony/intent.rb', line 108</span>
1209
1221
 
1210
1222
  <span class='kw'>def</span> <span class='id identifier rubyid_method'>method</span>
1211
1223
  <span class='ivar'>@method</span> <span class='op'>||</span> <span class='symbol'>:get</span>
@@ -1254,13 +1266,13 @@
1254
1266
  <pre class="lines">
1255
1267
 
1256
1268
 
1257
- 70
1258
- 71
1259
- 72
1260
- 73</pre>
1269
+ 74
1270
+ 75
1271
+ 76
1272
+ 77</pre>
1261
1273
  </td>
1262
1274
  <td>
1263
- <pre class="code"><span class="info file"># File 'lib/compony/intent.rb', line 70</span>
1275
+ <pre class="code"><span class="info file"># File 'lib/compony/intent.rb', line 74</span>
1264
1276
 
1265
1277
  <span class='kw'>def</span> <span class='id identifier rubyid_model?'>model?</span>
1266
1278
  <span class='ivar'>@model</span> <span class='op'>=</span> <span class='ivar'>@data</span><span class='period'>.</span><span class='id identifier rubyid_respond_to?'>respond_to?</span><span class='lparen'>(</span><span class='symbol'>:model_name</span><span class='rparen'>)</span> <span class='op'>&amp;&amp;</span> <span class='op'>!</span><span class='ivar'>@data</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Class</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='ivar'>@model</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
@@ -1297,12 +1309,12 @@
1297
1309
  <pre class="lines">
1298
1310
 
1299
1311
 
1300
- 92
1301
- 93
1302
- 94</pre>
1312
+ 98
1313
+ 99
1314
+ 100</pre>
1303
1315
  </td>
1304
1316
  <td>
1305
- <pre class="code"><span class="info file"># File 'lib/compony/intent.rb', line 92</span>
1317
+ <pre class="code"><span class="info file"># File 'lib/compony/intent.rb', line 98</span>
1306
1318
 
1307
1319
  <span class='kw'>def</span> <span class='id identifier rubyid_name'>name</span>
1308
1320
  <span class='ivar'>@name</span><span class='period'>.</span><span class='id identifier rubyid_presence'>presence</span> <span class='op'>||</span> <span class='symbol'>:&quot;#{</span><span class='id identifier rubyid_comp_class'>comp_class</span><span class='period'>.</span><span class='id identifier rubyid_comp_name'>comp_name</span><span class='embexpr_end'>}</span><span class='tstring_content'>_</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_comp_class'>comp_class</span><span class='period'>.</span><span class='id identifier rubyid_family_name'>family_name</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
@@ -1378,15 +1390,17 @@
1378
1390
  <pre class="lines">
1379
1391
 
1380
1392
 
1381
- 85
1382
- 86
1383
- 87
1384
- 88</pre>
1393
+ 90
1394
+ 91
1395
+ 92
1396
+ 93
1397
+ 94</pre>
1385
1398
  </td>
1386
1399
  <td>
1387
- <pre class="code"><span class="info file"># File 'lib/compony/intent.rb', line 85</span>
1400
+ <pre class="code"><span class="info file"># File 'lib/compony/intent.rb', line 90</span>
1388
1401
 
1389
1402
  <span class='kw'>def</span> <span class='id identifier rubyid_path'>path</span><span class='lparen'>(</span><span class='id identifier rubyid_model'>model</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='op'>*</span><span class='comma'>,</span> <span class='label'>standalone_name:</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='op'>**</span><span class='id identifier rubyid_path_opt_overrides'>path_opt_overrides</span><span class='rparen'>)</span>
1403
+ <span class='kw'>return</span> <span class='kw'>nil</span> <span class='kw'>if</span> <span class='ivar'>@comp_class</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
1390
1404
  <span class='id identifier rubyid_path_opts'>path_opts</span> <span class='op'>=</span> <span class='ivar'>@path_opts</span><span class='period'>.</span><span class='id identifier rubyid_deep_merge'>deep_merge</span><span class='lparen'>(</span><span class='id identifier rubyid_path_opt_overrides'>path_opt_overrides</span><span class='rparen'>)</span>
1391
1405
  <span class='id identifier rubyid_comp'>comp</span><span class='period'>.</span><span class='id identifier rubyid_path'>path</span><span class='lparen'>(</span><span class='id identifier rubyid_model'>model</span> <span class='op'>||</span> <span class='lparen'>(</span><span class='id identifier rubyid_model?'>model?</span> <span class='op'>?</span> <span class='ivar'>@data</span> <span class='op'>:</span> <span class='kw'>nil</span><span class='rparen'>)</span><span class='comma'>,</span> <span class='label'>standalone_name:</span> <span class='id identifier rubyid_standalone_name'>standalone_name</span> <span class='op'>||</span> <span class='ivar'>@standalone_name</span><span class='comma'>,</span> <span class='op'>**</span><span class='id identifier rubyid_path_opts'>path_opts</span><span class='rparen'>)</span>
1392
1406
  <span class='kw'>end</span></pre>
@@ -1493,30 +1507,30 @@
1493
1507
  <pre class="lines">
1494
1508
 
1495
1509
 
1496
- 136
1497
- 137
1498
- 138
1499
- 139
1500
- 140
1501
- 141
1502
1510
  142
1503
1511
  143
1504
1512
  144
1505
1513
  145
1506
1514
  146
1507
1515
  147
1508
- 148</pre>
1516
+ 148
1517
+ 149
1518
+ 150
1519
+ 151
1520
+ 152
1521
+ 153
1522
+ 154</pre>
1509
1523
  </td>
1510
1524
  <td>
1511
- <pre class="code"><span class="info file"># File 'lib/compony/intent.rb', line 136</span>
1525
+ <pre class="code"><span class="info file"># File 'lib/compony/intent.rb', line 142</span>
1512
1526
 
1513
1527
  <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='id identifier rubyid_parent_comp'>parent_comp</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='label'>style:</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='op'>**</span><span class='id identifier rubyid_button_arg_overrides'>button_arg_overrides</span><span class='rparen'>)</span>
1514
1528
  <span class='comment'># Abort if not authorized
1515
- </span> <span class='kw'>return</span> <span class='kw'>nil</span> <span class='kw'>unless</span> <span class='id identifier rubyid_comp'>comp</span><span class='period'>.</span><span class='id identifier rubyid_standalone_access_permitted_for?'>standalone_access_permitted_for?</span><span class='lparen'>(</span><span class='id identifier rubyid_controller'>controller</span><span class='comma'>,</span> <span class='label'>standalone_name:</span> <span class='ivar'>@standalone_name</span><span class='comma'>,</span> <span class='label'>verb:</span> <span class='id identifier rubyid_method'>method</span><span class='rparen'>)</span>
1529
+ </span> <span class='kw'>return</span> <span class='kw'>nil</span> <span class='kw'>if</span> <span class='id identifier rubyid_comp'>comp</span> <span class='op'>&amp;&amp;</span> <span class='op'>!</span><span class='id identifier rubyid_comp'>comp</span><span class='period'>.</span><span class='id identifier rubyid_standalone_access_permitted_for?'>standalone_access_permitted_for?</span><span class='lparen'>(</span><span class='id identifier rubyid_controller'>controller</span><span class='comma'>,</span> <span class='label'>standalone_name:</span> <span class='ivar'>@standalone_name</span><span class='comma'>,</span> <span class='label'>verb:</span> <span class='id identifier rubyid_method'>method</span><span class='rparen'>)</span>
1516
1530
  <span class='comment'># Prepare opts
1517
1531
  </span> <span class='id identifier rubyid_button_comp_class'>button_comp_class</span> <span class='op'>||=</span> <span class='const'><span class='object_link'><a href="../Compony.html" title="Compony (module)">Compony</a></span></span><span class='period'>.</span><span class='id identifier rubyid_button_component_class'><span class='object_link'><a href="../Compony.html#button_component_class-class_method" title="Compony.button_component_class (method)">button_component_class</a></span></span><span class='lparen'>(</span><span class='op'>*</span><span class='lbracket'>[</span><span class='id identifier rubyid_style'>style</span> <span class='op'>||</span> <span class='ivar'>@style</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_compact'>compact</span><span class='rparen'>)</span>
1518
- <span class='id identifier rubyid_button_opts'>button_opts</span> <span class='op'>=</span> <span class='id identifier rubyid_button_comp_opts'>button_comp_opts</span><span class='period'>.</span><span class='id identifier rubyid_merge'>merge</span><span class='lparen'>(</span><span class='id identifier rubyid_button_arg_overrides'>button_arg_overrides</span><span class='rparen'>)</span>
1519
- <span class='comment'># Perform render
1532
+ <span class='id identifier rubyid_button_opts'>button_opts</span> <span class='op'>=</span> <span class='lparen'>(</span><span class='id identifier rubyid_comp'>comp</span><span class='op'>&amp;.</span><span class='id identifier rubyid_button_defaults'>button_defaults</span> <span class='op'>||</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_merge'>merge</span><span class='lparen'>(</span><span class='id identifier rubyid_button_comp_opts'>button_comp_opts</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_merge'>merge</span><span class='lparen'>(</span><span class='id identifier rubyid_button_arg_overrides'>button_arg_overrides</span><span class='rparen'>)</span> <span class='comment'># overrides go right to left
1533
+ </span> <span class='comment'># Perform render
1520
1534
  </span> <span class='kw'>if</span> <span class='id identifier rubyid_parent_comp'>parent_comp</span>
1521
1535
  <span class='kw'>return</span> <span class='id identifier rubyid_parent_comp'>parent_comp</span><span class='period'>.</span><span class='id identifier rubyid_sub_comp'>sub_comp</span><span class='lparen'>(</span><span class='id identifier rubyid_button_comp_class'>button_comp_class</span><span class='comma'>,</span> <span class='op'>**</span><span class='id identifier rubyid_button_opts'>button_opts</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_render'>render</span><span class='lparen'>(</span><span class='id identifier rubyid_controller'>controller</span><span class='rparen'>)</span>
1522
1536
  <span class='kw'>else</span>
@@ -1533,7 +1547,7 @@
1533
1547
  </div>
1534
1548
 
1535
1549
  <div id="footer">
1536
- Generated on Fri Nov 28 12:38:44 2025 by
1550
+ Generated on Mon Dec 8 15:19:20 2025 by
1537
1551
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1538
1552
  0.9.34 (ruby-3.3.5).
1539
1553
  </div>
@@ -443,7 +443,7 @@ instance_of_a_hash.roo --&gt; nil
443
443
  </div>
444
444
 
445
445
  <div id="footer">
446
- Generated on Fri Nov 28 12:38:45 2025 by
446
+ Generated on Mon Dec 8 15:19:21 2025 by
447
447
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
448
448
  0.9.34 (ruby-3.3.5).
449
449
  </div>
@@ -509,7 +509,7 @@
509
509
  </div>
510
510
 
511
511
  <div id="footer">
512
- Generated on Fri Nov 28 12:38:45 2025 by
512
+ Generated on Mon Dec 8 15:19:21 2025 by
513
513
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
514
514
  0.9.34 (ruby-3.3.5).
515
515
  </div>
@@ -603,7 +603,7 @@
603
603
  </div>
604
604
 
605
605
  <div id="footer">
606
- Generated on Fri Nov 28 12:38:45 2025 by
606
+ Generated on Mon Dec 8 15:19:21 2025 by
607
607
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
608
608
  0.9.34 (ruby-3.3.5).
609
609
  </div>
@@ -489,7 +489,7 @@
489
489
  </div>
490
490
 
491
491
  <div id="footer">
492
- Generated on Fri Nov 28 12:38:45 2025 by
492
+ Generated on Mon Dec 8 15:19:21 2025 by
493
493
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
494
494
  0.9.34 (ruby-3.3.5).
495
495
  </div>
@@ -1186,7 +1186,7 @@
1186
1186
  </div>
1187
1187
 
1188
1188
  <div id="footer">
1189
- Generated on Fri Nov 28 12:38:45 2025 by
1189
+ Generated on Mon Dec 8 15:19:21 2025 by
1190
1190
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1191
1191
  0.9.34 (ruby-3.3.5).
1192
1192
  </div>