Class: Sablon::Processor::Document
- Inherits:
-
Object
- Object
- Sablon::Processor::Document
show all
- Defined in:
- lib/sablon/processor/document.rb
Defined Under Namespace
Classes: Block, InlineParagraphBlock, OperationConstruction, ParagraphBlock, RowBlock
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(parser) ⇒ Document
Returns a new instance of Document.
16
17
18
|
# File 'lib/sablon/processor/document.rb', line 16
def initialize(parser)
@parser = parser
end
|
Class Method Details
.parser ⇒ Object
12
13
14
|
# File 'lib/sablon/processor/document.rb', line 12
def self.parser
@parser ||= Sablon::Parser::MailMerge.new
end
|
.process(xml_node, context, properties = {}) ⇒ Object
5
6
7
8
9
10
|
# File 'lib/sablon/processor/document.rb', line 5
def self.process(xml_node, context, properties = {})
processor = new(parser)
processor.manipulate xml_node, Sablon::Context.transform(context)
processor.write_properties xml_node, properties if properties.any?
xml_node
end
|
Instance Method Details
#manipulate(xml_node, context) ⇒ Object
20
21
22
23
24
25
26
27
|
# File 'lib/sablon/processor/document.rb', line 20
def manipulate(xml_node, context)
operations = build_operations(@parser.parse_fields(xml_node))
operations.each do |step|
step.evaluate context
end
cleanup(xml_node)
xml_node
end
|
#write_properties(xml_node, properties) ⇒ Object
29
30
31
32
33
34
|
# File 'lib/sablon/processor/document.rb', line 29
def write_properties(xml_node, properties)
if start_page_number = properties[:start_page_number] || properties["start_page_number"]
section_properties = SectionProperties.from_document(xml_node)
section_properties.start_page_number = start_page_number
end
end
|