Sha256: 183579df8d60e6c8121d2bc897c394ad5f3718cd00d54e07ced076efb907e1dc

Contents?: true

Size: 474 Bytes

Versions: 40

Compression:

Stored size: 474 Bytes

Contents

require 'arc-furnace/sink'

module ArcFurnace
  class CSVSink < Sink
    private_attr_reader :csv, :fields

    def initialize(filename: , fields: , encoding: 'UTF-8', force_quotes: false)
      @csv = CSV.open(filename, 'wb', encoding: encoding, headers: true, force_quotes: force_quotes)
      @fields = fields
      csv << fields
    end

    def finalize
      csv.close
    end

    def row(hash)
      csv << fields.map { |field_id| hash[field_id] }
    end
  end
end

Version data entries

40 entries across 40 versions & 1 rubygems

Version Path
arc-furnace-0.1.42 lib/arc-furnace/csv_sink.rb
arc-furnace-0.1.41 lib/arc-furnace/csv_sink.rb
arc-furnace-0.1.40 lib/arc-furnace/csv_sink.rb
arc-furnace-0.1.39 lib/arc-furnace/csv_sink.rb
arc-furnace-0.1.38 lib/arc-furnace/csv_sink.rb
arc-furnace-0.1.37 lib/arc-furnace/csv_sink.rb
arc-furnace-0.1.36 lib/arc-furnace/csv_sink.rb
arc-furnace-0.1.35 lib/arc-furnace/csv_sink.rb
arc-furnace-0.1.34 lib/arc-furnace/csv_sink.rb
arc-furnace-0.1.33 lib/arc-furnace/csv_sink.rb
arc-furnace-0.1.32 lib/arc-furnace/csv_sink.rb
arc-furnace-0.1.31 lib/arc-furnace/csv_sink.rb
arc-furnace-0.1.30 lib/arc-furnace/csv_sink.rb
arc-furnace-0.1.29 lib/arc-furnace/csv_sink.rb
arc-furnace-0.1.28 lib/arc-furnace/csv_sink.rb
arc-furnace-0.1.27 lib/arc-furnace/csv_sink.rb
arc-furnace-0.1.26 lib/arc-furnace/csv_sink.rb
arc-furnace-0.1.25 lib/arc-furnace/csv_sink.rb
arc-furnace-0.1.24 lib/arc-furnace/csv_sink.rb
arc-furnace-0.1.23 lib/arc-furnace/csv_sink.rb