Module: RailsCsvFixtures::CsvFixtures

Extended by:
ActiveSupport::Concern
Defined in:
lib/rails-csv-fixtures/active_record_csv_fixtures.rb

Instance Method Summary collapse

Instance Method Details

#csv_file_pathObject



31
32
33
# File 'lib/rails-csv-fixtures/active_record_csv_fixtures.rb', line 31

def csv_file_path
  @fixture_path + ".csv"
end

#erb_render(fixture_content) ⇒ Object



35
36
37
# File 'lib/rails-csv-fixtures/active_record_csv_fixtures.rb', line 35

def erb_render(fixture_content)
  ERB.new(fixture_content).result
end

#read_csv_fixture_filesObject



20
21
22
23
24
25
26
27
28
29
# File 'lib/rails-csv-fixtures/active_record_csv_fixtures.rb', line 20

def read_csv_fixture_files
  reader = CSV.parse(erb_render(IO.read(csv_file_path)))
  header = reader.shift
  i = 0
  reader.each do |row|
    data = {}
    row.each_with_index { |cell, j| data[header[j].to_s.strip] = cell.to_s.strip }
    fixtures["#{@class_name.to_s.underscore}_#{i+=1}"] = ActiveRecord::Fixture.new(data, model_class)
  end
end

#read_fixture_files_with_csv_supportObject



12
13
14
15
16
17
18
# File 'lib/rails-csv-fixtures/active_record_csv_fixtures.rb', line 12

def read_fixture_files_with_csv_support
  if ::File.file?(csv_file_path)
    read_csv_fixture_files
  else
    read_fixture_files_without_csv_support
  end
end