Method: RubyXL::ColumnRanges#get_range
- Defined in:
- lib/rubyXL/objects/column_range.rb
permalink #get_range(col_index) ⇒ Object
Locate an existing column range, make a new one if not found, or split existing column range into multiples.
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
# 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 |