Class: Rubyword::Writer::Part::Footer

Inherits:
Base
  • Object
show all
Defined in:
lib/rubyword/writer/part/footer.rb

Constant Summary collapse

ATTRIBUTE =
{
  'xmlns:ve' => 'http://schemas.openxmlformats.org/markup-compatibility/2006',
  'xmlns:o' => 'urn:schemas-microsoft-com:office:office',
  'xmlns:r' => 'http://schemas.openxmlformats.org/officeDocument/2006/relationships',
  'xmlns:m' => 'http://schemas.openxmlformats.org/officeDocument/2006/math',
  'xmlns:v' => 'urn:schemas-microsoft-com:vml',
  'xmlns:wp' => 'http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing',
  'xmlns:w10' => 'urn:schemas-microsoft-com:office:word',
  'xmlns:w' => 'http://schemas.openxmlformats.org/wordprocessingml/2006/main',
  'xmlns:wne' => 'http://schemas.microsoft.com/office/word/2006/wordml'
}

Instance Attribute Summary

Attributes inherited from Base

#rubyword, #section

Instance Method Summary collapse

Methods inherited from Base

#initialize

Constructor Details

This class inherits a constructor from Rubyword::Writer::Part::Base

Instance Method Details

#writeObject



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/rubyword/writer/part/footer.rb', line 18

def write
  footer = @rubyword.footer
  builder = Nokogiri::XML::Builder.new(:encoding => 'UTF-8') do |xml|
    xml.send('w:ftr', ATTRIBUTE) {
      xml.p {
        Writer::Style::Paragraph.new(@section, xml, @rubyword).write(footer[:style])
        nums_type = footer[:nums_type].to_s.downcase
        if footer[:text].nil? || nums_type == 'roman' || nums_type == 'number'
          text = 'PAGE'
          text = 'PAGE \* ROMAN' if nums_type == 'roman'
          xml.send('w:r') { xml.send('w:fldChar', {'w:fldCharType' => "begin"}) }
          xml.send('w:r') { xml.send('w:instrText', {'w:space' => "preserve"}, text) }
          xml.send('w:r') { xml.send('w:fldChar', {'w:fldCharType' => "separate"}) }
          xml.send('w:r') { xml.send('w:fldChar', {'w:fldCharType' => "end"}) }
        else
          text = footer[:text]
          xml.send('w:r') { xml.send('w:t', {'w:space' => "preserve"}, text) }
        end
      }
    }
  end
  builder.to_xml
end