module Sibilant
Public Class Methods
compile(source)
click to toggle source
# File lib/sibilant.rb, line 7 def self.compile(source) self.context.call("sibilant.translateAll", source) end
Private Class Methods
context()
click to toggle source
# File lib/sibilant.rb, line 20 def self.context if @@context.nil? browser = open(self.source_path("lib/browser.js")).read functional = open(self.source_path("include/functional.sibilant")).read macros = open(self.source_path("include/macros.sibilant")).read source = <<-src #{browser}; sibilant.translateAll.apply(sibilant, #{::JSON.generate([functional])}); sibilant.translateAll.apply(sibilant, #{::JSON.generate([macros])}); src @@context = ExecJS.compile(source) end @@context end
source_dir()
click to toggle source
# File lib/sibilant.rb, line 12 def self.source_dir @@source_path ||= ENV['SIBILANT_SOURCE_PATH'] || File.join(File.expand_path(File.dirname(__FILE__)), 'source') end
source_path(source)
click to toggle source
# File lib/sibilant.rb, line 16 def self.source_path(source) File.join(self.source_dir, source) end