Module: Railstar::ActiveRecordExt::ClassMethods

Defined in:
lib/seed_ext.rb

Instance Method Summary collapse

Instance Method Details

#create_from_csv(file_path) ⇒ Object



33
34
35
# File 'lib/seed_ext.rb', line 33

def create_from_csv(file_path)
  CSV.foreach(file_path, :headers => true) {|row| self.create Hash[*row.to_a.flatten] }
end

#create_from_yml(file_path) ⇒ Object



27
28
29
30
31
# File 'lib/seed_ext.rb', line 27

def create_from_yml(file_path)
  YAML.load_file(file_path).each do |value|
   self.create value.is_a?(Array) ? value.last : value
  end
end

#truncation(sym = :yml, file_dir = 'db/seeds') ⇒ Object



7
8
9
10
11
12
13
14
15
16
# File 'lib/seed_ext.rb', line 7

def truncation(sym=:yml, file_dir='db/seeds')
  table_name = self.table_name || self.to_s.underscore.pluralize
  file_name = "#{table_name}.#{sym.to_s}"
  file_path = File.join(file_dir, file_name)
  raise "#{file_path} file not found."  unless File.exist?(file_path)
  self.transaction do
    self.truncation!
    self.send("create_from_#{sym.to_s}", file_path)
  end
end

#truncation!Object



18
19
20
21
22
23
24
25
# File 'lib/seed_ext.rb', line 18

def truncation!
  case self.connection.adapter_name
  when "SQLite"
    self.connection.execute("DELETE FROM `#{self.table_name}`")
  else
    self.connection.execute("TRUNCATE TABLE #{self.table_name}")
  end
end