module Rafters::Context

Attributes

rendered_components[RW]

Public Instance Methods

component_attributes(name, options = {}) click to toggle source
# File lib/rafters/context.rb, line 11
def component_attributes(name, options = {})
  component = component(name, options)
  component.as_json
end
render_component(name, options = {}) click to toggle source
# File lib/rafters/context.rb, line 16
def render_component(name, options = {})
  component = component(name, options)
  component_renderer.render(component)
end
render_with_component(*args, &block) click to toggle source
# File lib/rafters/context.rb, line 21
def render_with_component(*args, &block)
  if params[:component]
    component, settings = params[:component], params[:options]

    respond_to do |format|
      format.html { render_without_component(text: render_component(component, options)) }
      format.json { render_without_component(json: component_attributes(component, options)) }
    end
  else
    render_without_component(*args, &block)
  end
end

Private Instance Methods

component(name, options = {}) click to toggle source
# File lib/rafters/context.rb, line 40
def component(name, options = {})
  component_klass = "#{name}_component".classify.constantize
  component = component_klass.new(options)
end
component_renderer() click to toggle source
# File lib/rafters/context.rb, line 36
def component_renderer
  @_component_renderer ||= Rafters::Renderer.new(self, view_context)
end