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