class RubyXL::Writer::WorkbookRelsWriter

Attributes

dirpath[RW]
filepath[RW]
workbook[RW]

Public Class Methods

new(dirpath, wb) click to toggle source
# File lib/rubyXL/writer/workbook_rels_writer.rb, line 13
def initialize(dirpath, wb)
  @dirpath = dirpath
  @workbook = wb
end

Public Instance Methods

write() click to toggle source

all attributes out of order

# File lib/rubyXL/writer/workbook_rels_writer.rb, line 19
def write()
  builder = Nokogiri::XML::Builder.new do |xml|
    xml.Relationships('xmlns'=>'http://schemas.openxmlformats.org/package/2006/relationships') {
      i = 1
      @workbook.worksheets.each do |sheet|
        xml.Relationship('Id'=>'rId'+i.to_s,
          'Type'=>"http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet",
          'Target'=>'worksheets/sheet'+i.to_s+'.xml')
        i += 1
      end
      unless @workbook.external_links.nil?
        1.upto(@workbook.external_links.size-1) do |link|
          xml.Relationship('Id'=>'rId'+i.to_s,
            'Type'=>"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLink",
            'Target'=>"externalLinks/externalLink#{link}.xml"
          )
          i+=1
        end
      end
      xml.Relationship('Id'=>'rId'+i.to_s,
        'Type'=>"http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme",
        'Target'=>'theme/theme1.xml')
      i += 1
      xml.Relationship('Id'=>'rId'+i.to_s,
        'Type'=>"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles",
        'Target'=>'styles.xml')
      i+=1
      xml.Relationship('Id'=>'rId'+i.to_s,
        'Type'=>"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings",
          'Target'=>'sharedStrings.xml')
    }
  end
  contents = builder.to_xml
  contents = contents.gsub(/\n/,'')
  contents = contents.gsub(/>(\s)+</,'><')
  contents = contents.sub(/<\?xml version=\"1.0\"\?>/,'<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'+"\n")
  contents
end