Class: Merb::Template::Builder
- Inherits:
-
Object
- Object
- Merb::Template::Builder
- Defined in:
- lib/merb-builder/template.rb
Defined Under Namespace
Modules: Mixin
Class Method Summary collapse
-
.compile_template(io, name, mod) ⇒ Object
Defines a method for calling a specific Builder template.
Class Method Details
.compile_template(io, name, mod) ⇒ Object
Defines a method for calling a specific Builder template.
Parameters
- path<String>
-
Path to the template file.
- name<~to_s>
-
The name of the template method.
- mod<Class, Module>
-
The class or module wherein this method should be defined.
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/merb-builder/template.rb', line 12 def self.compile_template(io, name, mod) path = File.(io.path) method = mod.is_a?(Module) ? :module_eval : :instance_eval mod.send(method, %{ def #{name} @_engine = 'builder' config = (Merb.config[:builder] || {}).inject({}) do |c, (k, v)| c[k.to_sym] = v c end xml = ::Builder::XmlMarkup.new(config) self.instance_eval %{#{io.read}} xml.target! end }) name end |