Sha256: 05f9ddab7ea1a98902eb9055a469981dd4e6f7ec993eda4b7bb5b0a62f81dc51
Contents?: true
Size: 1.41 KB
Versions: 5
Compression:
Stored size: 1.41 KB
Contents
namespace :dm do namespace :fixtures do require 'yaml' def fixtures_path return ENV['FIXTURE_PATH'] if ENV['FIXTURE_PATH'] fixture_path = %w(db dev schema spec).find do |parent| File.exists?("#{DM_APP_ROOT}/#{parent}/fixtures") end raise "Fixtures path not found." unless fixture_path "#{DM_APP_ROOT}/#{fixture_path}/fixtures" end task :dm_app_root do p DM_APP_ROOT end desc 'Dump database fixtures' task :dump do ENV['AUTO_MIGRATE'] = 'false' Rake::Task['environment'].invoke directory fixtures_path DataMapper::Base.subclasses.each do |klass| table = database.table(klass) puts "Dumping #{table}" File.open( "#{fixtures_path}/#{table}.yaml", "w+") do |file| file.write YAML::dump(klass.all) end end end desc 'Load database fixtures' task :load do Rake::Task['environment'].invoke directory fixtures_path DataMapper::Base.subclasses.each do |klass| table = database.table(klass) file_name = "#{fixtures_path}/#{table}.yaml" next unless File.exists?( file_name ) puts "Loading #{table}" klass.delete_all File.open( file_name, "r") do |file| YAML::load(file).each do |attributes| klass.create(attributes) end end end end end end
Version data entries
5 entries across 5 versions & 1 rubygems
Version | Path |
---|---|
datamapper-0.2.4 | tasks/fixtures.rb |
datamapper-0.2.5 | tasks/fixtures.rb |
datamapper-0.3.1 | tasks/fixtures.rb |
datamapper-0.3.0 | tasks/fixtures.rb |
datamapper-0.3.2 | tasks/fixtures.rb |