class RubyXL::DocumentProperties

def self.filepath

def self.filepath
  File.join('docProps', 'app.xml')
end

def add_part_title(name)

def add_part_title(name)
  titles_of_parts.vt_vector.vt_lpstr << RubyXL::StringNode.new(:value => name)
end

def add_parts_count(name, count)

def add_parts_count(name, count)
  return unless count > 0
  heading_pairs.vt_vector.vt_variant << RubyXL::Variant.new(:vt_lpstr => RubyXL::StringNode.new(:value => name))
  heading_pairs.vt_vector.vt_variant << RubyXL::Variant.new(:vt_i4 => RubyXL::IntegerNode.new(:value => count))
end

def before_write_xml

def before_write_xml
  if @workbook then
    self.heading_pairs = RubyXL::VectorValue.new(:vt_vector => RubyXL::Vector.new(:base_type => 'variant'))
    self.titles_of_parts = RubyXL::VectorValue.new(:vt_vector => RubyXL::Vector.new(:base_type => 'lpstr'))
    add_parts_count('Worksheets', @workbook.worksheets.size)
    @workbook.worksheets.each { |sheet| add_part_title(sheet.sheet_name) }
    if @workbook.defined_name_container then
      add_parts_count('Named Ranges', @workbook.defined_name_container.defined_names.size)
      @workbook.defined_name_container.defined_names.each { |defined_name| add_part_title(defined_name.name) }
    end
  end
  true
end