# File lib/ruport/data/table.rb, line 142
    def initialize(options={})
      @column_names = options[:column_names] ? options[:column_names].dup : []
      @record_class = options[:record_class] &&
                      options[:record_class].name || "Ruport::Data::Record"
      @data         = []  
      
      feeder = Feeder.new(self)
     
      Array(options[:filters]).each { |f| feeder.filter(&f) }
      Array(options[:transforms]).each { |t| feeder.transform(&t) }
      
      if options[:data]
        options[:data].each do |e|
          if e.kind_of?(Record)
            e = if @column_names.empty? or 
                   e.attributes.all? { |a| a.kind_of?(Numeric) }
              e.to_a
            else
              e.to_hash.values_at(*@column_names)  
            end
          end
          r = recordize(e)
                                                     
          feeder << r
        end  
      end    
      
      yield(feeder) if block_given?  
    end