Sha256: 9cd4f948ab2a0a2e2e8dd50ed3cf9cb00f60448a4d9f87b10a1596ea8136a7d8
Contents?: true
Size: 1.01 KB
Versions: 2
Compression:
Stored size: 1.01 KB
Contents
module Csb class Template attr_accessor :utf8_bom, :filename, :streaming, :items, :cols, :csv_options def initialize(streaming:) @streaming = streaming @cols = Cols.new @items = [] end def build streaming ? build_enumerator : build_string end def streaming? !!streaming end private def builder_options { items: items, utf8_bom: utf8_bom, csv_options: csv_options, }.compact end def build_string builder = Builder.new(**builder_options) builder.cols.copy!(cols) builder.build end def build_enumerator Enumerator.new do |y| begin builder = Builder.new(y, **builder_options) builder.cols.copy!(cols) builder.build rescue => error if Csb.configuration.after_streaming_error.respond_to?(:call) Csb.configuration.after_streaming_error.call(error) end raise error end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
csb-0.13.0 | lib/csb/template.rb |
csb-0.12.0 | lib/csb/template.rb |