def initialize(reader, table, attributes = {})
@reader = reader
@table = table
@last_cursor = reader.cursor
if (@format = attributes['format'])
unless Table::DATA_FORMATS.include? @format
raise %(Illegal table format: #{@format})
end
else
@format = Table::DEFAULT_DATA_FORMAT
end
@delimiter = if @format == 'psv' && !(attributes.key? 'separator') && table.document.nested?
'!'
else
attributes['separator'] || Table::DEFAULT_DELIMITERS[@format]
end
@delimiter_re = /#{Regexp.escape @delimiter}/
@col_count = table.columns.empty? ? -1 : table.columns.size
@buffer = ''
@cell_specs = []
@cell_open = false
@active_rowspans = [0]
@col_visits = 0
@current_row = []
@linenum = -1
end