class Sprockets::JstProcessor

Public: JST transformer.

Exports server side compiled templates to an object.

Name your template “users/show.ejs”, “users/new.eco”, etc.

To accept the default options

environment.register_transformer
  'application/javascript+function',
  'application/javascript', JstProcessor

Change the default namespace.

environment.register_transformer
  'application/javascript+function',
  'application/javascript', JstProcessor.new(namespace: 'App.templates')

Public Class Methods

call(input) click to toggle source
# File lib/sprockets/jst_processor.rb, line 33
def self.call(input)
  instance.call(input)
end
default_namespace() click to toggle source
# File lib/sprockets/jst_processor.rb, line 22
def self.default_namespace
  'this.JST'
end
instance() click to toggle source

Public: Return singleton instance with default options.

Returns JstProcessor object.

# File lib/sprockets/jst_processor.rb, line 29
def self.instance
  @instance ||= new
end
new(namespace: self.class.default_namespace) click to toggle source
# File lib/sprockets/jst_processor.rb, line 37
def initialize(namespace: self.class.default_namespace)
  @namespace = namespace
end

Public Instance Methods

call(input) click to toggle source
# File lib/sprockets/jst_processor.rb, line 41
    def call(input)
      data = input[:data].gsub(/$(.)/m, "\\1  ").strip
      key  = input[:name]
      <<-JST
(function() { #{@namespace} || (#{@namespace} = {}); #{@namespace}[#{key.inspect}] = #{data};
}).call(this);
      JST
    end