summaryrefslogtreecommitdiffhomepage
path: root/lib/axlsx/workbook/worksheet/col_breaks.rb
blob: cc7d6abb7b003747342d33194fe9dc4f57fcb6c6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# frozen_string_literal: true

module Axlsx
  # A collection of Brake objects.
  # Please do not use this class directly. Instead use
  # Worksheet#add_break
  class ColBreaks < SimpleTypedList
    # Instantiates a new list restricted to Break types
    def initialize
      super Break
    end

    # A column break specific helper for adding a break.
    # @param [Hash] options A list of options to pass into the Break object
    # The max and man options are fixed, however any other valid option for
    # Break will be passed to the created break object.
    # @see Break
    def add_break(options)
      self << Break.new(options.merge(max: 1048575, man: true))
      last
    end

    # Serialize the collection to xml
    # @param [String] str The string to append this lists xml to.
    # <colBreaks count="1" manualBreakCount="1">
    # <brk id="3" max="1048575" man="1"/>
    # </colBreaks>
    def to_xml_string(str = +'')
      return if empty?

      str << '<colBreaks count="' << size.to_s << '" manualBreakCount="' << size.to_s << '">'
      each { |brk| brk.to_xml_string(str) }
      str << '</colBreaks>'
    end
  end
end