lib/axlsx/drawing/scatter_series.rb in axlsx-2.0.1 vs lib/axlsx/drawing/scatter_series.rb in axlsx-2.1.0.pre

- old
+ new

@@ -19,46 +19,65 @@ # The fill color for this series. # Red, green, and blue is expressed as sequence of hex digits, RRGGBB. A perceptual gamma of 2.2 is used. # @return [String] attr_reader :color + # Line smoothing between data points + # @return [Boolean] + attr_reader :smooth + # Creates a new ScatterSeries def initialize(chart, options={}) @xData, @yData = nil + if options[:smooth].nil? + # If caller hasn't specified smoothing or not, turn smoothing on or off based on scatter style + @smooth = [:smooth, :smoothMarker].include?(chart.scatter_style) + else + # Set smoothing according to the option provided + Axlsx::validate_boolean(options[:smooth]) + @smooth = options[:smooth] + end super(chart, options) @xData = AxDataSource.new(:tag_name => :xVal, :data => options[:xData]) unless options[:xData].nil? @yData = NumDataSource.new({:tag_name => :yVal, :data => options[:yData]}) unless options[:yData].nil? end # @see color def color=(v) @color = v end + # @see smooth + def smooth=(v) + Axlsx::validate_boolean(v) + @smooth = v + end + # Serializes the object # @param [String] str # @return [String] def to_xml_string(str = '') - super(str) do |inner_str| + super(str) do # needs to override the super color here to push in ln/and something else! if color str << '<c:spPr><a:solidFill>' - str << '<a:srgbClr val="' << color << '"/>' + str << ('<a:srgbClr val="' << color << '"/>') str << '</a:solidFill>' str << '<a:ln><a:solidFill>' - str << '<a:srgbClr val="' << color << '"/></a:solidFill></a:ln>' + str << ('<a:srgbClr val="' << color << '"/></a:solidFill></a:ln>') str << '</c:spPr>' str << '<c:marker>' str << '<c:spPr><a:solidFill>' - str << '<a:srgbClr val="' << color << '"/>' + str << ('<a:srgbClr val="' << color << '"/>') str << '</a:solidFill>' str << '<a:ln><a:solidFill>' - str << '<a:srgbClr val="' << color << '"/></a:solidFill></a:ln>' + str << ('<a:srgbClr val="' << color << '"/></a:solidFill></a:ln>') str << '</c:spPr>' str << '</c:marker>' end - @xData.to_xml_string(inner_str) unless @xData.nil? - @yData.to_xml_string(inner_str) unless @yData.nil? + @xData.to_xml_string(str) unless @xData.nil? + @yData.to_xml_string(str) unless @yData.nil? + str << ('<c:smooth val="' << ((smooth) ? '1' : '0') << '"/>') end str end end end