Sha256: 27923bf7ffa71befe4b894594206e623717d7afe1b3aabeb8b600a69ec153922
Contents?: true
Size: 1.29 KB
Versions: 7
Compression:
Stored size: 1.29 KB
Contents
# The Narwhal-compatibility wrapper for CoffeeScript. # Require external dependencies. os: require 'os' file: require 'file' coffee: require './coffee-script' # Alias print to "puts", for Node.js compatibility: puts: print # Compile a string of CoffeeScript into JavaScript. exports.compile: (source) -> coffee.compile source # Compile a given CoffeeScript file into JavaScript. exports.compileFile: (path) -> coffee.compile file.read path # Make a factory for the CoffeeScript environment. exports.makeNarwhalFactory: (path) -> code: exports.compileFile path factoryText: "function(require,exports,module,system,print){" + code + "/**/\n}" if system.engine is "rhino" Packages.org.mozilla.javascript.Context.getCurrentContext().compileFunction(global, factoryText, path, 0, null) else # eval requires parentheses, but parentheses break compileFunction. eval "(" + factoryText + ")" # The Narwhal loader for '.coffee' files. factories: {} loader: {} # Reload the coffee-script environment from source. loader.reload: (topId, path) -> factories[topId]: -> exports.makeNarwhalFactory path # Ensure that the coffee-script environment is loaded. loader.load: (topId, path) -> factories[topId] ||= this.reload topId, path require.loader.loaders.unshift [".coffee", loader]
Version data entries
7 entries across 7 versions & 1 rubygems