Module: CoffeeScript
- Defined in:
- lib/coffee_script.rb
Defined Under Namespace
Modules: MultiSource
Constant Summary collapse
- Error =
ExecJS::Error
- EngineError =
ExecJS::RuntimeError
- CompilationError =
ExecJS::ProgramError
Class Method Summary collapse
-
.all_available_versions ⇒ Object
Look for coffee-script-*.js in the vendor/js folder.
-
.compile_with_version(version, script, options = {}) ⇒ Object
Compile a script (String or IO) to JavaScript.
- .default_version ⇒ Object
Class Method Details
.all_available_versions ⇒ Object
Look for coffee-script-*.js in the vendor/js folder
53 54 55 56 57 58 59 60 |
# File 'lib/coffee_script.rb', line 53 def all_available_versions jade_paths = Dir.glob File.join MultiSource.sources_directory, "coffee-script*" jade_paths.map do |path| filename = File.basename path filename.sub(/^coffee-script-?/, '').sub(/\.js$/, '') end.compact end |
.compile_with_version(version, script, options = {}) ⇒ Object
Compile a script (String or IO) to JavaScript.
63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
# File 'lib/coffee_script.rb', line 63 def compile_with_version(version, script, = {}) script = script.read if script.respond_to?(:read) if .key?(:bare) elsif .key?(:no_wrap) [:bare] = [:no_wrap] else [:bare] = false end wrapper = <<-WRAPPER (function(script, options) { try { return CoffeeScript.compile(script, options); } catch (err) { if (err instanceof SyntaxError && err.location) { throw new SyntaxError([ err.filename || "[stdin]", err.location.first_line + 1, err.location.first_column + 1 ].join(":") + ": " + err.message) } else { throw err; } } }) WRAPPER MultiSource.context_for(version).call(wrapper, script, ) end |
.default_version ⇒ Object
42 43 44 45 46 47 48 49 50 |
# File 'lib/coffee_script.rb', line 42 def default_version version = ENV['COFFEESCRIPT_DEFAULT_VERSION'] || '1.4.0' unless all_available_versions.include? version raise "default CoffeeScript version isn't availale" end version end |