def caption(*args, &block)
      @caption[:option], @caption[:html] = get_column_and_html_options( args.extract_options! )
      if block_given?
        @caption[:value] = capture(&block)
      else
        @caption[:value] = (args.empty?) ? I18n.t(:table_caption) : args.first;
      end
      render_caption
    end
def caption(*args, &block)
      @caption[:option], @caption[:html] = get_column_and_html_options( args.extract_options! )
      if block_given?
        @caption[:value] = capture(&block)
      else
        @caption[:value] = (args.empty?) ? I18n.t(:table_caption) : args.first;
      end
      render_caption
    end
Create a tag caption to set a title to the table
 It can be called with or without a block.
 The two exemples are equivalent:

  # Without block
  <% sorting_table_for @users do |table| %>
    <%= table.caption 'hello' %>
  <% end %>

  # With block
  <% sorting_table_for @users do |table| %>
    <%= table.caption do %>
      'hello'
    <% end %>
  <% end %>

  # Output:
  <table class='sorting_table_for'>
    <caption>hello</caption>
  </table>

 === Quick

 When called without a block or a value, caption is set with I18n translation.

  # Exemple of i18n_default_scope:
  SortingTableFor::TableBuilder.i18n_default_scope = [:controller, :action]

  # Ouput:
  I18n.t(:table_caption, :scope => [:current_controller, :current_action]) => en.current_controller.current_action.table_caption

 === Options

 * :position - To set the position of the caption: :top, :bottom, :left, :right (default: :top)
 * :html - Hash options: class, id, ...

 === Values

 All the values won't be interpreted.