Sha256: af71f509fe7d83773c130ad69558c656454739a00ee3100f3de2f511b90278be

Contents?: true

Size: 692 Bytes

Versions: 1

Compression:

Stored size: 692 Bytes

Contents

class Rafters::Renderer
  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

  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

  def store(component)
    @controller.rendered_components ||= {}
    @controller.rendered_components.merge!(component.as_json)
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rafters-1.2.1 lib/rafters/renderer.rb