4.8.1 (September 28, 2017) Explicitly define `#destroyed?` within the `Stub` strategy to return `nil` instead of raising Update various dependencies Update internal test suite to use RSpec's mocking/stubbing instead of mocha 4.8.0 (December 16, 2016) Improve documentation Add `FactoryGirl.generate_list` to be consistent with `build_list`/`create_list` and friends Add `FactoryGirl.use_parent_strategy` configuration to allow associations to leverage parent build strategy 4.7.0 (April 1, 2016) Improve documentation Improve instrumentation payload to include traits, overrides, and the factory itself Allow linting of traits Deprecate factory lookup by class name in preparation for 5.0 Improve internal performance by using flat_map instead of map and compact Improve handling of dirty attributes after building a stubbed object Reduce warnings from redefining methods 4.6.0 (skipped) 4.5.0 (October 17, 2014) Improve FactoryBot.lint by including exception and message in output Allow selective linting Use more explicit #public_send when doing attribute assignment Improve documentation around FactoryBot.lint and initialize_with Deprecate #ignore in favor of #transient 4.4.0 (February 10, 2014) Add FactoryBot.lint Fix memory leak in duplicate traits Update documentation 4.3.0 (November 3, 2013) Start testing against Rails 4.0 and Ruby 2.0.0 Stop testing against Rails 3.0 and Ruby 1.9.2 Add *_pair methods to only build two objects Raise if a method is defined with a FactoryBot block (factory or trait) Allow use of Symbol#to_proc in callbacks Add global callbacks Improve GETTING_STARTED and README 4.2.0 (January 18, 2013) Improve documentation Allow *_list syntax methods to accept a block Update gem dependencies Allow setting id for objects created with `build_stubbed` Fix Stub strategy to mimic ActiveRecord regarding `created_at` Evaluate sequences within the context of an Evaluator Fix Mocha deprecation warning Fix some warnings when running RUBYOPT=-w rake Convert test suite to RSpec's "expect" syntax 4.1.0 (September 11, 2012) Allow multiple callbacks to bind to the same block Fix documentation surrounding the stub strategy 4.0.0 (August 3, 2012) Remove deprecated cucumber_steps Remove deprecated alternate syntaxes Deprecate duplicate_attribute_assignment_from_initialize_with, which is now unused as attributes assigned within initialize_with are not subsequently assigned 3.6.1 (August 2, 2012) Update README to include info about running with JRuby Update dependencies on RSpec and tiny versions of Rails in Appraisal Improve flexibility of using traits with associations and add documentation Stub update_column to raise to mirror ActiveRecord's change from update_attribute 3.6.0 (July 27, 2012) Code/spec cleanup Allow factories with traits to be used in associations Refactor Factory to use DefinitionHierarchy to handle managing callbacks, custom constructor, and custom to_create Add memoization to speed up factories providing attribute overrides Add initial support of JRuby when running in 1.9 mode Improve docs on what happens when including FactoryBot::Syntax::Methods 3.5.0 (June 22, 2012) Allow created_at to be set when using build_stubbed Deprecate FactoryBot step definitions 3.4.2 (June 19, 2012) Fix bug in traits with callbacks called implicitly in factories whose callbacks trigger multiple times 3.4.1 (June 18, 2012) Fix traits so they can be nested and referred to from other traits 3.4.0 (June 11, 2012) Sequences support Enumerators Optionally disable duplicate assignment of attributes in initialize_with Make hash of public attributes available in initialize_with Support referring to a factory based on class name 3.3.0 (May 13, 2012) Allow to_create, skip_create, and initialize_with to be defined globally Allow to_create, skip_create, and initialize_with to be defined within traits Fix deprecation messages for alternate syntaxes (make, generate, etc.) Improve library documentation Deprecate after_build, after_create, before_create, after_stub in favor of new callbacks Introduce new callback syntax: after(:build) {}, after(:custom) {}, or callback(:different) {} This allows for declaring any callback, usable with custom strategies Add attributes_for_list and build_stubbed_list with the StrategySyntaxMethodRegistrar Allow use of syntax methods (build, create, generate, etc) implicitly in callbacks Internal refactoring of a handful of components 3.2.0 (April 24, 2012) Use AS::Notifications for pub/sub to track running factories Call new within initialize_with implicitly on the build class Skip to_create with skip_create Allow registration of custom strategies Deprecate alternate syntaxes Implicitly call factory_bot's syntax methods from dynamic attributes 3.1.0 (April 6, 2012) Sequences support aliases, which reference the same block Update documentation Add before_create callback Support use of #attribute_names method to determine available attributes for steps Use ActiveSupport::Deprecation for all deprecations 3.0.0 (March 23, 2012) Deprecate the vintage syntax Remove Rails 2.x support Remove Ruby 1.8 support Remove deprecated features, including default_strategy, factory_name, :method for defining default strategy, ignore on individual attributes, and interacting with Factory the way you would FactoryBot 2.6.4 (March 16, 2012) Do not ignore names of transient attributes Ensure attributes set on instance are calculated uniquely 2.6.3 (March 9, 2012) Fix issue with traits not being present the first time a factory is accessed Update available Cucumber step definitions to not require a trailing colon when building a table of attributes to instantiate records with 2.6.2 (March 9, 2012) Allow factories to use all their ancestors' traits Ignore bin dir generated by bundler Namespace ::Factory as top-level to fix vintage syntax issue with Ruby 1.9.2-p3p18 2.6.1 (March 2, 2012) Use FactoryBot.reload in specs Clean up running named factories with a particular strategy with FactoryBot::FactoryRunner 2.6.0 (February 17, 2012) Improve documentation of has_many associations in the GETTING_STARTED document Deprecate :method in favor of :strategy when overriding an association's build strategy 2.5.2 (February 10, 2012) Fix step definitions to use associations defined in parent factories Add inline trait support to (build|create)_list Update ActiveSupport dependency to >= 2.3.9, which introduced class_attribute 2.5.1 (February 3, 2012) Fix attribute evaluation when the attribute isn't defined in the factory but is a private method on Object Update rubygems on Travis before running tests Fix spec name Update GETTING_STARTED with correct usage of build_stubbed Update README with more info on initialize_with Honor :parent on factory over block nesting 2.5.0 (January 20, 2012) Revert 'Deprecate build_stubbed and attributes_for' Implement initialize_with to allow overriding object instantiation Ensure FG runs against Rails 3.2.0 2.4.2 (January 18, 2012) Fix inline traits' interaction with defaults on the factory 2.4.1 (January 17, 2012) Deprecate build_stubbed and attributes_for Fix inline traits 2.4.0 (January 13, 2012) Refactor internals of FactoryBot to use anonymous class on which attributes get defined Explicitly require Ruby 1.8.7 or higher in gemspec Fix documentation Add Gemnasium status to documentation Supplying a Class to a factory that overrides to_s no longer results in getting the wrong Class constructed Be more agnostic about ORMs when using columns in FactoryBot step definitions Test against Active Record 3.2.0.rc2 Update GETTING_STARTED to use Ruby syntax highlighting 2.3.2 (November 26, 2011) Move logic of where instance.save! is set to Definition Fix method name from aliases_for? to alias_for? Refactor internal attribute handling to use an anonymous class instead of faking Ruby's variable resolution. This allows for more sane usage of attributes without having to manage sorting priority because attributes can turn themselves into procs, which are used with define_method on a class so attributes work correctly all the time. 2.3.1 (November 23, 2011) Remove internally-used associate method from all the FactoryBot::Proxy subclasses Move around requiring of files Consolidate errors into factory_bot.rb Refactor AttributeList to deal with priority only when iterating over attributes Refactor internals of some of the Proxy subclasses Ensure callbacks on traits are executed in the correct order 2.3.0 (November 18, 2011) Registries are named, resulting in better messages when factories, traits, or sequences cannot be found Fix incorrect tests Internals refactoring introducing FactoryBot::NullFactory, FactoryBot::Definition, and FactoryBot::DeclarationList Use ActiveSupport for Hash#except and its delegation capabilities Fix usage of callbacks when added via implicit traits Use Bundler tasks and clean up dependencies Fix failing spec for big letters in factory name passed as symbol Add ability for traits to be added dynamically when creating an instance via build, create, build_stubbed, or attributes_for 2.2.0 (October 14, 2011) Clean up RSpec suite to not use 'should' Use create_list in step definitions Syntax methods that deal with ORM interaction (attributes_for, build, build_stubbed, and create) now accept a block that yields the result. This results in a more convenient way to interact with the result than using Object.tap. Standardize deprecation warnings Update transient attribute syntax to use blocks instead of calling ignore on each attribute declaration Parents can be defined after children because factories are evaluated when they're used; this means breaking up factories across multiple files will behave as expected Large internal refactoring, including changing access modifiers for a handful of methods for a more clearly defined API 2.1.2 (September 23, 2011) Bugfix: Vintage syntax fixed after bug introduced in 2.1.1 Introduce dependency on activesupport to remove code from Factory class 2.1.1 (September 23, 2011) (yanked) Bugfix: Parent object callbacks are run before child object callbacks Declarations: allow overriding/modification of individual traits in child factories Callbacks refactored to not be attributes Updating documentation for formatting and clarity (incl. new specificity for cucumber) 2.1.0 (September 02, 2011) Bugfix: created_at now defined for stubbed models Gemspec updated for use with Rails 3.1 Factories can now be modified post-definition (useful for overriding defaults from gems/plugins) All factories can now be reloaded with Factory.reload Add :method => build to factory associations to prevent saving of associated objects Factories defined in {Rails.root}/factories are now loaded by default Various documentation updates 1.1.4 (November 28, 2008) Factory.build now uses Factory.create for associations of the built object Factory definitions are now detected in subdirectories, such as factories/person_factory.rb (thanks to Josh Nichols) Factory definitions are now loaded after the environment in a Rails project (fixes some issues with dependencies being loaded too early) (thanks to Josh Nichols) Factory names ending in 's' no longer cause problems (thanks to Alex Sharp and Josh Owens) 1.1.3 (September 12, 2008) Automatically pull in definitions from factories.rb, test/factories.rb, or spec/factories.rb 1.1.2 (July 30, 2008) Improved error handling for invalid and undefined factories/attributes Improved handling of strings vs symbols vs classes Added a prettier syntax for handling associations Updated documentation and fixed compatibility with Rails 2.1 1.1.1 (June 23, 2008) The attribute "name" no longer requires using #add_attribute 1.1.0 (June 03, 2008) Added support for dependent attributes Fixed the attributes_for build strategy to not build associations Added support for sequences 1.0.0 (May 31, 2008) First version