lib/react/server_rendering.rb in react-rails-2.7.1 vs lib/react/server_rendering.rb in react-rails-3.0.0.rc.0
- old
+ new
@@ -1,44 +1,46 @@
-require 'connection_pool'
-require 'react/server_rendering/exec_js_renderer'
-require 'react/server_rendering/bundle_renderer'
+# frozen_string_literal: true
+require "connection_pool"
+require "react/server_rendering/exec_js_renderer"
+require "react/server_rendering/bundle_renderer"
+
module React
module ServerRendering
mattr_accessor :renderer, :renderer_options,
- :pool_size, :pool_timeout
+ :pool_size, :pool_timeout
self.renderer_options = {}
# Discard the old ConnectionPool & create a new one.
# This will clear all state such as loaded code, JS VM state, or options.
# @return [void]
def self.reset_pool
options = { size: pool_size, timeout: pool_timeout }
- @@pool = ConnectionPool.new(options) { self.renderer.new(self.renderer_options) }
+ @pool = ConnectionPool.new(options) { renderer.new(renderer_options) }
end
# Check a renderer out of the pool and use it to render the component.
# @param component_name [String] Component identifier, looked up by UJS
# @param props [String, Hash] Props for this component
# @param prerender_options [Hash] Renderer-specific options
# @return [String] Prerendered HTML from `component_name`
def self.render(component_name, props, prerender_options)
- @@pool.with do |renderer|
+ @pool.with do |renderer|
renderer.render(component_name, props, prerender_options)
end
end
# Yield a renderer for an arbitrary block
- def self.with_renderer
- @@pool.with { |renderer| yield(renderer) }
+ def self.with_renderer(&block)
+ @pool.with(&block)
end
# Raised when something went wrong during server rendering.
class PrerenderError < RuntimeError
def initialize(component_name, props, js_message)
message = ["Encountered error \"#{js_message.inspect}\" when prerendering #{component_name} with #{props}",
- js_message.backtrace.join("\n")].join("\n")
+ js_message.backtrace.join("\n")].join("\n")
super(message)
end
end
end
end