class Voom::Presenters::WebClient::ComponentRenderer
This class renders a given component. First it looks for plugins that override default behavior If they don't exist then it renders the base components
Public Class Methods
new(comp, render:, components:, index:, scope: nil)
click to toggle source
# File lib/voom/presenters/web_client/component_renderer.rb, line 13 def initialize(comp, render:, components:, index:, scope: nil) @comp = comp @index = index @components = components @scope = scope @render = render initialize_plugins end
Public Instance Methods
render()
click to toggle source
# File lib/voom/presenters/web_client/component_renderer.rb, line 26 def render comp = ComponentDecoratorFactory.build(@comp) components = @components.map { |c| ComponentDecoratorFactory.build(c) } return public_send(:"render_#{@scope ? "_#{@scope}_" : nil}#{@comp.type}", comp, components: components, index: @index, render: @render) if respond_to?(:"render_#{@comp.type}") @render.call :erb, :"components#{@scope ? "/#{@scope}" : nil}/#{@comp.type}", :locals => {comp: comp, components: components, index: @index} end
Private Instance Methods
initialize_plugins()
click to toggle source
# File lib/voom/presenters/web_client/component_renderer.rb, line 43 def initialize_plugins self.class.include_plugins(:WebClientComponents, plugins: @comp.send(:_plugins_)) end