def get_header_vars(table)
with_table(table) do |fptr|
encrypted, line = get_header_record(table, fptr)
last_rec_no, del_ctr, record_class, *flds = line.split('|')
field_names = flds.collect { |x| x.split(':')[0].to_sym }
field_types = flds.collect { |x| x.split(':')[1].to_sym }
field_indexes = [nil] * field_names.size
field_defaults = [nil] * field_names.size
field_requireds = [false] * field_names.size
field_extras = [nil] * field_names.size
flds.each_with_index do |x,i|
field_extras[i] = {}
if x.split(':').size > 2
x.split(':')[2..-1].each do |y|
if y =~ /Index/
field_indexes[i] = y
elsif y =~ /Default/
field_defaults[i] = \
convert_to_native_type(field_types[i],
y.split('->')[1])
elsif y =~ /Required/
field_requireds[i] = \
convert_to_native_type(:Boolean,
y.split('->')[1])
else
field_extras[i][y.split('->')[0]] = \
y.split('->')[1]
end
end
end
end
return [encrypted, last_rec_no.to_i, del_ctr.to_i,
record_class, field_names, field_types, field_indexes,
field_defaults, field_requireds, field_extras]
end
end