Sha256: 7263c6c9740462405bbcac687cfab17482205b2d7083e8d2a6b5130a6be78a4e
Contents?: true
Size: 1.16 KB
Versions: 1
Compression:
Stored size: 1.16 KB
Contents
module Rafters::Context extend ActiveSupport::Concern included do attr_accessor :rendered_components helper_method :rendered_components helper_method :render_component alias_method_chain :render, :component end def component_attributes(name, options = {}) component = component(name, options) component.as_json end def render_component(name, options = {}) component = component(name, options) component_renderer.render(component) end 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 def component_renderer @_component_renderer ||= Rafters::Renderer.new(self, view_context) end def component(name, options = {}) component_klass = "#{name}_component".classify.constantize component = component_klass.new(options) end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rafters-1.2.1 | lib/rafters/context.rb |