Class: Sablon::Parser::MailMerge::ComplexField
- Inherits:
-
MergeField
- Object
- MergeField
- Sablon::Parser::MailMerge::ComplexField
- Defined in:
- lib/sablon/parser/mail_merge.rb
Constant Summary
Constants inherited from MergeField
Instance Method Summary collapse
- #ancestors(*args) ⇒ Object
- #end_node ⇒ Object
-
#initialize(nodes) ⇒ ComplexField
constructor
A new instance of ComplexField.
- #remove ⇒ Object
- #replace(content) ⇒ Object
- #start_node ⇒ Object
- #valid? ⇒ Boolean
Methods inherited from MergeField
Constructor Details
#initialize(nodes) ⇒ ComplexField
Returns a new instance of ComplexField.
29 30 31 32 |
# File 'lib/sablon/parser/mail_merge.rb', line 29 def initialize(nodes) @nodes = nodes @raw_expression = @nodes.flat_map {|n| n.search(".//w:instrText").map(&:content) }.join end |
Instance Method Details
#ancestors(*args) ⇒ Object
47 48 49 |
# File 'lib/sablon/parser/mail_merge.rb', line 47 def ancestors(*args) @nodes.first.ancestors(*args) end |
#end_node ⇒ Object
55 56 57 |
# File 'lib/sablon/parser/mail_merge.rb', line 55 def end_node @nodes.last end |
#remove ⇒ Object
43 44 45 |
# File 'lib/sablon/parser/mail_merge.rb', line 43 def remove @nodes.each(&:remove) end |
#replace(content) ⇒ Object
38 39 40 41 |
# File 'lib/sablon/parser/mail_merge.rb', line 38 def replace(content) replace_field_display(pattern_node, content) (@nodes - [pattern_node]).each(&:remove) end |
#start_node ⇒ Object
51 52 53 |
# File 'lib/sablon/parser/mail_merge.rb', line 51 def start_node @nodes.first end |
#valid? ⇒ Boolean
34 35 36 |
# File 'lib/sablon/parser/mail_merge.rb', line 34 def valid? separate_node && get_display_node(pattern_node) && expression end |