Skip to content

Commit

Permalink
Adding write task to seeds
Browse files Browse the repository at this point in the history
  • Loading branch information
Brandon Hansen committed Feb 1, 2012
1 parent e364fe2 commit 2beaafe
Showing 1 changed file with 42 additions and 10 deletions.
52 changes: 42 additions & 10 deletions lib/tasks/seed_fu.rake
Expand Up @@ -16,23 +16,55 @@ namespace :db do
Examples:
# default, to load all seed files for the current environment
rake db:seed
rake db:seed_fu:seed
# to load seed files matching orders or customers
rake db:seed FILTER=orders,customers
rake db:seed_fu:seed FILTER=orders,customers
# to load files from RAILS_ROOT/features/fixtures
rake db:seed FIXTURE_PATH=features/fixtures
rake db:seed_fu:seed FIXTURE_PATH=features/fixtures
# to write seed files from RAILS_ROOT/lib/db/generators
rake db:seed_fu:write GENERATOR_PATH=lib/db/generators
# to write seed files from RAILS_ROOT/db/generators
rake db:seed_fu:write
For more information on writers see http://rubydoc.info/github/mbleigh/seed-fu/master/SeedFu/Writer
Note: As of 02/01/2012 the documentation for writers is incorrect. writer.write should be writer.add
See https://github.com/mbleigh/seed-fu/issues/32
EOS
task :seed_fu => :environment do
if ENV["FILTER"]
filter = /#{ENV["FILTER"].gsub(/,/, "|")}/
end


namespace :seed_fu do

task :seed => :environment do
if ENV["FILTER"]
filter = /#{ENV["FILTER"].gsub(/,/, "|")}/
end

if ENV["FIXTURE_PATH"]
fixture_paths = [ENV["FIXTURE_PATH"], ENV["FIXTURE_PATH"] + '/' + Rails.env]
end

if ENV["FIXTURE_PATH"]
fixture_paths = [ENV["FIXTURE_PATH"], ENV["FIXTURE_PATH"] + '/' + Rails.env]
SeedFu.seed(fixture_paths, filter)
end


task :write => :environment do
desc <<-EOS
Generates seeds from the database based on the generators in /db/generators
EOS

generator_path = ENV["GENERATOR_PATH"] || "#{Rails.root}/db/generators"

SeedFu.seed(fixture_paths, filter)
Dir.foreach(generator_path) do |item|
next if item == "." or item == ".."

puts "Importing #{generator_path}/#{item}"
require File.absolute_path("#{generator_path}/#{item}")
end
end

end
end

0 comments on commit 2beaafe

Please sign in to comment.