class Csb::Template

Attributes

cols[RW]
filename[RW]
items[RW]
streaming[RW]
utf8_bom[RW]

Public Class Methods

new(utf8_bom:, streaming:) click to toggle source
# File lib/csb/template.rb, line 5
def initialize(utf8_bom:, streaming:)
  @utf8_bom = utf8_bom
  @streaming = streaming
  @cols = Cols.new
  @items = []
end

Public Instance Methods

build() click to toggle source
# File lib/csb/template.rb, line 12
def build
  streaming ? build_enumerator : build_string
end
streaming?() click to toggle source
# File lib/csb/template.rb, line 16
def streaming?
  !!streaming
end

Private Instance Methods

build_enumerator() click to toggle source
# File lib/csb/template.rb, line 28
def build_enumerator
  Enumerator.new do |y|
    begin
      builder = Builder.new(y, utf8_bom: utf8_bom, items: items)
      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
build_string() click to toggle source
# File lib/csb/template.rb, line 22
def build_string
  builder = Builder.new(utf8_bom: utf8_bom, items: items)
  builder.cols.copy!(cols)
  builder.build
end