Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Merge branch 'add_generators' of https://github.com/msgehard/factory_…

  • Loading branch information...
commit e36a7c9a11f2c3c42091e23bd0996a733220a5c3 2 parents c4eab79 + 9f26cab
@mike-burns mike-burns authored
View
13 features/generators.feature
@@ -0,0 +1,13 @@
+Feature:
+ In order to easily generate factory files instead of fixture files when generating models
+ As a user of Rails3 and factory_girl
+ I would like to use factory_girl_rails generators.
+
+ Scenario: The factory_girl_rails generators create a factory file
+ for each model that I generate
+ When I successfully run `bundle exec rails new testapp`
+ And I cd to "testapp"
+ And I add "factory_girl_rails" from this project as a dependency
+ When I successfully run `bundle install`
+ And I successfully run `bundle exec rails generate model User name:string --fixture-replacement=factory_girl`
+ Then the output should contain "test/factories/users.rb"
View
11 lib/generators/factory_girl.rb
@@ -0,0 +1,11 @@
+require 'rails/generators/named_base'
+
+module FactoryGirl
+ module Generators
+ class Base < Rails::Generators::NamedBase #:nodoc:
+ def self.source_root
+ @_factory_girl_source_root ||= File.expand_path(File.join(File.dirname(__FILE__), 'factory_girl', generator_name, 'templates'))
+ end
+ end
+ end
+end
View
14 lib/generators/factory_girl/model/model_generator.rb
@@ -0,0 +1,14 @@
+require 'generators/factory_girl'
+
+module FactoryGirl
+ module Generators
+ class ModelGenerator < Base
+ argument :attributes, :type => :array, :default => [], :banner => "field:type field:type"
+ class_option :dir, :type => :string, :default => "test/factories", :desc => "The directory where the factories should go"
+
+ def create_fixture_file
+ template 'fixtures.rb', File.join(options[:dir], "#{table_name}.rb")
+ end
+ end
+ end
+end
View
9 lib/generators/factory_girl/model/templates/fixtures.rb
@@ -0,0 +1,9 @@
+# Read about factories at http://github.com/thoughtbot/factory_girl
+
+FactoryGirl.define do
+ factory :<%= singular_name %> do
+ <% for attribute in attributes -%>
+ <%= attribute.name %> <%= attribute.default.inspect %>
+ <% end -%>
+ end
+end
Please sign in to comment.
Something went wrong with that request. Please try again.