module Railstar::ActiveRecordExt::ClassMethods

Public Instance Methods

create_from_csv(file_path) click to toggle source
# 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) click to toggle source
# 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') click to toggle source
# 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!() click to toggle source
# 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