Sha256: 5385267946cbd93ff2dfca5453969ee3b27f20d386ac382315f984d35cc4efc4
Contents?: true
Size: 1.04 KB
Versions: 23
Compression:
Stored size: 1.04 KB
Contents
module Sitepress module Renderers # Renders resources by invoking a rack call to the Rails application. From my # experiments rendering as of 2021, this is the most reliable way to render # resources. Rendering via `Renderers::Controller` has lots of various subtle issues # that are surprising. People don't like surprises, so I opted to render through a # slightly heavier stack. class Server attr_reader :rails_app, :resource def initialize(resource, rails_app = Rails.application) @rails_app = rails_app @resource = resource end def render code, headers, response = rails_app.routes.call env response.body rescue => e raise RenderingError.new "Error rendering #{resource.request_path.inspect} at #{resource.asset.path.expand_path.to_s.inspect}:\n#{e.message}" end private def env { "PATH_INFO"=> resource.request_path, "REQUEST_METHOD"=>"GET", "rack.input" => "GET" } end end end end
Version data entries
23 entries across 23 versions & 1 rubygems