Sha256: c457358a57eabc22cd57ed3d8cf89190abfe40172eb866f7426e204927ea436f
Contents?: true
Size: 704 Bytes
Versions: 4
Compression:
Stored size: 704 Bytes
Contents
module PluckMap module CsvPresenter def to_csv(query) define_to_csv! to_csv(query) end private def define_to_csv! require "csv" headers = CSV.generate_line(attributes.map(&:name)) ruby = <<-RUBY def to_csv(query) pluck(query) do |results| rows = [#{headers.inspect}] results.each_with_object(rows) do |values, rows| values = Array(values) rows << CSV.generate_line([#{attributes.map(&:to_ruby).join(", ")}]) end.join end end RUBY # puts "\e[34m#{ruby}\e[0m" # <-- helps debugging PluckMapPresenter class_eval ruby, __FILE__, __LINE__ - 7 end end end
Version data entries
4 entries across 4 versions & 1 rubygems