Sha256: 0f0ee972c5a19772860e91be55c896e826a3759d24c1f35fd512281fe8ec4d52

Contents?: true

Size: 1.2 KB

Versions: 4

Compression:

Stored size: 1.2 KB

Contents

# frozen_string_literal: true

require_relative 'shape/docx_shape'
require_relative 'picture/docx_picture'
module OoxmlParser
  # Class for parsing `graphic` tags
  class DocxGraphic < OOXMLDocumentObject
    attr_accessor :type, :data

    alias chart data

    # Parse DocxGraphic
    # @param [Nokogiri::XML:Node] node with NumberingProperties
    # @return [DocxGraphic] result of parsing
    def parse(node)
      node.xpath('a:graphicData/*', 'xmlns:a' => 'http://schemas.openxmlformats.org/drawingml/2006/main').each do |node_child|
        case node_child.name
        when 'wsp'
          @type = :shape
          @data = DocxShape.new(parent: self).parse(node_child)
        when 'pic'
          @type = :picture
          @data = DocxPicture.new(parent: self).parse(node_child)
        when 'chart'
          @type = :chart
          root_object.add_to_xmls_stack("#{root_object.root_subfolder}/#{root_object.get_link_from_rels(node_child.attribute('id').value)}")
          @data = Chart.new(parent: self).parse
          root_object.xmls_stack.pop
        when 'wgp'
          @type = :group
          @data = ShapesGrouping.new(parent: self).parse(node_child)
        end
      end
      self
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
ooxml_parser-0.33.0 lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/docx_graphic.rb
ooxml_parser-0.32.0 lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/docx_graphic.rb
ooxml_parser-0.31.0 lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/docx_graphic.rb
ooxml_parser-0.30.0 lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/docx_graphic.rb