Class: EasySeeds::CSVLoader

Inherits:
Object
  • Object
show all
Defined in:
lib/easy_seeds/csv_methods.rb

Class Method Summary collapse

Class Method Details

.tables_from_csvsObject



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/easy_seeds/csv_methods.rb', line 13

def self.tables_from_csvs
  all_seed_data = []
  table_strings = []
  seed_folder = './db/seed_files'
  Dir.chdir(seed_folder)
  
  Dir.glob("*").each do |seed_file|
    seed_res = []
    headers, data = unpack_csvs(seed_file)
    
    data.each_with_index do |row, j|
      datum = {}
      row.each_with_index do |col, i|
        key = clean_headers(headers[i])
        datum[key[0]] = type_conversion(row[i], key[1])
      end
      seed_res << datum
    end
    
    table_strings << seed_file[seed_file.index('_') + 1..-11]
    all_seed_data << seed_res
  end
  
  return all_seed_data, table_strings
end

.unpack_csvs(seed_file) ⇒ Object



5
6
7
8
9
10
11
# File 'lib/easy_seeds/csv_methods.rb', line 5

def self.unpack_csvs(seed_file)
  data = []
  CSV.foreach(seed_file) {|row|data << row}
  headers = data.shift
  headers.map{|header| header.to_sym}
  return headers, data
end