def field_csv(*include_fields)
      fields = field_report.keys
      fields.select! { |f| include_fields.include? f } unless
        include_fields.empty?

      variables = [:value, :aggregation, :isShownAt]
      headers = fields.product(variables).map { |header| header.join(' ') }

      table = CSV::Table.new([CSV::Row.new(headers, [], true)])
      return table if field_report.nil? || field_report.empty?

      rows = []

      field_report.each do |field, values|
        values.each do |value, agg_list|
          agg_list.each_with_index do |agg_hash, i|
            rows[i] ||= CSV::Row.new(headers, [])
            rows[i]["#{field} value"] = value.to_s
            rows[i]["#{field} aggregation"] = agg_hash[:aggregation].to_s
            rows[i]["#{field} isShownAt"] = agg_hash[:isShownAt].to_s
          end
        end
      end

      rows.each { |r| table << r }
      table
    end
def field_csv(*include_fields)
      fields = field_report.keys
      fields.select! { |f| include_fields.include? f } unless
        include_fields.empty?

      variables = [:value, :aggregation, :isShownAt]
      headers = fields.product(variables).map { |header| header.join(' ') }

      table = CSV::Table.new([CSV::Row.new(headers, [], true)])
      return table if field_report.nil? || field_report.empty?

      rows = []

      field_report.each do |field, values|
        values.each do |value, agg_list|
          agg_list.each_with_index do |agg_hash, i|
            rows[i] ||= CSV::Row.new(headers, [])
            rows[i]["#{field} value"] = value.to_s
            rows[i]["#{field} aggregation"] = agg_hash[:aggregation].to_s
            rows[i]["#{field} isShownAt"] = agg_hash[:isShownAt].to_s
          end
        end
      end

      rows.each { |r| table << r }
      table
    end
@param include_fields

 @return [CSV::Table] a table containing values, aggregations, and
   isShownAt URLs for each included field