Sha256: e64b2f7e34f5d784908cb9b10d39e9546cd4ebebc185fd55e49a8fe32ec647c8

Contents?: true

Size: 1.25 KB

Versions: 5

Compression:

Stored size: 1.25 KB

Contents

# frozen_string_literal: true

module Axlsx
  # This specifies the last string data used for a chart. (e.g. strLit and strCache)
  # This class is extended for NumData to include the formatCode attribute required for numLit and numCache
  class StrData
    include Axlsx::OptionsParser

    # creates a new StrVal object
    # @option options [Array] :data
    # @option options [String] :tag_name
    def initialize(options = {})
      @tag_prefix = :str
      @type = StrVal
      @pt = SimpleTypedList.new(@type)
      parse_options options
    end

    # Creates the val objects for this data set. I am not overly confident this is going to play nicely with time and data types.
    # @param [Array] values An array of cells or values.
    def data=(values = [])
      @tag_name = values.first.is_a?(Cell) ? :strCache : :strLit
      values.each do |value|
        v = value.is_a?(Cell) ? value.value : value
        @pt << @type.new(v: v)
      end
    end

    # serialize the object
    def to_xml_string(str = +'')
      str << '<c:' << @tag_name.to_s << '>'
      str << '<c:ptCount val="' << @pt.size.to_s << '"/>'
      @pt.each_with_index do |value, index|
        value.to_xml_string index, str
      end
      str << '</c:' << @tag_name.to_s << '>'
    end
  end
end

Version data entries

5 entries across 5 versions & 2 rubygems

Version Path
cm-admin-1.5.22 vendor/bundle/ruby/3.3.0/gems/caxlsx-4.1.0/lib/axlsx/drawing/str_data.rb
cm-admin-1.5.21 vendor/bundle/ruby/3.3.0/gems/caxlsx-4.1.0/lib/axlsx/drawing/str_data.rb
cm-admin-1.5.20 vendor/bundle/ruby/3.3.0/gems/caxlsx-4.1.0/lib/axlsx/drawing/str_data.rb
caxlsx-4.1.0 lib/axlsx/drawing/str_data.rb
caxlsx-4.0.0 lib/axlsx/drawing/str_data.rb