Sha256: 75ed059e4dc17b5900190b1587ce8df957603e3f50109e2b39ac2ca745b36faa

Contents?: true

Size: 1.2 KB

Versions: 2

Compression:

Stored size: 1.2 KB

Contents

require 'opal'
require 'sprockets'

module Opal
  class Processor < Tilt::Template
    self.default_mime_type = 'application/javascript'

    def self.engine_initialized?
      true
    end

    class << self
      attr_accessor :method_missing_enabled
      attr_accessor :optimized_operators_enabled
      attr_accessor :arity_check_enabled
    end

    self.method_missing_enabled = true
    self.optimized_operators_enabled = true
    self.arity_check_enabled = false

    def initialize_engine
      require_template_library 'opal'
    end

    def prepare
    end

    def evaluate(context, locals, &block)
      options = { :method_missing       => self.class.method_missing_enabled,
                  :optimized_operators  => self.class.optimized_operators_enabled,
                  :arity_check          => self.class.arity_check_enabled }

      parser  = Opal::Parser.new 
      result  = parser.parse data, options

      parser.requires.each { |r| context.require_asset r }
      result
    end
  end
end

Tilt.register 'rb',               Opal::Processor
Sprockets.register_engine '.rb',  Opal::Processor

Tilt.register 'opal',               Opal::Processor
Sprockets.register_engine '.opal',  Opal::Processor

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
opal-0.3.41 lib/opal/processor.rb
opal-0.3.40 lib/opal/processor.rb