Module: StimulusPlumbers::Components::Plumber::Renderer::ClassMethods
- Defined in:
- lib/stimulus_plumbers/components/plumber/renderer.rb
Instance Method Summary collapse
-
#renders(method_name, with: nil, &block) ⇒ Object
rubocop:disable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity.
Instance Method Details
#renders(method_name, with: nil, &block) ⇒ Object
rubocop:disable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/stimulus_plumbers/components/plumber/renderer.rb', line 17 def renders(method_name, with: nil, &block) raise ArgumentError, "method_name must be Symbol" unless method_name.is_a?(Symbol) raise ArgumentError, "provide either with: or a block" if !with.nil? && block_given? with = block if block_given? with_proc_or_symbol = with.is_a?(Proc) || with.is_a?(Symbol) with_klazz = with.is_a?(Module) || with.is_a?(String) raise ArgumentError, "with: must be a Symbol/Proc/Class" unless with_proc_or_symbol || with_klazz self.renderers = renderers.merge(method_name => with) ActiveSupport.version >= "7.2" ? generate_renderer_method(method_name) : eval_renderer_method(method_name) end |