Sha256: 202c11b7a9ed1e07b9c30b12ab29887869f886bacc627a6637b99b8395fd3673

Contents?: true

Size: 953 Bytes

Versions: 5

Compression:

Stored size: 953 Bytes

Contents

# frozen_string_literal: true

module Lite
  module Report
    module Helpers
      module Transporters

        private

        def generate_export!
          CSV.generate(@csv_options) do |csv|
            @data.each do |row|
              csv << process_export_row!(row)
            end
          end
        end

        def generate_or_stream_export!
          return stream_export! if stream?(delete: true)

          generate_export!
        end

        def stream?(delete: false)
          return @csv_options.delete(:stream) if delete

          @csv_options[:stream]
        end

        def stream_export!
          Enumerator.new do |csv|
            csv << CSV.generate_line(headers?(delete: true)) if write_headers?(delete: true)

            @data.each do |row|
              row = process_export_row!(row)
              csv << CSV.generate_line(row, @csv_options)
            end
          end
        end

      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
lite-report-1.0.4 lib/lite/report/helpers/transporters.rb
lite-report-1.0.3 lib/lite/report/helpers/transporters.rb
lite-report-1.0.2 lib/lite/report/helpers/transporters.rb
lite-report-1.0.1 lib/lite/report/helpers/transporters.rb
lite-report-1.0.0 lib/lite/report/helpers/transporters.rb