module TheGardener

Constants

VERSION

Public Class Methods

filename_version(filename) click to toggle source
# File lib/the_gardener.rb, line 43
def self.filename_version filename
  filename.split('_').first
end
load_seeds!() click to toggle source
# File lib/the_gardener.rb, line 23
def self.load_seeds!
  Dir.open(seed_directory).sort.each do |seed_file|
    next unless File.file? File.join(seed_directory,seed_file)
    next if versioned?(filename_version(seed_file))
    puts "loading seed: #{seed_file}"
    begin
      ActiveRecord::Base.transaction do
        load File.join(seed_directory,seed_file)
        versionize! filename_version(seed_file)
      end
    rescue => e 
      puts "#{'-'*30}\nError on: #{File.join(seed_directory,seed_file)}"
      puts "message: #{e.message}\n#{'-'*30}"
      puts "seeding stopped" 
      raise ActiveRecord::Rollback
    end

  end
end
versioned?(version) click to toggle source
# File lib/the_gardener.rb, line 15
def self.versioned? version
  SeedMigration.version(version).any?
end
versionize!(version) click to toggle source
# File lib/the_gardener.rb, line 19
def self.versionize! version
  SeedMigration.generate(version)
end

Private Class Methods

seed_directory() click to toggle source
# File lib/the_gardener.rb, line 49
def self.seed_directory
  File.join('db','seeds')
end