class Rafters::Renderer

Public Class Methods

new(controller, view_context) click to toggle source
# File lib/rafters/renderer.rb, line 2
def initialize(controller, view_context)
  @controller = controller
  @view_context = view_context

  Rafters.view_paths.each do |view_path|
    @controller.prepend_view_path(view_path)
  end
end

Public Instance Methods

render(component) click to toggle source
# File lib/rafters/renderer.rb, line 11
def render(component)
  component.controller = @controller

  store(component)

  @view_context.content_tag(:div, class: "component #{component.name.dasherize}", id: component.identifier) do
    @view_context.render(file: "/#{component.template_name}", locals: component.attributes)
  end
end

Private Instance Methods

store(component) click to toggle source
# File lib/rafters/renderer.rb, line 23
def store(component)
  @controller.rendered_components ||= {}
  @controller.rendered_components.merge!(component.as_json)
end