class Embork::Sprockets::EmberHandlebarsCompiler

Constants

AMD_closure
CJS_closure

Attributes

compile_to[RW]
namespace[RW]
transform[RW]

Public Class Methods

closures(target) click to toggle source
# File lib/embork/sprockets/ember_handlebars_compiler.rb, line 36
def closures(target)
  {
    :globals => "Ember.TEMPLATES['%s'] = %s",
    :cjs => CJS_closure,
    :amd => AMD_closure
  }[target]
end

Public Instance Methods

evaluate(scope, locals, &block) click to toggle source
# File lib/embork/sprockets/ember_handlebars_compiler.rb, line 52
def evaluate(scope, locals, &block)
  @environment = scope.environment
  @logical_path = scope.logical_path
  template = Barber::Ember::FilePrecompiler.call(data)
  closure = self.class.closures(self.class.compile_to)
  closure % [ module_name, template ]
end
module_name() click to toggle source
# File lib/embork/sprockets/ember_handlebars_compiler.rb, line 60
def module_name
  if self.class.transform
    name = self.class.transform.call @logical_path
  else
    name = @logical_path
  end

  # Attach the namespace
  if !self.class.namespace.nil?
    "%s/%s" % [ self.class.namespace.to_s, name ]
  else
    name
  end
end
prepare() click to toggle source
# File lib/embork/sprockets/ember_handlebars_compiler.rb, line 48
def prepare
  # Required to be implemented by Tilt for some reason...
end