Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- module React
- module Server
- module Rendering
- extend ActiveSupport::Concern
- include ::BeforeRender
- included do
- before_render :set_rendered
- attr_reader :rendered
- helper_method :rendered
- end
- def set_rendered
- @rendered = self.class.server_js.eval(
- "this.render(#{data.to_json})"
- )
- end
- module ClassMethods
- @@server_js = ""
- @@server_js_last_modified = Time.at 0
- def server_js
- if @@server_js_last_modified < mtime = File.mtime(filepath)
- @@server_js = File.open(filepath).read
- @@server_js = ExecJS.compile @@server_js
- @@server_js_last_modified = mtime
- end
- @@server_js
- end
- private
- def filepath
- Rails.configuration.react.server_js
- end
- end
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement