| @@ -29,14 +29,19 @@ module Petrify | |||||
| # https://support.google.com/webmasters/answer/183668?hl=en&ref_topic=4581190 | # https://support.google.com/webmasters/answer/183668?hl=en&ref_topic=4581190 | ||||
| end | 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) | def self.csv(path_items, filename, data) | ||||
| dir = create_path(path_items) | dir = create_path(path_items) | ||||
| fn = File.join(dir, filename + '.csv') | 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 | end | ||||
| File.write(fn, csv_string) | File.write(fn, csv_string) | ||||