1
0
Fork 0
mirror of https://github.com/thoughtbot/factory_bot_rails.git synced 2022-11-09 11:49:18 -05:00

Move generators from rails3-generators gem over to factory_girl_rails.

This commit is contained in:
Mike Gehard 2011-07-11 21:11:06 -06:00
parent dde5502e80
commit 9f26cabfdf
4 changed files with 47 additions and 0 deletions

View file

@ -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 file

@ -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 file

@ -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 file

@ -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