Sha256: 36aca359bc3b6f600369cc4b5d81c774861c42b055ab603341ac3c5509c1cd22

Contents?: true

Size: 840 Bytes

Versions: 1

Compression:

Stored size: 840 Bytes

Contents

require 'typescript/monkey/compiler'

class Typescript::Monkey::TemplateHandler
  class << self
    def erb_handler
      @erb_handler ||= ActionView::Template.registered_template_handler(:erb)
    end

    def call(template)
      compiled_source = erb_handler.call(template)
      path = template.identifier.gsub(/['\\]/, '\\\\\&') # "'" => "\\'", '\\' => '\\\\'
      <<-EOS
        ::Typescript::Monkey::Compiler.compile('#{path}', (begin;#{compiled_source};end))
      EOS
    end
  end
end

# Register template handler for .ts files, enable digest for .ts files
ActiveSupport.on_load(:action_view) do
  ActionView::Template.register_template_handler :ts, Typescript::Monkey::TemplateHandler
  require 'action_view/dependency_tracker'
  ActionView::DependencyTracker.register_tracker :ts, ActionView::DependencyTracker::ERBTracker
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
typescript-monkey-0.9.0 lib/typescript/monkey/template_handler.rb