class Kugiru::Builder

Constants

UTF8_BOM

Attributes

cols[R]
data[R]
output[R]
utf8_bom[R]

Public Class Methods

build(**args) click to toggle source
# File lib/kugiru/builder.rb, line 26
def self.build(**args)
  self.new(args).build
end
build_enumerator(**args) click to toggle source
# File lib/kugiru/builder.rb, line 30
def self.build_enumerator(**args)
  Enumerator.new do |y|
    begin
      self.new(y, args).build
    rescue => error
      Kugiru.configuration.after_streaming_error.try(:call, error)
      raise error
    end
  end
end
new(output = '', cols:, data:, utf8_bom: false) click to toggle source
# File lib/kugiru/builder.rb, line 9
def initialize(output = '', cols:, data:, utf8_bom: false)
  @output = output
  @utf8_bom = utf8_bom
  @cols = cols
  @data = data
end

Public Instance Methods

build() click to toggle source
# File lib/kugiru/builder.rb, line 16
def build
  output << UTF8_BOM if utf8_bom
  output << CSV.generate_line(cols.keys)
  data.each do |row|
    values = cols.values.map { |pr| pr.call(row) }
    output << CSV.generate_line(values)
  end
  output
end