zenkay/simple-spreadsheet

View on GitHub
lib/simple-spreadsheet.rb

Summary

Maintainability
A
0 mins
Test Coverage
require "simple-spreadsheet/version"
require 'roo'
require 'roo-xls'

module SimpleSpreadsheet

  require 'simple-spreadsheet/modules/roo_module'

  class Workbook

    def self.read(file, ext = nil)
      file  = file.to_s
      ext ||= File.extname(file).downcase
      case ext
      when '.xls'
        ExcelReader.new(file)
      when '.xlsx'
        ExcelxReader.new(file)
      when '.ods'
        OpenofficeReader.new(file)
      when '.csv'
        CsvReader.new(file)
      when '.csvx'
        CsvxReader.new(file)
      when '.csvt', '.tsv'
        CsvtReader.new(file)
      else
        nil
      end
    end

    # def self.edit(file, ext = nil)
    #   ext = File.extname(file) if ext.nil?
    #   case ext
    #   when '.xls'
    #     ExcelEditor.new(file)
    #   when '.xlsx'
    #     ExcelxEditor.new(file)
    #   when '.ods'
    #     OpenofficeEditor.new(file)
    #   when '.csv'
    #     CsvEditor.new(file)
    #   when '.csvz'
    #     return CsvzEditor.new(file)
    #   when '.csvt'
    #     return CsvtEditor.new(file)
    #   else
    #     return nil
    #   end
    # end
    #
    # def self.write(file, ext = nil)
    #   ext = File.extname(file) if ext.nil?
    #   case ext
    #   when '.xls'
    #     ExcelWriter.new(file)
    #   when '.xlsx'
    #     ExcelxWriter.new(file)
    #   when '.ods'
    #     OpenofficeWriter.new(file)
    #   when '.csv'
    #     CsvWriter.new(file)
    #   when '.csvz'
    #     return CsvzWriter.new(file)
    #   when '.csvt'
    #     return CsvtWriter.new(file)
    #   else
    #     return nil
    #   end
    # end

  end

  # General
  require 'simple-spreadsheet/generic_sheet'

  # Extendend classes
  require 'simple-spreadsheet/classes/excel_extended'
  require 'simple-spreadsheet/classes/excelx_extended'
  require 'simple-spreadsheet/classes/csv_extended'
  require 'simple-spreadsheet/classes/csvx_extended'
  require 'simple-spreadsheet/classes/csvt_extended'

  # General for mode
  require 'simple-spreadsheet/readers/spreadsheet_reader'
  require 'simple-spreadsheet/editors/spreadsheet_editor'
  require 'simple-spreadsheet/writers/spreadsheet_writer'

  # .xls (Excel 97-2003)
  require 'simple-spreadsheet/readers/excel_reader'
  require 'simple-spreadsheet/editors/excel_editor'
  require 'simple-spreadsheet/writers/excel_writer'

  # .xlsx (Excel 2007-2010)
  require 'simple-spreadsheet/readers/excelx_reader'
  require 'simple-spreadsheet/editors/excelx_editor'
  require 'simple-spreadsheet/writers/excelx_writer'

  # .ods (Openoffice)
  require 'simple-spreadsheet/readers/openoffice_reader'
  require 'simple-spreadsheet/editors/openoffice_editor'
  require 'simple-spreadsheet/writers/openoffice_writer'

  # .csv (CSV)
  require 'simple-spreadsheet/readers/csv_reader'
  require 'simple-spreadsheet/editors/csv_editor'
  require 'simple-spreadsheet/writers/csv_writer'

  # .csvx (CSV)
  require 'simple-spreadsheet/readers/csvx_reader'

  # .csvt (CSV)
  require 'simple-spreadsheet/readers/csvt_reader'

end

# Gems
require 'roo'

if RUBY_VERSION < '1.9'
  require 'iconv'
end