Sha256: 8b62c3d4c0489fefc47b1a2abc3e90f569571eff6b68028c0dc7ef025e839250

Contents?: true

Size: 974 Bytes

Versions: 21

Compression:

Stored size: 974 Bytes

Contents

require 'connection_pool'
require 'react/server_rendering/exec_js_renderer'
require 'react/server_rendering/sprockets_renderer'

module React
  module ServerRendering
    mattr_accessor :renderer, :renderer_options,
      :pool_size, :pool_timeout

    def self.reset_pool
      options = {size: pool_size, timeout: pool_timeout}
      @@pool = ConnectionPool.new(options) { create_renderer }
    end

    def self.render(component_name, props, prerender_options)
      @@pool.with do |renderer|
        renderer.render(component_name, props, prerender_options)
      end
    end

    def self.create_renderer
      renderer.new(renderer_options)
    end

    class PrerenderError < RuntimeError
      def initialize(component_name, props, js_message)
        message = ["Encountered error \"#{js_message}\" when prerendering #{component_name} with #{props}",
                    js_message.backtrace.join("\n")].join("\n")
        super(message)
      end
    end
  end
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
react-rails-1.10.0 lib/react/server_rendering.rb
react-rails-1.9.0 lib/react/server_rendering.rb
react-rails-1.8.2 lib/react/server_rendering.rb
react-rails-1.8.1 lib/react/server_rendering.rb
react-rails-1.8.0 lib/react/server_rendering.rb
react-rails-1.7.2 lib/react/server_rendering.rb
react-rails-1.7.1 lib/react/server_rendering.rb
react-rails-1.7.0 lib/react/server_rendering.rb
react-rails-1.6.2 lib/react/server_rendering.rb
react-rails-1.6.1 lib/react/server_rendering.rb
react-rails-1.6.0 lib/react/server_rendering.rb
react-rails-1.5.0 lib/react/server_rendering.rb
react-rails-1.4.2 lib/react/server_rendering.rb
react-rails-1.4.1 lib/react/server_rendering.rb
react-rails-1.4.0 lib/react/server_rendering.rb
react-rails-1.3.3 lib/react/server_rendering.rb
react-rails-1.3.2 lib/react/server_rendering.rb
react-rails-1.3.1 lib/react/server_rendering.rb
react-rails-1.3.0 lib/react/server_rendering.rb
react-rails-1.2.0 lib/react/server_rendering.rb