Parent

Methods

Class/Module Index [+]

Quicksearch

Webgen::ContentProcessor::Erubis

Processes embedded Ruby statements with the erubis library.

Public Instance Methods

call(context) click to toggle source

Process the Ruby statements embedded in the content of context.

# File lib/webgen/contentprocessor/erubis.rb, line 10
def call(context)
  require 'erubis'
  # including Erubis because of problem with resolving Erubis::XmlHelper et al
  self.class.class_eval "include ::Erubis"

  options = context.website.config['contentprocessor.erubis.options']
  if context[:block]
    use_pi = context[:block].options['erubis_use_pi']
    context[:block].options.select {|k,v| k =~ /^erubis_/}.
      each {|k,v| options[k.sub(/^erubis_/, '').to_sym] = v }
  end
  erubis = if (!use_pi.nil? && use_pi) || (use_pi.nil? && context.website.config['contentprocessor.erubis.use_pi'])
                ::Erubis::PI::Eruby.new(context.content, options)
              else
                ::Erubis::Eruby.new(context.content, options)
              end
  erubis.filename = context.ref_node.alcn
  context.content = erubis.result(binding)
  context
rescue LoadError
  raise Webgen::LoadError.new('erubis', self.class.name, context.dest_node, 'erubis')
rescue Exception => e
  raise Webgen::RenderError.new(e, self.class.name, context.dest_node,
                                Webgen::Common.error_file(e), Webgen::Common.error_line(e))
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.