1
0
Fork 0
mirror of https://github.com/thoughtbot/factory_bot.git synced 2022-11-09 11:43:51 -05:00
A library for setting up Ruby objects as test data.
Find a file
Joshua Clayton f50550c1f0 Overrides become methods defined on each instance of the evaluator
There were some big issues with trying to undefine specific methods on
the Evaluator. After investigating maybe inheriting from BasicObject (or
ActiveSupport::BasicObject since BasicObject is 1.9+), that turned out
to be too much of a pain because it undefines almost everything,
including class and a handful of other methods necessary for Evaluator
to work properly.

The second solution was to undefine all private methods. The problem is,
when other libraries defining methods (private or otherwise) on Object
are loaded *after* factory girl, those methods get added and Evaluator
sees those methods on Object. So, that solution didn't directly work either.

This commit removes undefining methods (the sole reason of which was to
capture with method_missing and process ourselves, returning the
override or cached value) and instead introduces a new concept -
iterating over each override and defining it as a method on the
evaluator INSTANCE. This means that overrides don't collide because
they're on the instance and we don't have to worry about undefining
methods so that method_missing kicks in. This is the most stable and
guaranteed way to get this to work because the overrides are applied to
each instance at runtime.

Closes #279, #285
2012-02-03 16:48:38 -05:00
features added spec to support ORMs with 'simple columns' (Neo4j) 2012-01-13 11:33:02 -05:00
gemfiles Bump version to 2.5.0 2012-01-20 19:06:30 -05:00
lib Overrides become methods defined on each instance of the evaluator 2012-02-03 16:48:38 -05:00
spec Overrides become methods defined on each instance of the evaluator 2012-02-03 16:48:38 -05:00
.autotest Remove whitespace [Gun.io WhitespaceBot] 2011-10-21 13:40:41 -04:00
.gitignore Ignore tmp dir 2011-07-22 11:09:28 -04:00
.rspec Use rspec2 2010-11-11 15:54:14 -06:00
.travis.yml Update rubygems on travis-ci.org before running dependency installation 2012-01-29 19:56:37 +04:00
.yardopts Converted the contribution guidelines; updates to readme 2011-02-07 17:52:28 -05:00
Appraisals Update appraisal to test against Rails 3.2 2012-01-20 14:02:10 -05:00
Changelog Bump version to 2.5.0 2012-01-20 19:06:30 -05:00
CONTRIBUTION_GUIDELINES.md http => https 2012-01-12 21:23:33 +01:00
cucumber.yml Fixed issues with some attributes being skipped and added support for linked associations in step definitions 2009-09-15 16:56:20 -04:00
factory_girl.gemspec Add required_ruby_version to the Gemspec. 2012-01-12 21:28:05 +01:00
Gemfile Update gemspec to reflect proper dependencies and add Rails 3.1 coverage 2011-09-02 11:03:58 -04:00
Gemfile.lock Bump version to 2.5.0 2012-01-20 19:06:30 -05:00
GETTING_STARTED.md Change getting started doc to remove old "FactoryGirl.stub" method 2012-01-28 22:06:41 -02:00
LICENSE Added a license file 2008-06-01 11:27:59 -07:00
Rakefile date isn't necessary anymore. 2011-11-11 10:25:43 -05:00
README.md Add dependency status to README 2012-01-13 11:03:54 -05:00

factory_girl Build Status Dependency Status

factory_girl is a fixtures replacement with a straightforward definition syntax, support for multiple build strategies (saved instances, unsaved instances, attribute hashes, and stubbed objects), and support for multiple factories for the same class (user, admin_user, and so on), including factory inheritance.

If you want to use factory_girl with Rails 3, see factory_girl_rails.

Documentation

You should find the documentation for your version of factory_girl on Rubygems.

See GETTING_STARTED for information on defining and using factories.

Install

gem install factory_girl

or add the following line to Gemfile:

gem 'factory_girl'

and run bundle install from your shell.

More Information

Contributing

Please see the contribution guidelines.

Credits

factory_girl was written by Joe Ferris with contributions from several authors, including:

  • Alex Sharp
  • Eugene Bolshakov
  • Jon Yurek
  • Josh Nichols
  • Josh Owens
  • Nate Sutton
  • Josh Clayton
  • Thomas Walpole

The syntax layers are derived from software written by the following authors:

  • Pete Yandell
  • Rick Bradley
  • Yossef Mendelssohn

thoughtbot

factory_girl is maintained and funded by thoughtbot, inc

The names and logos for thoughtbot are trademarks of thoughtbot, inc.

License

factory_girl is Copyright © 2008-2011 Joe Ferris and thoughtbot. It is free software, and may be redistributed under the terms specified in the LICENSE file.