Class | Tags::BlockTag |
In: |
lib/webgen/plugins/tags/block.rb
|
Parent: | DefaultTag |
Substitutes the tag with an actual content block.
# File lib/webgen/plugins/tags/block.rb, line 40 40: def process_tag( tag, chain ) 41: block_node = (chain.length > 1 ? chain[1] : chain[0]) 42: block_name = param( 'blockName' ) 43: if block_node.node_info[:pagedata].blocks.has_key?( block_name ) 44: if block_node['useERB'] 45: node = chain.last 46: ref_node = block_node 47: begin 48: content = block_node.node_info[:pagedata].blocks[block_name].render_with_erb( binding ) 49: rescue 50: log(:error) { "Error while running ERB on <#{block_node.node_info[:src]}> (block '#{block_name}'): #{$!.message}" } 51: content = '' 52: end 53: else 54: content = block_node.node_info[:pagedata].blocks[block_name].content 55: end 56: [content, (chain[1..-1].empty? ? chain : chain[1..-1]) ] 57: else 58: log(:error) { "Node <#{block_node.node_info[:src]}> does not contain a block called '#{block_name}'" } 59: '' 60: end 61: end