Sha256: d14ee382c0e30e6b4c1773d747846410e832713e0864f359997e90febbcc3593

Contents?: true

Size: 650 Bytes

Versions: 4

Compression:

Stored size: 650 Bytes

Contents

require 'tempfile'

module ExcelAbstraction
  class SpreadSheet < DelegateClass(Tempfile)
    attr_reader :workbook

    def initialize(format: :xls, skip_default_sheet: false)
      extension = format == :xls ? ".xls" : ".xlsx"
      tmp_file = Tempfile.new(["temp_spreadsheet_#{::Time.now.to_i}", extension])
      super(tmp_file)
      @workbook = ExcelAbstraction::WorkBook.new(tmp_file.path, format: format, skip_default_sheet: skip_default_sheet)
    end

    def close
      workbook.close
      yield if block_given?
      super
    end

    def to_s
      data = nil
      close do
        data = read
      end
      data
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
excel_templating-0.4.2 lib/excel_templating/excel_abstraction/spread_sheet.rb
excel_templating-0.4.1 lib/excel_templating/excel_abstraction/spread_sheet.rb
excel_templating-0.4.0 lib/excel_templating/excel_abstraction/spread_sheet.rb
excel_templating-0.3.2 lib/excel_templating/excel_abstraction/spread_sheet.rb