def data(*args, &block) # :yields: tablebody
      options = args.extract_options!
      if block_given?
        yield self
      else
        @table_fields = args.empty? ? orm_fields : args.collect {|f| TableField.new(f.to_sym)}
      end
      action_cells(options[:actions], options[:action_prefix])
      ["\n", head, "\n", body, "\n"].join("").html_safe
    end
def data(*args, &block) # :yields: tablebody
      options = args.extract_options!
      if block_given?
        yield self
      else
        @table_fields = args.empty? ? orm_fields : args.collect {|f| TableField.new(f.to_sym)}
      end
      action_cells(options[:actions], options[:action_prefix])
      ["\n", head, "\n", body, "\n"].join("").html_safe
    end
builds up the fields that the table will include,
 returns table head and body with all data

 Can be used one of three ways:

 * Alone, which will try to detect all content columns on the resource
 * With an array of methods to call on each element in the collection
 * With a block, which assumes you will use +cell+ method to build up
   the table