Sha256: 9c1ad34a3c7230596ea256f9b74b30e25662def85073f4b48a54ff6b99874cad

Contents?: true

Size: 1.48 KB

Versions: 9

Compression:

Stored size: 1.48 KB

Contents

# frozen_string_literal: true

require_relative 'columns/column'
module OoxmlParser
  # Class for data of Columns
  class Columns < OOXMLDocumentObject
    # @return [Integer] count of columns
    attr_accessor :count
    # @return [True, False] is columns are equal width
    attr_accessor :equal_width
    alias equal_width? equal_width
    # @return [Array<Column>] list of colujmns
    attr_accessor :column_array
    # @return [Boolean] Draw Line Between Columns
    attr_reader :separator
    # @return [OoxmlSize] space between columns
    attr_accessor :space

    def initialize(columns_count = 0)
      @count = columns_count
      @column_array = []
      super(parent: nil)
    end

    # @return [Array, Column] accessor
    def [](key)
      @column_array[key]
    end

    # Parse Columns data
    # @param [Nokogiri::XML:Element] node with Columns data
    # @return [Columns] value of Columns data
    def parse(node)
      node.attributes.each do |key, value|
        case key
        when 'num'
          @count = value.value.to_i
        when 'sep'
          @separator = boolean_attribute_value(value)
        when 'equalWidth'
          @equal_width = boolean_attribute_value(value)
        when 'space'
          @space = OoxmlSize.new(value.value.to_f)
        end
      end

      node.xpath('*').each do |column_node|
        case column_node.name
        when 'col'
          @column_array << Column.new(parent: self).parse(column_node)
        end
      end
      self
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
ooxml_parser-0.38.0 lib/ooxml_parser/docx_parser/document_structure/page_properties/columns.rb
ooxml_parser-0.37.1 lib/ooxml_parser/docx_parser/document_structure/page_properties/columns.rb
ooxml_parser-0.37.0 lib/ooxml_parser/docx_parser/document_structure/page_properties/columns.rb
ooxml_parser-0.36.1 lib/ooxml_parser/docx_parser/document_structure/page_properties/columns.rb
ooxml_parser-0.36.0 lib/ooxml_parser/docx_parser/document_structure/page_properties/columns.rb
ooxml_parser-0.35.0 lib/ooxml_parser/docx_parser/document_structure/page_properties/columns.rb
ooxml_parser-0.34.2 lib/ooxml_parser/docx_parser/document_structure/page_properties/columns.rb
ooxml_parser-0.34.1 lib/ooxml_parser/docx_parser/document_structure/page_properties/columns.rb
ooxml_parser-0.34.0 lib/ooxml_parser/docx_parser/document_structure/page_properties/columns.rb