compony 0.8.1 → 0.9.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 (76) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +12 -0
  3. data/Gemfile.lock +1 -1
  4. data/VERSION +1 -1
  5. data/compony.gemspec +2 -2
  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 +1 -1
  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/Buttons/CssButton.html +1 -1
  19. data/doc/Compony/Components/Buttons/Link.html +1 -1
  20. data/doc/Compony/Components/Buttons.html +1 -1
  21. data/doc/Compony/Components/Destroy.html +13 -13
  22. data/doc/Compony/Components/Edit.html +17 -17
  23. data/doc/Compony/Components/Form.html +1 -1
  24. data/doc/Compony/Components/Index.html +1 -1
  25. data/doc/Compony/Components/List.html +1 -1
  26. data/doc/Compony/Components/New.html +1 -1
  27. data/doc/Compony/Components/Show.html +23 -23
  28. data/doc/Compony/Components/WithForm.html +1 -1
  29. data/doc/Compony/Components.html +1 -1
  30. data/doc/Compony/ControllerMixin.html +1 -1
  31. data/doc/Compony/Engine.html +1 -1
  32. data/doc/Compony/ExposedIntentsDsl.html +1 -1
  33. data/doc/Compony/Intent.html +130 -90
  34. data/doc/Compony/MethodAccessibleHash.html +1 -1
  35. data/doc/Compony/ModelFields/Anchormodel.html +1 -1
  36. data/doc/Compony/ModelFields/Association.html +2 -2
  37. data/doc/Compony/ModelFields/Attachment.html +1 -1
  38. data/doc/Compony/ModelFields/Base.html +1 -1
  39. data/doc/Compony/ModelFields/Boolean.html +1 -1
  40. data/doc/Compony/ModelFields/Color.html +1 -1
  41. data/doc/Compony/ModelFields/Currency.html +1 -1
  42. data/doc/Compony/ModelFields/Date.html +1 -1
  43. data/doc/Compony/ModelFields/Datetime.html +1 -1
  44. data/doc/Compony/ModelFields/Decimal.html +1 -1
  45. data/doc/Compony/ModelFields/Email.html +1 -1
  46. data/doc/Compony/ModelFields/Float.html +1 -1
  47. data/doc/Compony/ModelFields/Integer.html +1 -1
  48. data/doc/Compony/ModelFields/Percentage.html +1 -1
  49. data/doc/Compony/ModelFields/Phone.html +1 -1
  50. data/doc/Compony/ModelFields/RichText.html +1 -1
  51. data/doc/Compony/ModelFields/String.html +1 -1
  52. data/doc/Compony/ModelFields/Text.html +1 -1
  53. data/doc/Compony/ModelFields/Time.html +1 -1
  54. data/doc/Compony/ModelFields/Url.html +1 -1
  55. data/doc/Compony/ModelFields.html +1 -1
  56. data/doc/Compony/ModelMixin.html +1 -1
  57. data/doc/Compony/NaturalOrdering.html +1 -1
  58. data/doc/Compony/RequestContext.html +11 -33
  59. data/doc/Compony/Version.html +1 -1
  60. data/doc/Compony/ViewHelpers.html +1 -1
  61. data/doc/Compony/VirtualModel.html +1 -1
  62. data/doc/Compony.html +3 -3
  63. data/doc/ComponyController.html +1 -1
  64. data/doc/_index.html +1 -1
  65. data/doc/file.README.html +1 -1
  66. data/doc/guide/intents.md +3 -3
  67. data/doc/index.html +1 -1
  68. data/doc/top-level-namespace.html +1 -1
  69. data/lib/compony/components/destroy.rb +4 -1
  70. data/lib/compony/components/edit.rb +4 -1
  71. data/lib/compony/components/show.rb +4 -1
  72. data/lib/compony/intent.rb +21 -16
  73. data/lib/compony/model_fields/association.rb +1 -1
  74. data/lib/compony/request_context.rb +2 -3
  75. data/lib/compony.rb +2 -2
  76. metadata +1 -1
@@ -102,7 +102,7 @@
102
102
  <h2>Overview</h2><div class="docstring">
103
103
  <div class="discussion">
104
104
 
105
- <p>An Intent is a a gateway to a component, along with relevant context, such as the comp and family, perhaps a resource, standalone name, feasibility etc. The class provides tooling used by various Compony helpers used to point to other components in some way.</p>
105
+ <p>An Intent is a a gateway to a component, along with relevant context, such as the comp and family, perhaps a resource, standalone name, feasibility etc. The class provides tooling used by various Compony helpers used to point to other components in some way. Note: The arguments <code>label</code> and <code>style</code> are not part of the <code>button:</code> hash, because they are processed by the Intent before affecting the button.</p>
106
106
 
107
107
 
108
108
  </div>
@@ -187,7 +187,7 @@
187
187
  <li class="public ">
188
188
  <span class="summary_signature">
189
189
 
190
- <a href="#button_comp_opts-instance_method" title="#button_comp_opts (instance method)">#<strong>button_comp_opts</strong>(label: {}) &#x21d2; Object </a>
190
+ <a href="#button_comp_opts-instance_method" title="#button_comp_opts (instance method)">#<strong>button_comp_opts</strong> &#x21d2; Object </a>
191
191
 
192
192
 
193
193
 
@@ -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, path: nil, method: nil, data: nil, data_class: nil, feasibility_target: nil, feasibility_action: nil, **custom_args) &#x21d2; Intent </a>
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>
307
307
 
308
308
 
309
309
 
@@ -447,7 +447,7 @@
447
447
  <li class="public ">
448
448
  <span class="summary_signature">
449
449
 
450
- <a href="#render-instance_method" title="#render (instance method)">#<strong>render</strong>(controller, parent_comp = nil, style: nil, label: {}, **button_comp_opts_overrides) &#x21d2; Object </a>
450
+ <a href="#render-instance_method" title="#render (instance method)">#<strong>render</strong>(controller, parent_comp = nil, style: nil, **button_arg_overrides) &#x21d2; Object </a>
451
451
 
452
452
 
453
453
 
@@ -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, path: nil, method: nil, data: nil, data_class: nil, feasibility_target: nil, feasibility_action: nil, **custom_args) &#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, 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
 
@@ -583,6 +583,42 @@
583
583
 
584
584
  </li>
585
585
 
586
+ <li>
587
+
588
+ <span class='name'>style</span>
589
+
590
+
591
+ <span class='type'>(<tt>Symbol</tt>)</span>
592
+
593
+
594
+ <em class="default">(defaults to: <tt>nil</tt>)</em>
595
+
596
+
597
+ &mdash;
598
+ <div class='inline'>
599
+ <p>If given, sets the button style to use and uses the default one otherwise.</p>
600
+ </div>
601
+
602
+ </li>
603
+
604
+ <li>
605
+
606
+ <span class='name'>button</span>
607
+
608
+
609
+ <span class='type'>(<tt>Hash</tt>)</span>
610
+
611
+
612
+ <em class="default">(defaults to: <tt>{}</tt>)</em>
613
+
614
+
615
+ &mdash;
616
+ <div class='inline'>
617
+ <p>Parameters that will be given as-is to the button component initializer.</p>
618
+ </div>
619
+
620
+ </li>
621
+
586
622
  <li>
587
623
 
588
624
  <span class='name'>path</span>
@@ -682,9 +718,6 @@
682
718
  <pre class="lines">
683
719
 
684
720
 
685
- 23
686
- 24
687
- 25
688
721
  26
689
722
  27
690
723
  28
@@ -721,23 +754,29 @@
721
754
  59
722
755
  60
723
756
  61
724
- 62</pre>
757
+ 62
758
+ 63
759
+ 64
760
+ 65
761
+ 66
762
+ 67</pre>
725
763
  </td>
726
764
  <td>
727
- <pre class="code"><span class="info file"># File 'lib/compony/intent.rb', line 23</span>
765
+ <pre class="code"><span class="info file"># File 'lib/compony/intent.rb', line 26</span>
728
766
 
729
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>
730
768
  <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>
731
769
  <span class='label'>standalone_name:</span> <span class='kw'>nil</span><span class='comma'>,</span>
732
770
  <span class='label'>name:</span> <span class='kw'>nil</span><span class='comma'>,</span>
733
771
  <span class='label'>label:</span> <span class='kw'>nil</span><span class='comma'>,</span>
772
+ <span class='label'>style:</span> <span class='kw'>nil</span><span class='comma'>,</span>
773
+ <span class='label'>button:</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='comma'>,</span>
734
774
  <span class='label'>path:</span> <span class='kw'>nil</span><span class='comma'>,</span>
735
775
  <span class='label'>method:</span> <span class='kw'>nil</span><span class='comma'>,</span>
736
776
  <span class='label'>data:</span> <span class='kw'>nil</span><span class='comma'>,</span>
737
777
  <span class='label'>data_class:</span> <span class='kw'>nil</span><span class='comma'>,</span>
738
778
  <span class='label'>feasibility_target:</span> <span class='kw'>nil</span><span class='comma'>,</span>
739
- <span class='label'>feasibility_action:</span> <span class='kw'>nil</span><span class='comma'>,</span>
740
- <span class='op'>**</span><span class='id identifier rubyid_custom_args'>custom_args</span><span class='rparen'>)</span>
779
+ <span class='label'>feasibility_action:</span> <span class='kw'>nil</span><span class='rparen'>)</span>
741
780
  <span class='comment'># Check for model / data
742
781
  </span> <span class='ivar'>@data</span> <span class='op'>=</span> <span class='id identifier rubyid_data'>data</span>
743
782
  <span class='ivar'>@data</span> <span class='op'>||=</span> <span class='id identifier rubyid_model_or_family_name_or_cst'>model_or_family_name_or_cst</span> <span class='kw'>if</span> <span class='id identifier rubyid_model_or_family_name_or_cst'>model_or_family_name_or_cst</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>
@@ -759,12 +798,13 @@
759
798
  <span class='ivar'>@standalone_name</span> <span class='op'>=</span> <span class='id identifier rubyid_standalone_name'>standalone_name</span>
760
799
  <span class='ivar'>@label</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> <span class='op'>?</span> <span class='id identifier rubyid_label'>label</span> <span class='op'>:</span> <span class='kw'>nil</span>
761
800
  <span class='ivar'>@label_opts</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'>Hash</span><span class='rparen'>)</span> <span class='op'>?</span> <span class='id identifier rubyid_label'>label</span> <span class='op'>:</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
801
+ <span class='ivar'>@style</span> <span class='op'>=</span> <span class='id identifier rubyid_style'>style</span><span class='op'>&amp;.</span><span class='id identifier rubyid_to_sym'>to_sym</span>
802
+ <span class='ivar'>@button_opts</span> <span class='op'>=</span> <span class='id identifier rubyid_button'>button</span>
762
803
  <span class='ivar'>@path</span> <span class='op'>=</span> <span class='id identifier rubyid_path'>path</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> <span class='op'>?</span> <span class='id identifier rubyid_path'>path</span> <span class='op'>:</span> <span class='kw'>nil</span>
763
804
  <span class='ivar'>@path_opts</span> <span class='op'>=</span> <span class='id identifier rubyid_path'>path</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Hash</span><span class='rparen'>)</span> <span class='op'>?</span> <span class='id identifier rubyid_path'>path</span> <span class='op'>:</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
764
805
  <span class='ivar'>@method</span> <span class='op'>=</span> <span class='id identifier rubyid_method'>method</span><span class='op'>&amp;.</span><span class='id identifier rubyid_to_sym'>to_sym</span>
765
806
  <span class='ivar'>@feasibility_target</span> <span class='op'>=</span> <span class='id identifier rubyid_feasibility_target'>feasibility_target</span>
766
807
  <span class='ivar'>@feasibility_action</span> <span class='op'>=</span> <span class='id identifier rubyid_feasibility_action'>feasibility_action</span>
767
- <span class='ivar'>@custom_args</span> <span class='op'>=</span> <span class='id identifier rubyid_custom_args'>custom_args</span>
768
808
  <span class='kw'>end</span></pre>
769
809
  </td>
770
810
  </tr>
@@ -802,12 +842,12 @@
802
842
  <pre class="lines">
803
843
 
804
844
 
805
- 6
806
845
  7
807
- 8</pre>
846
+ 8
847
+ 9</pre>
808
848
  </td>
809
849
  <td>
810
- <pre class="code"><span class="info file"># File 'lib/compony/intent.rb', line 6</span>
850
+ <pre class="code"><span class="info file"># File 'lib/compony/intent.rb', line 7</span>
811
851
 
812
852
  <span class='kw'>def</span> <span class='id identifier rubyid_comp_class'>comp_class</span>
813
853
  <span class='ivar'>@comp_class</span>
@@ -843,12 +883,12 @@
843
883
  <pre class="lines">
844
884
 
845
885
 
846
- 7
847
886
  8
848
- 9</pre>
887
+ 9
888
+ 10</pre>
849
889
  </td>
850
890
  <td>
851
- <pre class="code"><span class="info file"># File 'lib/compony/intent.rb', line 7</span>
891
+ <pre class="code"><span class="info file"># File 'lib/compony/intent.rb', line 8</span>
852
892
 
853
893
  <span class='kw'>def</span> <span class='id identifier rubyid_data'>data</span>
854
894
  <span class='ivar'>@data</span>
@@ -868,7 +908,7 @@
868
908
  <div class="method_details first">
869
909
  <h3 class="signature first" id="button_comp_opts-instance_method">
870
910
 
871
- #<strong>button_comp_opts</strong>(label: {}) &#x21d2; <tt>Object</tt>
911
+ #<strong>button_comp_opts</strong> &#x21d2; <tt>Object</tt>
872
912
 
873
913
 
874
914
 
@@ -891,27 +931,27 @@
891
931
  <pre class="lines">
892
932
 
893
933
 
894
- 116
895
- 117
896
- 118
897
- 119
898
- 120
899
934
  121
900
935
  122
901
936
  123
902
- 124</pre>
937
+ 124
938
+ 125
939
+ 126
940
+ 127
941
+ 128
942
+ 129</pre>
903
943
  </td>
904
944
  <td>
905
- <pre class="code"><span class="info file"># File 'lib/compony/intent.rb', line 116</span>
906
-
907
- <span class='kw'>def</span> <span class='id identifier rubyid_button_comp_opts'>button_comp_opts</span><span class='lparen'>(</span><span class='label'>label:</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
908
- <span class='kw'>return</span> <span class='ivar'>@custom_args</span><span class='period'>.</span><span class='id identifier rubyid_deep_merge'>deep_merge</span><span class='lparen'>(</span><span class='lbrace'>{</span>
909
- <span class='label'>label:</span> <span class='id identifier rubyid_label'>label</span><span class='lparen'>(</span><span class='op'>**</span><span class='id identifier rubyid_label'>label</span><span class='rparen'>)</span><span class='comma'>,</span>
910
- <span class='label'>href:</span> <span class='id identifier rubyid_feasible?'>feasible?</span> <span class='op'>?</span> <span class='id identifier rubyid_path'>path</span> <span class='op'>:</span> <span class='kw'>nil</span><span class='comma'>,</span>
911
- <span class='label'>method:</span><span class='comma'>,</span>
912
- <span class='label'>class:</span> <span class='id identifier rubyid_feasible?'>feasible?</span> <span class='op'>?</span> <span class='kw'>nil</span> <span class='op'>:</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>disabled</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span>
913
- <span class='label'>title:</span> <span class='id identifier rubyid_feasible?'>feasible?</span> <span class='op'>?</span> <span class='kw'>nil</span> <span class='op'>:</span> <span class='id identifier rubyid_feasibility_target'>feasibility_target</span><span class='period'>.</span><span class='id identifier rubyid_full_feasibility_messages'>full_feasibility_messages</span><span class='lparen'>(</span><span class='id identifier rubyid_feasibility_action'>feasibility_action</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_presence'>presence</span>
914
- <span class='rbrace'>}</span><span class='rparen'>)</span>
945
+ <pre class="code"><span class="info file"># File 'lib/compony/intent.rb', line 121</span>
946
+
947
+ <span class='kw'>def</span> <span class='id identifier rubyid_button_comp_opts'>button_comp_opts</span>
948
+ <span class='kw'>return</span> <span class='lbrace'>{</span>
949
+ <span class='label'>label:</span><span class='comma'>,</span>
950
+ <span class='label'>href:</span> <span class='id identifier rubyid_feasible?'>feasible?</span> <span class='op'>?</span> <span class='id identifier rubyid_path'>path</span> <span class='op'>:</span> <span class='kw'>nil</span><span class='comma'>,</span>
951
+ <span class='label'>method:</span><span class='comma'>,</span>
952
+ <span class='label'>class:</span> <span class='id identifier rubyid_feasible?'>feasible?</span> <span class='op'>?</span> <span class='kw'>nil</span> <span class='op'>:</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>disabled</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span>
953
+ <span class='label'>title:</span> <span class='id identifier rubyid_feasible?'>feasible?</span> <span class='op'>?</span> <span class='kw'>nil</span> <span class='op'>:</span> <span class='id identifier rubyid_feasibility_target'>feasibility_target</span><span class='period'>.</span><span class='id identifier rubyid_full_feasibility_messages'>full_feasibility_messages</span><span class='lparen'>(</span><span class='id identifier rubyid_feasibility_action'>feasibility_action</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_presence'>presence</span>
954
+ <span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_deep_merge'>deep_merge</span><span class='lparen'>(</span><span class='ivar'>@button_opts</span><span class='rparen'>)</span>
915
955
  <span class='kw'>end</span></pre>
916
956
  </td>
917
957
  </tr>
@@ -944,12 +984,12 @@
944
984
  <pre class="lines">
945
985
 
946
986
 
947
- 72
948
- 73
949
- 74</pre>
987
+ 77
988
+ 78
989
+ 79</pre>
950
990
  </td>
951
991
  <td>
952
- <pre class="code"><span class="info file"># File 'lib/compony/intent.rb', line 72</span>
992
+ <pre class="code"><span class="info file"># File 'lib/compony/intent.rb', line 77</span>
953
993
 
954
994
  <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>
955
995
  <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>
@@ -983,12 +1023,12 @@
983
1023
  <pre class="lines">
984
1024
 
985
1025
 
986
- 105
987
- 106
988
- 107</pre>
1026
+ 110
1027
+ 111
1028
+ 112</pre>
989
1029
  </td>
990
1030
  <td>
991
- <pre class="code"><span class="info file"># File 'lib/compony/intent.rb', line 105</span>
1031
+ <pre class="code"><span class="info file"># File 'lib/compony/intent.rb', line 110</span>
992
1032
 
993
1033
  <span class='kw'>def</span> <span class='id identifier rubyid_feasibility_action'>feasibility_action</span>
994
1034
  <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>
@@ -1022,12 +1062,12 @@
1022
1062
  <pre class="lines">
1023
1063
 
1024
1064
 
1025
- 101
1026
- 102
1027
- 103</pre>
1065
+ 106
1066
+ 107
1067
+ 108</pre>
1028
1068
  </td>
1029
1069
  <td>
1030
- <pre class="code"><span class="info file"># File 'lib/compony/intent.rb', line 101</span>
1070
+ <pre class="code"><span class="info file"># File 'lib/compony/intent.rb', line 106</span>
1031
1071
 
1032
1072
  <span class='kw'>def</span> <span class='id identifier rubyid_feasibility_target'>feasibility_target</span>
1033
1073
  <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>
@@ -1076,13 +1116,13 @@
1076
1116
  <pre class="lines">
1077
1117
 
1078
1118
 
1079
- 110
1080
- 111
1081
- 112
1082
- 113</pre>
1119
+ 115
1120
+ 116
1121
+ 117
1122
+ 118</pre>
1083
1123
  </td>
1084
1124
  <td>
1085
- <pre class="code"><span class="info file"># File 'lib/compony/intent.rb', line 110</span>
1125
+ <pre class="code"><span class="info file"># File 'lib/compony/intent.rb', line 115</span>
1086
1126
 
1087
1127
  <span class='kw'>def</span> <span class='id identifier rubyid_feasible?'>feasible?</span>
1088
1128
  <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>
@@ -1119,13 +1159,13 @@
1119
1159
  <pre class="lines">
1120
1160
 
1121
1161
 
1122
- 92
1123
- 93
1124
- 94
1125
- 95</pre>
1162
+ 97
1163
+ 98
1164
+ 99
1165
+ 100</pre>
1126
1166
  </td>
1127
1167
  <td>
1128
- <pre class="code"><span class="info file"># File 'lib/compony/intent.rb', line 92</span>
1168
+ <pre class="code"><span class="info file"># File 'lib/compony/intent.rb', line 97</span>
1129
1169
 
1130
1170
  <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>
1131
1171
  <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>
@@ -1160,12 +1200,12 @@
1160
1200
  <pre class="lines">
1161
1201
 
1162
1202
 
1163
- 97
1164
- 98
1165
- 99</pre>
1203
+ 102
1204
+ 103
1205
+ 104</pre>
1166
1206
  </td>
1167
1207
  <td>
1168
- <pre class="code"><span class="info file"># File 'lib/compony/intent.rb', line 97</span>
1208
+ <pre class="code"><span class="info file"># File 'lib/compony/intent.rb', line 102</span>
1169
1209
 
1170
1210
  <span class='kw'>def</span> <span class='id identifier rubyid_method'>method</span>
1171
1211
  <span class='ivar'>@method</span> <span class='op'>||</span> <span class='symbol'>:get</span>
@@ -1214,13 +1254,13 @@
1214
1254
  <pre class="lines">
1215
1255
 
1216
1256
 
1217
- 65
1218
- 66
1219
- 67
1220
- 68</pre>
1257
+ 70
1258
+ 71
1259
+ 72
1260
+ 73</pre>
1221
1261
  </td>
1222
1262
  <td>
1223
- <pre class="code"><span class="info file"># File 'lib/compony/intent.rb', line 65</span>
1263
+ <pre class="code"><span class="info file"># File 'lib/compony/intent.rb', line 70</span>
1224
1264
 
1225
1265
  <span class='kw'>def</span> <span class='id identifier rubyid_model?'>model?</span>
1226
1266
  <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>
@@ -1257,12 +1297,12 @@
1257
1297
  <pre class="lines">
1258
1298
 
1259
1299
 
1260
- 87
1261
- 88
1262
- 89</pre>
1300
+ 92
1301
+ 93
1302
+ 94</pre>
1263
1303
  </td>
1264
1304
  <td>
1265
- <pre class="code"><span class="info file"># File 'lib/compony/intent.rb', line 87</span>
1305
+ <pre class="code"><span class="info file"># File 'lib/compony/intent.rb', line 92</span>
1266
1306
 
1267
1307
  <span class='kw'>def</span> <span class='id identifier rubyid_name'>name</span>
1268
1308
  <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>
@@ -1338,13 +1378,13 @@
1338
1378
  <pre class="lines">
1339
1379
 
1340
1380
 
1341
- 80
1342
- 81
1343
- 82
1344
- 83</pre>
1381
+ 85
1382
+ 86
1383
+ 87
1384
+ 88</pre>
1345
1385
  </td>
1346
1386
  <td>
1347
- <pre class="code"><span class="info file"># File 'lib/compony/intent.rb', line 80</span>
1387
+ <pre class="code"><span class="info file"># File 'lib/compony/intent.rb', line 85</span>
1348
1388
 
1349
1389
  <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>
1350
1390
  <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>
@@ -1358,7 +1398,7 @@
1358
1398
  <div class="method_details ">
1359
1399
  <h3 class="signature " id="render-instance_method">
1360
1400
 
1361
- #<strong>render</strong>(controller, parent_comp = nil, style: nil, label: {}, **button_comp_opts_overrides) &#x21d2; <tt>Object</tt>
1401
+ #<strong>render</strong>(controller, parent_comp = nil, style: nil, **button_arg_overrides) &#x21d2; <tt>Object</tt>
1362
1402
 
1363
1403
 
1364
1404
 
@@ -1430,7 +1470,7 @@
1430
1470
 
1431
1471
  <li>
1432
1472
 
1433
- <span class='name'>button_comp_opts_overrides</span>
1473
+ <span class='name'>button_arg_overrides</span>
1434
1474
 
1435
1475
 
1436
1476
  <span class='type'>(<tt>Hash</tt>)</span>
@@ -1453,11 +1493,6 @@
1453
1493
  <pre class="lines">
1454
1494
 
1455
1495
 
1456
- 131
1457
- 132
1458
- 133
1459
- 134
1460
- 135
1461
1496
  136
1462
1497
  137
1463
1498
  138
@@ -1465,17 +1500,22 @@
1465
1500
  140
1466
1501
  141
1467
1502
  142
1468
- 143</pre>
1503
+ 143
1504
+ 144
1505
+ 145
1506
+ 146
1507
+ 147
1508
+ 148</pre>
1469
1509
  </td>
1470
1510
  <td>
1471
- <pre class="code"><span class="info file"># File 'lib/compony/intent.rb', line 131</span>
1511
+ <pre class="code"><span class="info file"># File 'lib/compony/intent.rb', line 136</span>
1472
1512
 
1473
- <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='label'>label:</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='op'>**</span><span class='id identifier rubyid_button_comp_opts_overrides'>button_comp_opts_overrides</span><span class='rparen'>)</span>
1474
- <span class='comment'># Check if permitted
1513
+ <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
+ <span class='comment'># Abort if not authorized
1475
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>
1476
1516
  <span class='comment'># Prepare opts
1477
- </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='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_compact'>compact</span><span class='rparen'>)</span>
1478
- <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='lparen'>(</span><span class='label'>label:</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_overrides'>button_comp_opts_overrides</span><span class='rparen'>)</span>
1517
+ </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>
1479
1519
  <span class='comment'># Perform render
1480
1520
  </span> <span class='kw'>if</span> <span class='id identifier rubyid_parent_comp'>parent_comp</span>
1481
1521
  <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>
@@ -1493,7 +1533,7 @@
1493
1533
  </div>
1494
1534
 
1495
1535
  <div id="footer">
1496
- Generated on Fri Nov 28 10:30:59 2025 by
1536
+ Generated on Fri Nov 28 12:38:44 2025 by
1497
1537
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1498
1538
  0.9.34 (ruby-3.3.5).
1499
1539
  </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 10:31:00 2025 by
446
+ Generated on Fri Nov 28 12:38:45 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 10:31:00 2025 by
512
+ Generated on Fri Nov 28 12:38:45 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>
@@ -584,7 +584,7 @@
584
584
  <span class='kw'>return</span> <span class='id identifier rubyid_transform_and_join'>transform_and_join</span><span class='lparen'>(</span><span class='id identifier rubyid_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_send'>send</span><span class='lparen'>(</span><span class='ivar'>@name</span><span class='rparen'>)</span><span class='comma'>,</span> <span class='label'>controller:</span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_el'>el</span><span class='op'>|</span>
585
585
  <span class='kw'>next</span> <span class='kw'>nil</span> <span class='kw'>if</span> <span class='id identifier rubyid_el'>el</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
586
586
  <span class='kw'>if</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_comp_class_for'><span class='object_link'><a href="../../Compony.html#comp_class_for-class_method" title="Compony.comp_class_for (method)">comp_class_for</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_link_to_component'>link_to_component</span><span class='comma'>,</span> <span class='id identifier rubyid_el'>el</span><span class='rparen'>)</span>
587
- <span class='kw'>next</span> <span class='id identifier rubyid_controller'>controller</span><span class='period'>.</span><span class='id identifier rubyid_helpers'>helpers</span><span class='period'>.</span><span class='id identifier rubyid_render_intent'>render_intent</span><span class='lparen'>(</span><span class='id identifier rubyid_link_to_component'>link_to_component</span><span class='comma'>,</span> <span class='id identifier rubyid_el'>el</span><span class='comma'>,</span> <span class='op'>**</span><span class='lbrace'>{</span> <span class='label'>button:</span> <span class='lbrace'>{</span> <span class='label'>style:</span> <span class='symbol'>:link</span> <span class='rbrace'>}</span> <span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_deep_merge'>deep_merge</span><span class='lparen'>(</span><span class='id identifier rubyid_link_opts'>link_opts</span><span class='rparen'>)</span><span class='rparen'>)</span>
587
+ <span class='kw'>next</span> <span class='id identifier rubyid_controller'>controller</span><span class='period'>.</span><span class='id identifier rubyid_helpers'>helpers</span><span class='period'>.</span><span class='id identifier rubyid_render_intent'>render_intent</span><span class='lparen'>(</span><span class='id identifier rubyid_link_to_component'>link_to_component</span><span class='comma'>,</span> <span class='id identifier rubyid_el'>el</span><span class='comma'>,</span> <span class='op'>**</span><span class='lbrace'>{</span> <span class='label'>style:</span> <span class='symbol'>:link</span> <span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_deep_merge'>deep_merge</span><span class='lparen'>(</span><span class='id identifier rubyid_link_opts'>link_opts</span><span class='rparen'>)</span><span class='rparen'>)</span>
588
588
  <span class='kw'>else</span>
589
589
  <span class='kw'>next</span> <span class='id identifier rubyid_el'>el</span><span class='period'>.</span><span class='id identifier rubyid_label'>label</span>
590
590
  <span class='kw'>end</span>
@@ -603,7 +603,7 @@
603
603
  </div>
604
604
 
605
605
  <div id="footer">
606
- Generated on Fri Nov 28 10:31:00 2025 by
606
+ Generated on Fri Nov 28 12:38:45 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 10:31:00 2025 by
492
+ Generated on Fri Nov 28 12:38:45 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 10:31:00 2025 by
1189
+ Generated on Fri Nov 28 12:38:45 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>
@@ -354,7 +354,7 @@
354
354
  </div>
355
355
 
356
356
  <div id="footer">
357
- Generated on Fri Nov 28 10:31:00 2025 by
357
+ Generated on Fri Nov 28 12:38:45 2025 by
358
358
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
359
359
  0.9.34 (ruby-3.3.5).
360
360
  </div>
@@ -289,7 +289,7 @@
289
289
  </div>
290
290
 
291
291
  <div id="footer">
292
- Generated on Fri Nov 28 10:31:00 2025 by
292
+ Generated on Fri Nov 28 12:38:45 2025 by
293
293
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
294
294
  0.9.34 (ruby-3.3.5).
295
295
  </div>
@@ -222,7 +222,7 @@
222
222
  </div>
223
223
 
224
224
  <div id="footer">
225
- Generated on Fri Nov 28 10:31:00 2025 by
225
+ Generated on Fri Nov 28 12:38:45 2025 by
226
226
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
227
227
  0.9.34 (ruby-3.3.5).
228
228
  </div>
@@ -222,7 +222,7 @@
222
222
  </div>
223
223
 
224
224
  <div id="footer">
225
- Generated on Fri Nov 28 10:31:00 2025 by
225
+ Generated on Fri Nov 28 12:38:45 2025 by
226
226
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
227
227
  0.9.34 (ruby-3.3.5).
228
228
  </div>
@@ -222,7 +222,7 @@
222
222
  </div>
223
223
 
224
224
  <div id="footer">
225
- Generated on Fri Nov 28 10:31:00 2025 by
225
+ Generated on Fri Nov 28 12:38:45 2025 by
226
226
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
227
227
  0.9.34 (ruby-3.3.5).
228
228
  </div>
@@ -144,7 +144,7 @@
144
144
  </div>
145
145
 
146
146
  <div id="footer">
147
- Generated on Fri Nov 28 10:31:00 2025 by
147
+ Generated on Fri Nov 28 12:38:45 2025 by
148
148
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
149
149
  0.9.34 (ruby-3.3.5).
150
150
  </div>