Class: Merb::Template::Haml

Inherits:
Object
  • Object
show all
Defined in:
lib/merb-haml/template.rb

Defined Under Namespace

Modules: Mixin

Class Method Summary collapse

Class Method Details

.compile_template(io, name, locals, mod) ⇒ Object

Defines a method for calling a specific HAML template.

Parameters

path<String>

Path to the template file.

name<~to_s>

The name of the template method.

locals<Array>

A list of locals to assign from the args passed into the compiled template.

mod<Class, Module>

The class or module wherein this method should be defined.



13
14
15
16
17
18
19
20
21
22
# File 'lib/merb-haml/template.rb', line 13

def self.compile_template(io, name, locals, mod)
  path = File.expand_path(io.path)
  config = (Merb::Plugins.config[:haml] || {}).inject({}) do |c, (k, v)|
    c[k.to_sym] = v
    c
  end.merge :filename => path
  template = ::Haml::Engine.new(io.read, config)
  template.def_method(mod, name, *locals)
  name
end