![]() 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 |
||
---|---|---|
features | ||
gemfiles | ||
lib | ||
spec | ||
.autotest | ||
.gitignore | ||
.rspec | ||
.travis.yml | ||
.yardopts | ||
Appraisals | ||
Changelog | ||
CONTRIBUTION_GUIDELINES.md | ||
cucumber.yml | ||
factory_girl.gemspec | ||
Gemfile | ||
Gemfile.lock | ||
GETTING_STARTED.md | ||
LICENSE | ||
Rakefile | ||
README.md |
factory_girl

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