# frozen_string_literal: true module Csvable require "csv" class << self def from_array_of_hashes(data = [], humanize = true, sep = ",") return "" unless data.first&.keys if humanize headers = data.first.keys .map(&:to_s) .map(&:humanize) else headers = data.first.keys .map(&:to_s) end CSV.generate({col_sep: sep}) do |csv| csv << headers data.each do |row| csv << row.values end end end end end