Sha256: 120d286b38f746363f9db3aaf3bf5af77f5abdd9e420c79b3f5410f5cd31f9aa

Contents?: true

Size: 570 Bytes

Versions: 11

Compression:

Stored size: 570 Bytes

Contents

require 'arc-furnace/sink'

module ArcFurnace
  class ExcelSink < Sink
    private_attr_reader :filename, :fields, :package, :workbook, :worksheet

    def initialize(filename: , fields:)
      @filename = filename
      @fields = fields
      @package = Axlsx::Package.new
      @workbook = package.workbook
      @worksheet = workbook.add_worksheet(name: 'Sheet1')
      worksheet.add_row(fields)
    end

    def finalize
      package.serialize(filename)
    end

    def row(hash)
      worksheet.add_row(fields.map { |field_id| hash[field_id] })
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
arc-furnace-0.1.35 lib/arc-furnace/excel_sink.rb
arc-furnace-0.1.34 lib/arc-furnace/excel_sink.rb
arc-furnace-0.1.33 lib/arc-furnace/excel_sink.rb
arc-furnace-0.1.32 lib/arc-furnace/excel_sink.rb
arc-furnace-0.1.31 lib/arc-furnace/excel_sink.rb
arc-furnace-0.1.30 lib/arc-furnace/excel_sink.rb
arc-furnace-0.1.29 lib/arc-furnace/excel_sink.rb
arc-furnace-0.1.28 lib/arc-furnace/excel_sink.rb
arc-furnace-0.1.27 lib/arc-furnace/excel_sink.rb
arc-furnace-0.1.26 lib/arc-furnace/excel_sink.rb
arc-furnace-0.1.25 lib/arc-furnace/excel_sink.rb