Class: SpreadsheetFile

Inherits:
Object
  • Object
show all
Defined in:
app/lib/spreadsheet_file.rb

Class Method Summary collapse

Class Method Details

.parse(file, options = {}) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'app/lib/spreadsheet_file.rb', line 4

def self.parse(file, options = {})
  filepath = file.is_a?(String) ? file : file.to_path
  filename = options.delete(:filename) || filepath
  fileext = File.extname(filename)
  options[:csv_options] = { col_sep: ';', encoding: 'utf-8' }.merge(options[:csv_options] || {})
  s = Roo::Spreadsheet.open(filepath, options.merge({ extension: fileext }))

  row_index = 1
  s.each do |row|
    if row_index == 1
      # @todo try to detect headers; for now using the index is ok
    else
      yield row, row_index
    end
    row_index += 1
  end
  row_index
end