Class: Sprockets::HandlebarsTemplate

Inherits:
Tilt::Template
  • Object
show all
Defined in:
lib/sprockets/handlebars_template.rb,
lib/sprockets/handlebars_template/rails.rb

Defined Under Namespace

Classes: RailsEngine

Constant Summary collapse

@@options =
{
  :target =>"Handlebars.TEMPLATES",
  :wrapper_proc => proc { |source| %!Handlebars.compile(#{source.to_json});! },
  :key_name_proc => proc { |name| name.sub(%r~^templates/~, "") },
  :precompile => true,
  :precompile_proc => proc { |source| Barber::FilePrecompiler.call(source) }
}

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.engine_initialized?Boolean

Returns:

  • (Boolean)


24
25
26
# File 'lib/sprockets/handlebars_template.rb', line 24

def self.engine_initialized?
  String.respond_to?(:to_json) && respond_to?(:Barber)
end

.optionsObject



20
21
22
# File 'lib/sprockets/handlebars_template.rb', line 20

def self.options
  @@options
end

.options=(options) ⇒ Object



16
17
18
# File 'lib/sprockets/handlebars_template.rb', line 16

def self.options=(options)
  @@options.merge!(options)
end

Instance Method Details

#evaluate(scope, locals, &block) ⇒ Object



36
37
38
39
40
41
42
43
# File 'lib/sprockets/handlebars_template.rb', line 36

def evaluate(scope, locals, &block)
  @options = self.class.options.merge(options)
  name = options[:key_name_proc].call(scope.logical_path)
  wrap_proc = options[ options[:precompile] ? :precompile_proc : :wrapper_proc]
  source = wrap_proc.call(data)

  "#{options[:target]}['#{name}']=#{source}"
end

#initialize_engineObject



28
29
30
31
# File 'lib/sprockets/handlebars_template.rb', line 28

def initialize_engine
  require_template_library "json"
  require_template_library "barber"
end

#prepareObject



33
34
# File 'lib/sprockets/handlebars_template.rb', line 33

def prepare
end