class PPTX::Presentation

Constants

MIN_SLIDE_ID
NS

Public Class Methods

new(package, part_name) click to toggle source
Calls superclass method PPTX::OPC::Part::new
# File lib/pptx/presentation.rb, line 6
def initialize(package, part_name)
  super(package, part_name)
end

Public Instance Methods

add_slide(slide) click to toggle source
# File lib/pptx/presentation.rb, line 10
def add_slide(slide)
  # TODO remove me - remove existing slide from template
  # slide_list_xml.xpath('./p:sldId').each do |slide|
  #   slide_list.children.delete(slide)
  # end
  ref_id = relationships.add(relative_part_name(slide.part_name), RELTYPE_SLIDE)

  # add slide to sldIdList in presentation
  slide_id = Nokogiri::XML::Node.new('p:sldId', doc)
  slide_id['id'] = next_slide_id
  slide_id['r:id'] = ref_id
  slide_list_xml.add_child(slide_id)
end
next_slide_id() click to toggle source
# File lib/pptx/presentation.rb, line 24
def next_slide_id
  ids = slide_list_xml.xpath('./p:sldId').map { |sid| sid['id'].to_i }
  return (ids.max || MIN_SLIDE_ID - 1) + 1
end
slide_list_xml() click to toggle source
# File lib/pptx/presentation.rb, line 29
def slide_list_xml
  @slide_list_xml ||= doc.xpath('/p:presentation/p:sldIdLst', p: NS).first
end