Sha256: 034c7b05747b4cc2e70bd60c3e3766282168c3a16b2f5c6b1de8d2ea91ea9dff

Contents?: true

Size: 654 Bytes

Versions: 2

Compression:

Stored size: 654 Bytes

Contents

require 'csv'
# frozen_string_literal: true

module ApiMe
  class CsvStreamWriter
    # @!attribute [r] stream
    #   @return [IO]
    attr_reader :stream

    # Provides a similar interface to CSV.generate but compatible with an IO stream
    # @example
    #   CsvStreamWriter.generate(stream) do |csv|
    #     csv << ['foo', 'bar']
    #   end
    #
    # @param [IO]
    # @yield [CsvStreamWriter] csv
    def self.generate(stream)
      yield new(stream)
    end

    # @param [IO]
    def initialize(stream)
      @stream = stream
    end

    # @param [Array<String>]
    def <<(row)
      stream.write CSV.generate_line(row)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
api_me-0.14.1 lib/api_me/csv_stream_writer.rb
api_me-0.14.0 lib/api_me/csv_stream_writer.rb