class Sablon::Parser::MailMerge::MergeField
Constants
- KEY_PATTERN
Attributes
block_reference_count[RW]
Public Class Methods
new()
click to toggle source
# File lib/sablon/parser/mail_merge.rb, line 8 def initialize @block_reference_count = 0 end
Public Instance Methods
expression()
click to toggle source
# File lib/sablon/parser/mail_merge.rb, line 16 def expression $1 if @raw_expression =~ KEY_PATTERN end
valid?()
click to toggle source
# File lib/sablon/parser/mail_merge.rb, line 12 def valid? expression end
Private Instance Methods
get_display_node(node)
click to toggle source
# File lib/sablon/parser/mail_merge.rb, line 39 def get_display_node(node) node.search(".//w:t").first end
remove_or_decrement_ref(*nodes)
click to toggle source
removes all nodes associated with the merge field if the reference count is less than or equal to 1
# File lib/sablon/parser/mail_merge.rb, line 24 def remove_or_decrement_ref(*nodes) if @block_reference_count > 1 @block_reference_count -= 1 else nodes.each(&:remove) end end
replace_field_display(node, content, env)
click to toggle source
# File lib/sablon/parser/mail_merge.rb, line 32 def replace_field_display(node, content, env) paragraph = node.ancestors(".//w:p").first display_node = get_display_node(node) content.append_to(paragraph, display_node, env) display_node.remove end