require 'rake' require 'rake/testtask' require 'rake/rdoctask' require 'rubygems' namespace :db do desc 'Create Factory stubs for factory girl plugin for non existing objects.' task :extract_factories => :environment do ActiveRecord::Base.establish_connection (ActiveRecord::Base.connection.tables - ["schema_info"]).each do |table_name| file_name = "#{RAILS_ROOT}/test/factories/#{table_name.singularize}.rb" next if File.exists?( file_name ) File.open(file_name, 'w') do |file| columns = ActiveRecord::Schema.columns table_name model_name = table_name.singularize.split(/\_/).collect{ |word| word.capitalize }.to_s factory_file_content = %Q! Factory.define :#{table_name.singularize}, :class => #{model_name} do |#{table_name.singularize}| ! columns.each do |column| value = column.default || "Have no default value" factory_file_content << " #{table_name.singularize}.#{column.name} = \"#{value}\"\n" end factory_file_content << "\nend\n" file.write factory_file_content end end end end