cthulhu (owner)

Forks

Revisions

gist: 114038 Download_button fork
public
Public Clone URL: git://gist.github.com/114038.git
Embed All Files: show embed
extract_factories.rake #
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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