class VueRails::Renderer
Constants
- CONSOLE_POLYFILL
- GLOBAL_WRAPPER
Attributes
component[RW]
props[RW]
router_push_to[RW]
state[RW]
Public Class Methods
new(component, props, router_push_to=nil, state={})
click to toggle source
# File lib/vue_rails/renderer.rb, line 28 def initialize component, props, router_push_to=nil, state={} self.component = component self.props = props self.router_push_to = router_push_to self.state = state end
server_render(*args)
click to toggle source
# File lib/vue_rails/renderer.rb, line 35 def self.server_render *args new(*args).render end
Public Instance Methods
render()
click to toggle source
# File lib/vue_rails/renderer.rb, line 39 def render if Rails.env.production? self.context ||= ( js_code = VueRails::WebpackerAssetFinder.new.find_asset("vue_server_render.js") ExecJS.compile(GLOBAL_WRAPPER + CONSOLE_POLYFILL + js_code) ) else self.context = ( js_code = VueRails::WebpackerAssetFinder.new.find_asset("vue_server_render.js") ExecJS.compile(GLOBAL_WRAPPER + CONSOLE_POLYFILL + js_code) ) end self.context.eval("RailsVueUJS.serverRender('#{component}', #{props}, '#{router_push_to}', #{state})") end
Private Instance Methods
cache_key()
click to toggle source
# File lib/vue_rails/renderer.rb, line 57 def cache_key path = VueRails::WebpackerAssetFinder.new.find_path("vue_server_render.js") Digest::MD5.hexdigest("#{component}_#{JSON.parse(props).delete_if {|k, _| k.to_s == "csrf_token"}}_#{router_push_to}_#{path}_#{state}") end