class RubyXL::ColumnRanges
Public Instance Methods
Source
# File lib/rubyXL/objects/column_range.rb, line 88 def before_write_xml self.sort_by!(&:min) !self.empty? end
Source
# File lib/rubyXL/objects/column_range.rb, line 48 def get_range(col_index) col_num = col_index + 1 old_range = self.locate_range(col_index) if old_range.nil? then new_range = RubyXL::ColumnRange.new(width: RubyXL::ColumnRange.chars2raw(RubyXL::ColumnRange::DEFAULT_WIDTH)) else if old_range.min == col_num && old_range.max == col_num then return old_range # Single column range, OK to change in place elsif old_range.min == col_num then new_range = old_range.dup old_range.min += 1 elsif old_range.max == col_num then new_range = old_range.dup old_range.max -= 1 else prior_range = old_range.dup prior_range.max = col_index # col_num - 1 self << prior_range old_range.min = col_num + 1 new_range = RubyXL::ColumnRange.new end end new_range.min = new_range.max = col_num self << new_range return new_range end
Locate an existing column range, make a new one if not found, or split existing column range into multiples.
Source
# File lib/rubyXL/objects/column_range.rb, line 84 def insert_column(col_index) self.each { |range| range.insert_column(col_index) } end
Source
# File lib/rubyXL/objects/column_range.rb, line 80 def locate_range(col_index) self.find { |range| range.include?(col_index) } end