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

Version Path
haml-more-0.5.1 vendor/coffee-script/src/narwhal.coffee
haml-more-0.5.0 vendor/coffee-script/src/narwhal.coffee
haml-more-0.4.0 vendor/coffee-script/src/narwhal.coffee
haml-more-0.4.0.d vendor/coffee-script/src/narwhal.coffee
haml-more-0.4.0.c vendor/coffee-script/src/narwhal.coffee
haml-more-0.4.0.b vendor/coffee-script/src/narwhal.coffee
haml-more-0.4.0.a vendor/coffee-script/src/narwhal.coffee