Module: Railstar::ActiveRecordExt::ClassMethods
- Defined in:
- lib/seed_ext.rb
Instance Method Summary collapse
- #create_from_csv(file_path) ⇒ Object
- #create_from_yml(file_path) ⇒ Object
- #truncation(sym = :yml, file_dir = 'db/seeds') ⇒ Object
- #truncation! ⇒ Object
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 |