Class: RiotJs::Rails::Compiler

Inherits:
Object
  • Object
show all
Includes:
ActionView::Helpers::JavaScriptHelper
Defined in:
lib/riot_js/rails/processors/compiler.rb

Constant Summary collapse

JS_RUNTIME =
::ExecJS::ExternalRuntime.new(
    name: 'Node.js (V8)',
    command: ['nodejs', 'node'],
    encoding: 'UTF-8',
    runner_path: File.expand_path('../../../../../vendor/assets/javascripts/compiler/node_runner.js', __FILE__),
)
RIOT_COMPILER_PATH =
File.expand_path('../../../../../vendor/assets/javascripts/compiler/compiler.js', __FILE__)

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.compile(tag_source) ⇒ Object



23
24
25
# File 'lib/riot_js/rails/processors/compiler.rb', line 23

def self.compile(tag_source)
  instance.compile(tag_source)
end

.instanceObject



19
20
21
# File 'lib/riot_js/rails/processors/compiler.rb', line 19

def self.instance
  @@instance ||= new
end

Instance Method Details

#compile(tag_source) ⇒ Object



27
28
29
30
31
32
33
34
# File 'lib/riot_js/rails/processors/compiler.rb', line 27

def compile(tag_source)
  compiler_source = <<-JS
    var compiler = require("#{RIOT_COMPILER_PATH}");
    return compiler.compile("#{escape_javascript(tag_source)}");
  JS

  JS_RUNTIME.exec(compiler_source)
end