Browse Source

Write empty CSV file when input data is an empty array

tags/v0.4.2
Adrian Short 4 years ago
parent
commit
d1122936e3
1 changed files with 9 additions and 4 deletions
  1. +9
    -4
      lib/petrify.rb

+ 9
- 4
lib/petrify.rb View File

@@ -29,14 +29,19 @@ module Petrify
# https://support.google.com/webmasters/answer/183668?hl=en&ref_topic=4581190
end

# Write a CSV file
# Write a CSV file from an array of hashes (or an empty array)
def self.csv(path_items, filename, data)
dir = create_path(path_items)
fn = File.join(dir, filename + '.csv')
csv_string = CSV.generate do |csv|
csv << data.first.keys # header row
data.each { |row| csv << row.values }
if data.size > 0
csv_string = CSV.generate do |csv|
csv << data.first.keys # header row
data.each { |row| csv << row.values }
end
else
# There's no data so write an empty file (no header row either)
csv_string = ''
end
File.write(fn, csv_string)


Loading…
Cancel
Save