Class: Sablon::Processor::Numbering

Inherits:
Object
  • Object
show all
Defined in:
lib/sablon/processor/numbering.rb

Constant Summary collapse

LIST_DEFINITION =
<<-XML.gsub(/^\s+/, '').tr("\n", '')
  <w:num w:numId="%s">
    <w:abstractNumId w:val="%s" />
  </w:num>
XML

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(doc) ⇒ Numbering

Returns a new instance of Numbering.



16
17
18
# File 'lib/sablon/processor/numbering.rb', line 16

def initialize(doc)
  @doc = doc
end

Class Method Details

.process(doc) ⇒ Object



10
11
12
13
14
# File 'lib/sablon/processor/numbering.rb', line 10

def self.process(doc)
  processor = new(doc)
  processor.manipulate
  doc
end

Instance Method Details

#manipulateObject



20
21
22
23
24
25
26
27
28
29
30
# File 'lib/sablon/processor/numbering.rb', line 20

def manipulate
  Sablon::Numbering.instance.definitions.each do |definition|
    abstract_num_ref = find_definition(definition.style)
    abstract_num_copy = abstract_num_ref.dup
    abstract_num_copy['w:abstractNumId'] = definition.numid
    abstract_num_copy.xpath('./w:nsid').each(&:remove)
    container.prepend_child abstract_num_copy
    container.add_child(LIST_DEFINITION % [definition.numid, abstract_num_copy['w:abstractNumId']])
  end
  @doc
end