Sha256: 7d376c678203e023fec647e2d4063ace0e7ae14e447a6c3f766d267376597a7f
Contents?: true
Size: 1.33 KB
Versions: 13
Compression:
Stored size: 1.33 KB
Contents
require 'wunderbar/render' require 'ruby2js/filter/react' require 'execjs' react = File.expand_path('../vendor/react-with-addons.min.js', __FILE__) Wunderbar::Asset.script name: 'react-min.js', file: react, render: true reactdom = File.expand_path('../vendor/react-dom.min.js', __FILE__) Wunderbar::Asset.script name: 'react-dom.min.js', file: reactdom, render: true, server: File.expand_path('../vendor/react-dom-server.min.js', __FILE__) class Wunderbar::Render RUBY2JS_OPTIONS = {react: true} def self.server(common) "ReactDOMServer.renderToString(#{common})" end def self.client(common, element, target) "ReactDOM.render(#{common}, #{element})" end def self.eval(scripts, server) context = ExecJS.compile(scripts.compact.join(";\n")) context.eval(server) rescue ExecJS::ProgramError => e Wunderbar.error e "<pre>" + e.message.gsub('&', '&').gsub('<', '<').gsub('>', '>') + "</pre>" end end # Monkeypatch to address https://github.com/sstephenson/execjs/pull/180 require 'execjs' class ExecJS::ExternalRuntime::Context alias_method :w_write_to_tempfile, :write_to_tempfile def write_to_tempfile(*args) tmpfile = w_write_to_tempfile(*args).path.untaint tmpfile = Struct.new(:path, :to_str).new(tmpfile, tmpfile) def tmpfile.unlink File.unlink path end tmpfile end end
Version data entries
13 entries across 13 versions & 1 rubygems