class RubyXL::Workbook

def application

def application
  root.document_properties.application && self.document_properties.application.value
end

def application=(v)

def application=(v)
  root.document_properties.application ||= StringNode.new
  root.document_properties.application.value = v
end

def appversion

def appversion
  root.document_properties.app_version && root.document_properties.app_version.value
end

def appversion=(v)

def appversion=(v)
  root.document_properties.app_version ||= StringNode.new
  root.document_properties.app_version.value = v
end

def before_write_xml

def before_write_xml
  self.sheets = RubyXL::Sheets.new
  worksheets.each_with_index { |sheet, i|
    rel = relationship_container.find_by_target(sheet.xlsx_path)
    sheets << RubyXL::Sheet.new(:name => sheet.sheet_name[0..30], # Max sheet name length is 31 char
                                :sheet_id => sheet.sheet_id || (i + 1),
                                :state => sheet.state, :r_id => rel.id)
  }
  true
end

def company

def company
  self.document_properties.company && self.document_properties.company.value
end

def company=(v)

def company=(v)
  root.document_properties.company ||= StringNode.new
  root.document_properties.company.value = v
end

def created_at

def created_at
  root.core_properties.created_at
end

def created_at=(v)

def created_at=(v)
  root.core_properties.created_at = v
end

def creator

def creator
  root.core_properties.creator
end

def creator=(v)

def creator=(v)
  root.core_properties.creator = v
end

def date1904

def date1904
  workbook_properties && workbook_properties.date1904
end

def date1904=(v)

def date1904=(v)
  self.workbook_properties ||= RubyXL::WorkbookProperties.new
  workbook_properties.date1904 = v
end

def modified_at

def modified_at
  root.core_properties.modified_at
end

def modified_at=(v)

def modified_at=(v)
  root.core_properties.modified_at = v
end

def modifier

def modifier
  root.core_properties.modifier
end

def modifier=(v)

def modifier=(v)
  root.core_properties.modifier = v
end

def related_objects

def related_objects
  [ calculation_chain, stylesheet, theme, shared_strings_container ] + @worksheets
end

def xlsx_path

def xlsx_path
  ROOT.join('xl', 'workbook.xml')
end