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.
174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 |
# File 'lib/robust_excel_ole/reo_common.rb', line 174 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
172 173 174 |
# File 'lib/robust_excel_ole/reo_common.rb', line 172 def columns @columns end |
#rows ⇒ Object (readonly)
Returns the value of attribute rows
171 172 173 |
# File 'lib/robust_excel_ole/reo_common.rb', line 171 def rows @rows end |