def to_s
r = ''
names = sort_names(all_names.keys)
format = ''
sep = ''
names.each {|name|
format << "%-#{name.length}s "
sep << '-' * (name.length+1)
}
format << "| %s\n"
sep << "+--\n"
r << sprintf(format, *(names + ['']))
r << sep
@table.each {|inputs, output, order|
h = {}
each_input(inputs) {|name, input|
h[name] = input
}
args = []
names.each {|name|
if h.has_key? name
args << (h[name] ? 't' : 'f').center(name.length)
else
args << '?'.center(name.length)
end
}
args << (output ? 't' : 'f')
r << sprintf(format, *args)
}
r
end