Sha256: eb594fc516f2fa53f7a0ea883718e3306cb2e869bf2c946652a34ea3715da8a9

Contents?: true

Size: 537 Bytes

Versions: 1

Compression:

Stored size: 537 Bytes

Contents

# frozen_string_literal: true

require 'sql_csv/version'

require 'active_record'
require 'csv'

# Create a CSV export from an SQL query.
module SqlCsv
  class Error < StandardError; end

  def self.export(query)
    ActiveRecord::Base.establish_connection
    rows = ActiveRecord::Base.connection.execute(query)
    csv = CSV.new($stdout)
    csv << rows.fields
    rows.map { |row| row.is_a?(Hash) ? row.values : row }.each do |row|
      csv << row.map { |item| item.is_a?(String) ? item : item.to_s }
    end
    csv.close
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
sql_csv-0.2.3 lib/sql_csv.rb