Class: Haml::Plugin

Inherits:
Object show all
Includes:
Util.av_template_class(:Handlers)::Compilable
Defined in:
/tmp/buildd/ruby-haml-3.1.6/lib/haml/template/plugin.rb

Overview

In Rails 3.1+, template handlers don’t inherit from anything. In <= 3.0, they do. To avoid messy logic figuring this out, we just inherit from whatever the ERB handler does.

Class Method Summary (collapse)

Instance Method Summary (collapse)

Class Method Details

+ call(template)

In Rails 3.1+, #call takes the place of #compile



38
39
40
# File '/tmp/buildd/ruby-haml-3.1.6/lib/haml/template/plugin.rb', line 38

def self.call(template)
  new.compile(template)
end

Instance Method Details

- cache_fragment(block, name = {}, options = nil)



42
43
44
45
46
# File '/tmp/buildd/ruby-haml-3.1.6/lib/haml/template/plugin.rb', line 42

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

- compile(template)



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File '/tmp/buildd/ruby-haml-3.1.6/lib/haml/template/plugin.rb', line 21

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

- (Boolean) handles_encoding?

Returns:

  • (Boolean)


19
# File '/tmp/buildd/ruby-haml-3.1.6/lib/haml/template/plugin.rb', line 19

def handles_encoding?; true; end