class Sitepress::Renderers::Controller
This would be the ideal way to render Sitepress
resources, but there's a lot of hackery involved in getting it to work properly.
Attributes
controller[R]
resource[R]
Public Class Methods
new(resource, controller = SiteController)
click to toggle source
# File lib/sitepress/renderers/controller.rb, line 8 def initialize(resource, controller = SiteController) @controller = controller @resource = resource end
Public Instance Methods
render()
click to toggle source
# File lib/sitepress/renderers/controller.rb, line 13 def render renderer.render inline: resource.body, type: resource.handler, layout: resolve_layout, content_type: resource.mime_type.to_s end
Private Instance Methods
has_layout_conditions?()
click to toggle source
# File lib/sitepress/renderers/controller.rb, line 25 def has_layout_conditions? controller._layout_conditions? end
layout()
click to toggle source
# File lib/sitepress/renderers/controller.rb, line 21 def layout controller._layout end
layout_conditions()
click to toggle source
# File lib/sitepress/renderers/controller.rb, line 29 def layout_conditions controller._layout_conditions end
renderer()
click to toggle source
# File lib/sitepress/renderers/controller.rb, line 33 def renderer controller.renderer.new("PATH_INFO" => resource.request_path) end
resolve_layout()
click to toggle source
# File lib/sitepress/renderers/controller.rb, line 37 def resolve_layout return resource.data.fetch("layout") if resource.data.key? "layout" return layout unless has_layout_conditions? clause, formats = layout_conditions.first format = resource.format.to_s case clause when :only layout if formats.include? format when :except layout if formats.exclude? format end end