Class: RubyXL::ColumnRanges
- Inherits:
-
OOXMLContainerObject
- Object
- Array
- OOXMLContainerObject
- RubyXL::ColumnRanges
- Defined in:
- lib/rubyXL/objects/column_range.rb
Instance Attribute Summary
Attributes included from OOXMLObjectInstanceMethods
Instance Method Summary collapse
- #before_write_xml ⇒ Object
-
#get_range(col_index) ⇒ Object
Locate an existing column range, make a new one if not found, or split existing column range into multiples.
- #insert_column(col_index) ⇒ Object
- #locate_range(col_index) ⇒ Object
Methods inherited from OOXMLContainerObject
define_count_attribute, #initialize, #inspect
Methods included from OOXMLObjectInstanceMethods
#==, included, #index_in_collection, #initialize, #write_xml
Constructor Details
This class inherits a constructor from RubyXL::OOXMLContainerObject
Instance Method Details
#before_write_xml ⇒ Object
85 86 87 88 |
# File 'lib/rubyXL/objects/column_range.rb', line 85 def before_write_xml self.sort_by!{ |r| r.min } !(self.empty?) end |
#get_range(col_index) ⇒ Object
Locate an existing column range, make a new one if not found, or split existing column range into multiples.
45 46 47 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 |
# File 'lib/rubyXL/objects/column_range.rb', line 45 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 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 range_before = old_range.dup range_before.max = col_index # col_num - 1 self << range_before 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 |
#insert_column(col_index) ⇒ Object
81 82 83 |
# File 'lib/rubyXL/objects/column_range.rb', line 81 def insert_column(col_index) self.each { |range| range.insert_column(col_index) } end |
#locate_range(col_index) ⇒ Object
77 78 79 |
# File 'lib/rubyXL/objects/column_range.rb', line 77 def locate_range(col_index) self.find { |range| range.include?(col_index) } end |