Class: Js2coffee::Compiler
- Inherits:
-
Object
- Object
- Js2coffee::Compiler
show all
- Defined in:
- lib/js2coffee/compiler.rb
Class Method Summary
collapse
Class Method Details
.compile(script, options = {}) ⇒ Object
27
28
29
30
31
32
|
# File 'lib/js2coffee/compiler.rb', line 27
def compile(script, options={})
result = compiler.call(wrapper, script, options)
result['code']
rescue ExecJS::RuntimeError
puts $!.message
end
|
.compile_file(file, options = {}) ⇒ Object
34
35
36
37
38
39
40
|
# File 'lib/js2coffee/compiler.rb', line 34
def compile_file(file, options={})
result = compiler.call(wrapper, Pathname(file).read, options)
puts "[1m[32m==>[0m #{file}" if $stdout.tty?
result['code']
rescue ExecJS::RuntimeError
puts $!.message
end
|
.compiler ⇒ Object
23
24
25
|
# File 'lib/js2coffee/compiler.rb', line 23
def compiler
@coffee ||= ExecJS.compile(source)
end
|
.source ⇒ Object
11
12
13
|
# File 'lib/js2coffee/compiler.rb', line 11
def source
@source or fail 'Specify compiler source first.'
end
|
.source=(new_source) ⇒ Object
15
16
17
|
# File 'lib/js2coffee/compiler.rb', line 15
def source=(new_source)
@source = File.read(File.expand_path("../compiler/#{new_source}", __FILE__))
end
|
.wrapper ⇒ Object
19
20
21
|
# File 'lib/js2coffee/compiler.rb', line 19
def wrapper
fail NotImplementError, 'define wrapper in subclass!'
end
|