class Traceur::Template

Constants

Node

Public Instance Methods

evaluate(scope, locals, &block) click to toggle source
# File lib/traceur/template.rb, line 20
def evaluate(scope, locals, &block)
  @output ||= Node.exec(generate_source(scope))
end
prepare() click to toggle source
# File lib/traceur/template.rb, line 16
def prepare
  # required
end

Private Instance Methods

generate_source(scope) click to toggle source
# File lib/traceur/template.rb, line 26
    def generate_source(scope)
      <<-SOURCE
        var traceur = require("#{traceur_path}");
        var result  = traceur.compile(#{::JSON.generate(data, quirks_mode: true)}, {
          filename: '#{module_name(scope.root_path, scope.logical_path)}',
          modules:  '#{Traceur::Config.compile_to}'
        });

        if (result.errors && result.errors.length) {
          throw "\\n" + result.errors.join("\\n");
        }

        return result.js;
      SOURCE
    end
module_name(root_path, logical_path) click to toggle source
# File lib/traceur/template.rb, line 42
def module_name(root_path, logical_path)
  if prefix = Traceur::Config.lookup_prefix(File.join(root_path, logical_path))
    File.join(prefix, logical_path)
  else
    logical_path
  end
end
traceur_path() click to toggle source
# File lib/traceur/template.rb, line 50
def traceur_path
  File.expand_path('../support/traceur/src/node/api.js', __FILE__)
end