# encoding: UTF-8 module Axlsx # A Title stores information about the title of a chart class Title # The text to be shown. Setting this property directly with a string will remove the cell reference. # @return [String] attr_reader :text # The cell that holds the text for the title. Setting this property will automatically update the text attribute. # @return [Cell] attr_reader :cell # Creates a new Title object # @param [String, Cell] title The cell or string to be used for the chart's title def initialize(title="") self.cell = title if title.is_a?(Cell) self.text = title.to_s unless title.is_a?(Cell) end # @see text def text=(v) DataTypeValidator.validate 'Title.text', String, v @text = v @cell = nil v end # @see cell def cell=(v) DataTypeValidator.validate 'Title.text', Cell, v @cell = v @text = v.value.to_s v end # Not implemented at this time. #def layout=(v) DataTypeValidator.validate 'Title.layout', Layout, v; @layout = v; end #def overlay=(v) Axlsx::validate_boolean v; @overlay=v; end #def spPr=(v) DataTypeValidator.validate 'Title.spPr', SpPr, v; @spPr = v; end # Serializes the object # @param [String] str # @return [String] def to_xml_string(str = '') str << '' unless @text.empty? str << '' if @cell.is_a?(Cell) str << '' str << '' << Axlsx::cell_range([@cell]) << '' str << '' str << '' str << '' str << '' << @text << '' str << '' str << '' str << '' else str << '' str << '' str << '' str << '' str << '' str << '' << @text.to_s << '' str << '' str << '' str << '' end str << '' end str << '' str << '' str << '' end end end