def header=(header)
      header = [header] unless header.respond_to? :each
      @header = normalize(header)
      @aliases = header.map do |n|
        n.downcase.gsub(' ', '_').gsub("\n", '_').to_sym
      end if @aliases.empty?
    end
def header=(header)
      header = [header] unless header.respond_to? :each
      @header = normalize(header)
      @aliases = header.map do |n|
        n.downcase.gsub(' ', '_').gsub("\n", '_').to_sym
      end if @aliases.empty?
    end
Sets the table header. If no aliases are defined, they will be defined as the texts
 in lowercase with line breaks and spaces replaced by underscores.

 Defining headers also limits the printed column to only columns that has a header
 (even if it is empty).

 === Args

 +header+::
   Array containing the texts for displaying the header. Line breaks are supported

 === Examples

   table.header = ['Name', 'Email', 'Work Phone', "Home\nPhone"]

 This will create the following aliases: :key, :email, :work_phone and :home_phone