lib/h8/coffee.rb in h8-0.2.2 vs lib/h8/coffee.rb in h8-0.2.3

- old
+ new

@@ -34,24 +34,40 @@ end # Create compiler instance. def initialize @context = H8::Context.new - @context.eval open(File.join(File.dirname(File.expand_path(__FILE__)),'/coffee-script.js'), 'r').read + @context.eval read_script 'coffee-script.js' + eval read_script('globals.coffee') end # compile coffeescript source and return compiled javascript - def compile src, **kwargs + def compile src, file_name: nil, **kwargs @context[:cs] = src - res = @context.eval('CoffeeScript.compile(cs)') + @context[:filename] = file_name + res = @context.eval('CoffeeScript.compile(cs,{filename: filename})') @context[:cs] = nil # Sources can be big... res end # Compile and evaulate coffee script. Optional parameters are passed # to H8::Context#eval def eval src, **kwargs @context.eval compile(src), **kwargs + end + + # Provide context with CoffeeScrip compiler loaded + def context + @context + end + + private + + @@base = File.expand_path File.join(File.dirname(__FILE__), '../scripts') + @@cache = {} + + def read_script name + @@cache[name] ||= open(File.join(@@base, name), 'r').read end end end