Class: Webgen::ContentProcessor::Builder

Inherits:
Object
  • Object
show all
Defined in:
lib/webgen/contentprocessor/builder.rb

Overview

Processes content that is valid Ruby to build an XML tree. This is done by using the builder library.

Instance Method Summary collapse

Instance Method Details

#call(context) ⇒ Object

Process the content of context which needs to be valid Ruby code. The special variable xml should be used to construct the XML content.



9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/webgen/contentprocessor/builder.rb', line 9

def call(context)
  require 'builder'

  node = context.content_node
  ref_node = context.ref_node
  dest_node = context.dest_node

  xml = ::Builder::XmlMarkup.new(:indent => 2)
  eval(context.content, binding, context.ref_node.absolute_lcn)
  context.content = xml.target!
  context
rescue Exception => e
  raise RuntimeError, "Error using Builder in <#{context.ref_node.absolute_lcn}> to generate XML: #{e.message}", e.backtrace
end