def header(*args, &block)
      if block_given?
        block = capture(&block)
        @header_line.add_cell(@collection.first, args, nil, block)
      else
        @header_line.add_cell(@collection.first, args)
      end
      nil
    end
def header(*args, &block)
      if block_given?
        block = capture(&block)
        @header_line.add_cell(@collection.first, args, nil, block)
      else
        @header_line.add_cell(@collection.first, args)
      end
      nil
    end
Create a cell of header, to have more control.
 It can be called with or without a block.
 The three exemples are equivalent:

  # Without block (I18n and sorting)
  <% sorting_table_for @users do |table| %>
    <%= table.headers do %>
      <%= table.header :username %>
    <% end %>
  <% end %>

  # With string (no I18n and no sorting)
  <% sorting_table_for @users do |table| %>
    <%= table.headers do %>
      <%= table.header 'hello_my_header' %>
    <% end %>
  <% end %>

  # With a block and image (no I18n and no sorting)
  <% sorting_table_for @users do |table| %>
    <%= table.headers do %>
      <%= table.header do %>
        <%= image_tag('rails.png') %>
      <% end %>
    <% end %>
  <% end %>

 === Options

 * :sort - true of false to add or not sorting
 * :html - Hash options: class, id, ...
 * :caption - set caption on td

 === Values

 the values given to header can be anything. Only the symbols are set with I18n translation.
 If you give other types (string, image, ...) there won't have sorting and I18n translation.

 With block there won't have sorting and translation.