Malt  Malt::Engine::Builder

[Validate]
Generated with RDazzle Newfish 1.4.0

Builder

Builder

  http://builder.rubyforge.org/

Public Instance Methods

render(params, &yld) click to toggle source
    # File lib/malt/engines/builder.rb, line 18
18:     def render(params, &yld)
19:       into = params[:to]
20:       case into
21:       when :html, nil
22:         render_html(params, &yld)
23:       else
24:         super(params, &yld)
25:       end
26:     end
render_html(params={}, &yld) click to toggle source

TODO: Do we need a make_ivar(data, &yld) method to make data into instance variables for some templates like this one?

    # File lib/malt/engines/builder.rb, line 30
30:     def render_html(params={}, &yld)
31:       text = params[:text]
32:       file = params[:file]
33:       data = params[:data]
34: 
35:       data = make_hash(data, &yld)
36:       builder = ::Builder::XmlMarkup.new(engine_options(params))
37:       data.each{ |k,v| builder.instance_eval("@#{k} = v") }
38:       builder.instance_eval(text, file)
39:     end

Private Instance Methods

engine_options(params) click to toggle source

:target=>target_object: Object receiving the markup. target_object must respond to the <<(a_string) operator and return itself. The default target is a plain string target.

:indent=>indentation: Number of spaces used for indentation. The default is no indentation and no line breaks.

:margin=>initial_indentation_level: Amount of initial indentation (specified in levels, not spaces).

    # File lib/malt/engines/builder.rb, line 58
58:     def engine_options(params)
59:       target = params[:target] || settings[:target]
60:       indent = params[:indent] || settings[:indent]
61:       margin = params[:margin] || settings[:margin]
62:       opts = {}
63:       opts[:target] = target if target
64:       opts[:indent] = indent if indent
65:       opts[:margin] = margin if margin
66:       opts
67:     end
initialize_engine() click to toggle source

Load Erector library if not already loaded.

    # File lib/malt/engines/builder.rb, line 44
44:     def initialize_engine
45:       return if defined? ::Builder
46:       require_library 'builder'
47:     end

Disabled; run with --debug to generate this.