Class: Csvtool::Infrastructure::Output::CsvStatsFileWriter

Inherits:
Object
  • Object
show all
Defined in:
lib/csvtool/infrastructure/output/csv_stats_file_writer.rb

Instance Method Summary collapse

Instance Method Details

#call(path:, data:) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/csvtool/infrastructure/output/csv_stats_file_writer.rb', line 9

def call(path:, data:)
  ::CSV.open(path, "w") do |csv|
    csv << %w[metric value]
    csv << ["row_count", data[:row_count]]
    csv << ["column_count", data[:column_count]]
    unless data[:headers].nil? || data[:headers].empty?
      csv << ["headers", data[:headers].join("|")]
    end
    data.fetch(:column_stats, []).each do |stats|
      csv << ["column.#{stats[:name]}.non_blank", stats[:non_blank_count]]
      csv << ["column.#{stats[:name]}.blank", stats[:blank_count]]
    end
  end
end