summaryrefslogtreecommitdiffhomepage
path: root/lib/axlsx/drawing/line_chart.rb
diff options
context:
space:
mode:
authorRandy Morgan <[email protected]>2013-03-17 15:38:55 +0900
committerRandy Morgan <[email protected]>2013-03-17 15:38:55 +0900
commitae75ef360e3e0da253188d408a3cbc81ed3897e6 (patch)
tree9bf184d72c4a78b3f14731af511aad26002a51ad /lib/axlsx/drawing/line_chart.rb
parent17f135ab215ba05b85ef92a15ed0038ea7556de9 (diff)
downloadcaxlsx-ae75ef360e3e0da253188d408a3cbc81ed3897e6.tar.gz
caxlsx-ae75ef360e3e0da253188d408a3cbc81ed3897e6.zip
Fixed LineChart and refactored chart axes management
Diffstat (limited to 'lib/axlsx/drawing/line_chart.rb')
-rw-r--r--lib/axlsx/drawing/line_chart.rb51
1 files changed, 28 insertions, 23 deletions
diff --git a/lib/axlsx/drawing/line_chart.rb b/lib/axlsx/drawing/line_chart.rb
index 7bf925e6..afe6154e 100644
--- a/lib/axlsx/drawing/line_chart.rb
+++ b/lib/axlsx/drawing/line_chart.rb
@@ -23,17 +23,19 @@ module Axlsx
# the category axis
# @return [CatAxis]
- attr_reader :catAxis
+ def cat_axis
+ axes[:cat_axis]
+ end
+ alias :catAxis :cat_axis
# the category axis
# @return [ValAxis]
- attr_reader :valAxis
-
- # the category axis
- # @return [Axis]
- attr_reader :serAxis
+ def val_axis
+ axes[:val_axis]
+ end
+ alias :valAxis :val_axis
- # must be one of [:percentStacked, :clustered, :standard, :stacked]
+ # must be one of [:percentStacked, :clustered, :standard, :stacked]
# @return [Symbol]
attr_reader :grouping
@@ -46,12 +48,6 @@ module Axlsx
def initialize(frame, options={})
@vary_colors = false
@grouping = :standard
- @catAxId = rand(8 ** 8)
- @valAxId = rand(8 ** 8)
- @serAxId = rand(8 ** 8)
- @catAxis = CatAxis.new(@catAxId, @valAxId)
- @valAxis = ValAxis.new(@valAxId, @catAxId)
- @serAxis = SerAxis.new(@serAxId, @valAxId)
super(frame, options)
@series_type = LineSeries
@d_lbls = nil
@@ -59,29 +55,38 @@ module Axlsx
# @see grouping
def grouping=(v)
- RestrictionValidator.validate "Bar3DChart.grouping", [:percentStacked, :standard, :stacked], v
+ RestrictionValidator.validate "LineChart.grouping", [:percentStacked, :standard, :stacked], v
@grouping = v
end
+ def node_name
+ path = self.class.to_s
+ if i = path.rindex('::')
+ path = path[(i+2)..-1]
+ end
+ path[0] = path[0].chr.downcase
+ path
+ end
+
# Serializes the object
# @param [String] str
# @return [String]
def to_xml_string(str = '')
super(str) do |str_inner|
- str_inner << "<c:#{self.class.name.demodulize.camelcase(:lower)}>"
+ str_inner << "<c:" << node_name << ">"
str_inner << '<c:grouping val="' << grouping.to_s << '"/>'
str_inner << '<c:varyColors val="' << vary_colors.to_s << '"/>'
@series.each { |ser| ser.to_xml_string(str_inner) }
- @d_lbls.to_xml_string(str) if @d_lbls
+ @d_lbls.to_xml_string(str_inner) if @d_lbls
yield str_inner if block_given?
- str_inner << '<c:axId val="' << @catAxId.to_s << '"/>'
- str_inner << '<c:axId val="' << @valAxId.to_s << '"/>'
- str_inner << '<c:axId val="' << @serAxId.to_s << '"/>'
- str_inner << "</c:#{self.class.name.demodulize.camelcase(:lower)}>"
- @catAxis.to_xml_string str_inner
- @valAxis.to_xml_string str_inner
- @serAxis.to_xml_string str_inner
+ axes.to_xml_string(str_inner, :ids => true)
+ str_inner << "</c:" << node_name << ">"
+ axes.to_xml_string(str_inner)
end
end
+
+ def axes
+ @axes ||= Axes.new(:cat_axis => CatAxis, :val_axis => ValAxis)
+ end
end
end