Class: Wunderbar::Render
- Inherits:
-
Object
- Object
- Wunderbar::Render
- Defined in:
- lib/wunderbar/react.rb,
lib/wunderbar/vue.rb
Constant Summary collapse
- RUBY2JS_OPTIONS =
{vue_h: '$h'}
Class Method Summary collapse
- .client(common, element, target) ⇒ Object
- .eval(scripts, server) ⇒ Object
- .nodejs ⇒ Object
- .server(common) ⇒ Object
Class Method Details
.client(common, element, target) ⇒ Object
19 20 21 |
# File 'lib/wunderbar/react.rb', line 19 def self.client(common, element, target) "ReactDOM.render(#{common}, #{element})" end |
.eval(scripts, server) ⇒ Object
23 24 25 26 27 28 29 30 |
# File 'lib/wunderbar/react.rb', line 23 def self.eval(scripts, server) context = ExecJS.compile(scripts.compact.join(";\n")) context.eval(server) rescue ExecJS::ProgramError => e Wunderbar.error e "<pre>" + e..gsub('&', '&').gsub('<', '<').gsub('>', '>') + "</pre>" end |
.nodejs ⇒ Object
12 13 14 15 16 17 18 |
# File 'lib/wunderbar/vue.rb', line 12 def self.nodejs return @nodejs if @nodejs path = `which nodejs`.chomp path = `which node`.chomp if path.empty? raise RuntimeError.new('Unable to locate nodejs') if path.empty? @nodejs = path.untaint end |
.server(common) ⇒ Object
15 16 17 |
# File 'lib/wunderbar/react.rb', line 15 def self.server(common) "ReactDOMServer.renderToString(#{common})" end |