Class: RobustExcelOle::Address
- Defined in:
- lib/robust_excel_ole/reo_common.rb
Instance Attribute Summary collapse
-
#columns ⇒ Object
readonly
Returns the value of attribute columns.
-
#rows ⇒ Object
readonly
Returns the value of attribute rows.
Instance Method Summary collapse
-
#initialize(address) ⇒ Address
constructor
A new instance of Address.
Methods inherited from REOCommon
#excel, #own_methods, puts_hash, tr1, trace
Constructor Details
#initialize(address) ⇒ Address
Returns a new instance of Address.
146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 |
# File 'lib/robust_excel_ole/reo_common.rb', line 146 def initialize(address) address = [address] unless address.is_a?(Array) raise AddressInvalid, 'more than two components' if address.size > 2 begin if address.size == 1 comp1, comp2 = address[0].split(':') address_comp1 = comp1.gsub(/[A-Z]/,'') address_comp2 = comp1.gsub(/[0-9]/,'') if comp1 != address_comp2 + address_comp1 raise AddressInvalid, "address #{comp1.inspect} not in A1-format" end unless comp2.nil? address_comp3 = comp2.gsub(/[A-Z]/,'') address_comp4 = comp2.gsub(/[0-9]/,'') if comp2 != address_comp4 + address_comp3 raise AddressInvalid, "address #{comp2.inspect} not in A1-format" end address_comp1 = address_comp1..address_comp3 address_comp2 = address_comp2..address_comp4 end else address_comp1, address_comp2 = address end address_comp1 = address_comp1..address_comp1 unless address_comp1.is_a?(Object::Range) address_comp2 = address_comp2..address_comp2 unless address_comp2.is_a?(Object::Range) @rows = address_comp1.min.to_i..address_comp1.max.to_i if address_comp2.min.to_i == 0 raise AddressInvalid, "address (#{address_comp1.inspect}, #{address_comp2.inspect}) not in A1-format" if address_comp1.min.to_i == 0 @columns = str2num(address_comp2.begin)..str2num(address_comp2.end) else @columns = address_comp2.min.to_i..address_comp2.max.to_i end rescue raise AddressInvalid, "address (#{address.inspect}) not in A1- or R1C1-format" end end |
Instance Attribute Details
#columns ⇒ Object (readonly)
Returns the value of attribute columns
144 145 146 |
# File 'lib/robust_excel_ole/reo_common.rb', line 144 def columns @columns end |
#rows ⇒ Object (readonly)
Returns the value of attribute rows
143 144 145 |
# File 'lib/robust_excel_ole/reo_common.rb', line 143 def rows @rows end |