# File lib/dbi/row.rb, line 33 def initialize(columns, column_types, size_or_array=nil, convert_types=true) @column_types = column_types @convert_types = convert_types size_or_array ||= columns.size # The '@column_map' is used to map column names to integer values so # that users can reference row values by name or number. @column_map = {} @column_names = columns columns.each_with_index { |c,i| @column_map[c] = i } case size_or_array when Integer super(@arr = Array.new(size_or_array)) when Array super(@arr = size_or_array.dup) set_values(size_or_array.dup) else raise TypeError, "parameter must be either Integer or Array" end end