class Sablon::Parser::MailMerge::SimpleField

Public Class Methods

new(node) click to toggle source
# File lib/sablon/parser/mail_merge.rb, line 94
def initialize(node)
  super()
  @node = node
  @raw_expression = @node["w:instr"]
end

Public Instance Methods

ancestors(*args) click to toggle source
# File lib/sablon/parser/mail_merge.rb, line 116
def ancestors(*args)
  @node.ancestors(*args)
end
end_node()
Alias for: start_node
remove() click to toggle source

removes only the merge field in question

# File lib/sablon/parser/mail_merge.rb, line 107
def remove
  remove_or_decrement_ref(@node)
end
remove_parent(selector) click to toggle source

removes the parent node containing the merge field

# File lib/sablon/parser/mail_merge.rb, line 112
def remove_parent(selector)
  remove_or_decrement_ref(@node.ancestors(selector).first)
end
replace(content, env) click to toggle source
# File lib/sablon/parser/mail_merge.rb, line 100
def replace(content, env)
  remove_extra_runs!
  replace_field_display(@node, content, env)
  @node.replace(@node.children)
end
start_node() click to toggle source
# File lib/sablon/parser/mail_merge.rb, line 120
def start_node
  @node
end
Also aliased as: end_node

Private Instance Methods

remove_extra_runs!() click to toggle source
# File lib/sablon/parser/mail_merge.rb, line 127
def remove_extra_runs!
  @node.search(".//w:r")[1..-1].each(&:remove)
end