Class: Webgen::ContentProcessor::Erubis
- Inherits:
-
Object
- Object
- Webgen::ContentProcessor::Erubis
- Includes:
- Deprecated
- Defined in:
- lib/webgen/contentprocessor/erubis.rb
Overview
Processes embedded Ruby statements with the erubis
library.
Instance Method Summary collapse
-
#call(context) ⇒ Object
Process the Ruby statements embedded in the content of
context
.
Methods included from Deprecated
Instance Method Details
#call(context) ⇒ Object
Process the Ruby statements embedded in the content of context
.
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/webgen/contentprocessor/erubis.rb', line 11 def call(context) require 'erubis' # including Erubis because of problem with resolving Erubis::XmlHelper et al self.class.class_eval "include ::Erubis" website = deprecate('website', 'context.website', context.website) node = deprecate('node', 'context.node', context.content_node) ref_node = deprecate('ref_node', 'context.ref_node', context.ref_node) dest_node = deprecate('dest_node', 'context.dest_node', context.dest_node) = context.website.config['contentprocessor.erubis.options'] if context[:block] use_pi = context[:block].['erubis_use_pi'] context[:block]..select {|k,v| k =~ /^erubis_/}. each {|k,v| [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, ) else ::Erubis::Eruby.new(context.content, ) end erubis.filename = context.ref_node.alcn context.content = erubis.result(binding) context rescue Exception => e raise RuntimeError, "Erubis processing failed in <#{context.ref_node.alcn}>: #{e.}", e.backtrace end |