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
84 85 86 87 |
# File 'lib/rubyXL/objects/column_range.rb', line 84 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.
44 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 |
# File 'lib/rubyXL/objects/column_range.rb', line 44 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
80 81 82 |
# File 'lib/rubyXL/objects/column_range.rb', line 80 def insert_column(col_index) self.each { |range| range.insert_column(col_index) } end |
#locate_range(col_index) ⇒ Object
76 77 78 |
# File 'lib/rubyXL/objects/column_range.rb', line 76 def locate_range(col_index) self.find { |range| range.include?(col_index) } end |