Class: Haml::Plugin

Inherits:
ActionView::TemplateHandler
  • Object
show all
Includes:
ActionView::TemplateHandlers::Compilable
Defined in:
lib/haml/template/plugin.rb

Instance Method Summary collapse

Instance Method Details

#cache_fragment(block, name = {}, options = nil) ⇒ Object



24
25
26
27
28
# File 'lib/haml/template/plugin.rb', line 24

def cache_fragment(block, name = {}, options = nil)
  @view.fragment_for(block, name, options) do
    eval("_hamlout.buffer", block.binding)
  end
end

#compile(template) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/haml/template/plugin.rb', line 8

def compile(template)
  options = Haml::Template.options.dup

  # template is a template object in Rails >=2.1.0,
  # a source string previously
  if template.respond_to? :source
    # Template has a generic identifier in Rails >=3.0.0
    options[:filename] = template.respond_to?(:identifier) ? template.identifier : template.filename
    source = template.source
  else
    source = template
  end

  Haml::Engine.new(source, options).send(:precompiled_with_ambles, [])
end