Sha256: 4f1e83cd6a8e2114fb157467d87f1389d2f7ef255743bfc745125f0232e6d7fc
Contents?: true
Size: 1.62 KB
Versions: 3
Compression:
Stored size: 1.62 KB
Contents
module Axlsx # A numeric data source for use by charts. class NumDataSource # The tag name to use when serializing this data source. # Only items defined in allowed_tag_names are allowed # @return [Symbol] attr_reader :tag_name attr_reader :data # allowed element tag names # @return [Array] def self.allowed_tag_names [:yVal, :val] end # creates a new NumDataSource object # @option options [Array] data An array of Cells or Numeric objects # @option options [Symbol] tag_name see tag_name def initialize(options={}) # override these three in child classes @data_type ||= NumData @tag_name ||= :val @ref_tag_name ||= :numRef @f = nil @data = @data_type.new(options) if options[:data] && options[:data].first.is_a?(Cell) @f = Axlsx::cell_range(options[:data]) end options.each do |o| self.send("#{o[0]}=", o[1]) if self.respond_to? "#{o[0]}=" end end # sets the tag name for this data source # @param [Symbol] One of the allowed_tag_names def tag_name=(v) Axlsx::RestrictionValidator.validate "#{self.class.name}.tag_name", self.class.allowed_tag_names, v @tag_name = v end # serialize the object # @param [String] str def to_xml_string(str="") str << '<c:' << tag_name.to_s << '>' if @f str << '<c:' << @ref_tag_name.to_s << '>' str << '<c:f>' << @f.to_s << '</c:f>' end @data.to_xml_string str if @f str << '</c:' << @ref_tag_name.to_s << '>' end str << '</c:' << tag_name.to_s << '>' end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
axlsx-1.1.7 | lib/axlsx/drawing/num_data_source.rb |
axlsx-1.1.6 | lib/axlsx/drawing/num_data_source.rb |
axlsx-1.1.5 | lib/axlsx/drawing/num_data_source.rb |