# File truthtable.rb, line 161
  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