summaryrefslogtreecommitdiffhomepage
path: root/lib/axlsx/drawing/ser_axis.rb
blob: 4fea58e58b307db66a9db70d9d6b16dafadb8450 (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
37
38
39
40
41
42
43
# frozen_string_literal: true

module Axlsx
  # A SerAxis object defines a series axis
  class SerAxis < Axis
    # The number of tick lables to skip between labels
    # @return [Integer]
    attr_reader :tick_lbl_skip
    alias :tickLblSkip :tick_lbl_skip

    # The number of tickmarks to be skipped before the next one is rendered.
    # @return [Boolean]
    attr_reader :tick_mark_skip
    alias :tickMarkSkip :tick_mark_skip

    # Creates a new SerAxis object
    # @option options [Integer] tick_lbl_skip
    # @option options [Integer] tick_mark_skip
    def initialize(options = {})
      @tick_lbl_skip, @tick_mark_skip = 1, 1
      super(options)
    end

    # @see tickLblSkip
    def tick_lbl_skip=(v) Axlsx::validate_unsigned_int(v); @tick_lbl_skip = v; end
    alias :tickLblSkip= :tick_lbl_skip=

    # @see tickMarkSkip
    def tick_mark_skip=(v) Axlsx::validate_unsigned_int(v); @tick_mark_skip = v; end
    alias :tickMarkSkip= :tick_mark_skip=

    # Serializes the object
    # @param [String] str
    # @return [String]
    def to_xml_string(str = +'')
      str << '<c:serAx>'
      super(str)
      str << '<c:tickLblSkip val="' << @tick_lbl_skip.to_s << '"/>' unless @tick_lbl_skip.nil?
      str << '<c:tickMarkSkip val="' << @tick_mark_skip.to_s << '"/>' unless @tick_mark_skip.nil?
      str << '</c:serAx>'
    end
  end
end