Class: JewelSeed::Dumper

Inherits:
Object
  • Object
show all
Defined in:
lib/jewel_seed/dumper.rb

Class Method Summary collapse

Class Method Details

.dumpObject



4
5
6
7
8
9
10
# File 'lib/jewel_seed/dumper.rb', line 4

def dump
  Dir.mkdir(SEED_PATH) unless File.exist?(SEED_PATH)

  SeedMigrationTable.table_names.each do |t|
    dump_table(t)
  end
end

.dump_table(table) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/jewel_seed/dumper.rb', line 12

def dump_table(table)
  klass = table.classify.constantize
  columns = klass.column_names.delete_if { |c| ['created_at', 'updated_at'].include? c }
  open("db/seeds/#{table}.rb", 'w') do |stream|
    stream.puts "ActiveRecord::Base.transaction do"
    stream.puts "#{klass}.delete_all"
    stream.puts "#{klass}.import("
    stream.puts "#{columns},["
    klass.find_each do |record|
      stream.puts "#{record.attributes.values_at(*columns)},"
    end
    stream.puts "])"
    stream.puts "end"
  end
end