Method: RubyXL::Reference#initialize
- Defined in:
- lib/rubyXL/objects/reference.rb
#initialize(*params) ⇒ Reference
RubyXL::Reference.new(row, col) RubyXL::Reference.new(row_from, row_to, col_from, col_to) RubyXL::Reference.new(reference_string) RubyXL::Reference.new(row_from:, row_to:, col_from:, col_to:)
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/rubyXL/objects/reference.rb', line 12 def initialize(*params) row_from = row_to = col_from = col_to = nil case params.size when 4 then row_from, row_to, col_from, col_to = params when 2 then row_from, col_from = params when 1 then case params.first when Hash then row_from, row_to, col_from, col_to = params.first.fetch_values(:row_from, :row_to, :col_from, :col_to) when String then from, to = params[0].split(':') row_from, col_from = self.class.ref2ind(from) row_to, col_to = self.class.ref2ind(to) unless to.nil? else raise ArgumentError.new("invalid value for #{self.class}: #{params[0].inspect}") unless params[0].is_a?(String) end end @row_range = Range.new(row_from || 0, row_to || row_from || ROW_MAX) @col_range = Range.new(col_from || 0, col_to || col_from || COL_MAX) end |