factory_bot 6.5.1 → 6.5.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/NEWS.md CHANGED
@@ -1,477 +1,593 @@
1
1
  # News
2
2
 
3
+ ## 6.5.6 (October 22, 2025)
4
+
5
+ * Fix: Enforce association override precedence over trait foreign keys by @JinOketani in [#1768](https://github.com/thoughtbot/factory_bot/pull/1768)
6
+ * Build: Add ostruct as a development dependency by @ydah in [#1778](https://github.com/thoughtbot/factory_bot/pull/1778)
7
+ * Build: Bump standard from v1.44.0 to v1.51.1 by @ydah in [#1779](https://github.com/thoughtbot/factory_bot/pull/1779)
8
+ * Build: Add Ruby 3.4 to CI matrix by @ydah in [#1780](https://github.com/thoughtbot/factory_bot/pull/1780)
9
+ * Build: Remove unnecessary development dependencies by @ydah in [#1781](https://github.com/thoughtbot/factory_bot/pull/1781)
10
+ * Build: update gem versions and dependencies by @ydah in [#1782](https://github.com/thoughtbot/factory_bot/pull/1782)
11
+ * Build: revert removal of mutex_m by @vburzynski in [#1784](https://github.com/thoughtbot/factory_bot/pull/1784)
12
+ * Refactor: factory calculator cleanup by @vburzynski in [#1770](https://github.com/thoughtbot/factory_bot/pull/1770)
13
+ * Chore(ci): Bump actions/checkout from 4 to 5 by @dependabot[bot] in [#1765](https://github.com/thoughtbot/factory_bot/pull/1765)
14
+ * Chore(specs): tag slow specs by @vburzynski in [#1776](https://github.com/thoughtbot/factory_bot/pull/1776)
15
+ * Docs: Update RELEASING.md by @vburzynski in [#1763](https://github.com/thoughtbot/factory_bot/pull/1763)
16
+ * Docs: Update link to FactoryGirl upgrade guide by @imRohan in [#1769](https://github.com/thoughtbot/factory_bot/pull/1769)
17
+ * Docs: Fix some typos by @ydah in [#1783](https://github.com/thoughtbot/factory_bot/pull/1783)
18
+ * Docs(yard): resolve yard doc warnings by @vburzynski in [#1764](https://github.com/thoughtbot/factory_bot/pull/1764)
19
+ * Docs(yard): ruby syntax highlighting in yard docs by @djbender in [#1777](https://github.com/thoughtbot/factory_bot/pull/1777)
20
+
21
+ ## 6.5.5 (August 15, 2025)
22
+
23
+ * Feat: Adds developer console features (CodeMeister)
24
+ * adds `bin/setup` to run bundle install
25
+ * adds `bin/console` to open an IRB console with factory_bot loaded
26
+ * adds a session method `reload!` will reload all gem files.
27
+ * Feat: Before(:all) and after(:all) callbacks added (CodeMeister)
28
+ * Feat: Adds support for before build callback (Mohammed Nasser and Neil Carvalho)
29
+ * Feat: Adds support for lazy loaded initial value sequences (AJ Esler)
30
+ * Fix: Refactors the removal of files from the loaded register in `.irbrc` (CodeMeister)
31
+ * Fix: Improves the sequence handling with better context support (CodeMeister)
32
+ * Fixes issue #1754 where `#generate` was throwing an error
33
+ * Refactors the `#increment_sequence` method to remove the URI requirement
34
+ * Fix: Cleans up ActiveSupport core extensions (Neil Carvalho)
35
+ * Fix: Addresses issue #1709 with resolution of conflict between '<attribute>' and '<attribute_id>` (CodeMeister)
36
+ * Fix: Addresses issue #1712 by ensuring callbacks only run once per instance (CodeMeister)
37
+ * Docs: Downcase of the word "constants" in `.irbrc` file (CodeMeister)
38
+ * Docs: Update docs with note clarifying when the full namespace is required in a factory (John Pitchko)
39
+ * Chore: Add new maintainers to CODEOWNERS (Ajina Slater)
40
+
41
+ ## 6.5.4 (June 13, 2025)
42
+
43
+ * Fix bug where user-defined method named `definition` could not be set through `method_missing` in factories. (CodeMeister)
44
+
45
+ ## 6.5.3 (June 2, 2025)
46
+
47
+ * Fix: Factory sequences without blocks (CodeMeister)
48
+ * Added: New methods for setting, generating and rewinding sequences (CodeMeister)
49
+
50
+ ## 6.5.2 (May 30, 2025)
51
+
52
+ * Changed: Updated "verbose linting" test to allow for backtrace changes in Ruby 3.4 (CodeMeister)
53
+ * Fix: Set the same timestamps for `created_at` and `updated_at` on `build_stubbed` (Kim Emmanuel)
54
+ * Fix: Refactored sequences to ensure cloned traits use parent sequences. (CodeMeister)
55
+ * Docs: Fix definition_file_paths comment (Milo Winningham)
56
+ * Docs: Add ruby-lsp extensions to Useful Tools in README.md (johansenja)
57
+ * Docs: Fix docs about definition file paths (Ryo Nakamura)
58
+ * Docs: Update has_many-associations.md to mention that traits can use inline associations (Matthew Zagaja)
59
+ * Docs: Fix "Transitioning from Factory Girl" guide link (Neil Carvalho)
60
+
3
61
  ## 6.5.1 (January 31, 2025)
4
62
 
5
- * Changed: execute linting tests within ActiveRecord transactions when available (Sean Doyle)
6
- * Fix: Random test failure when tracking compilation time (CodeMeinster)
7
- * Fix: Bump the minimum required activesupport version to 6.1 (Earlopain)
8
- * Internal: Update development dependencies (Neil Carvalho)
63
+ * Changed: execute linting tests within ActiveRecord transactions when available (Sean Doyle)
64
+ * Fix: Random test failure when tracking compilation time (CodeMeister)
65
+ * Fix: Bump the minimum required activesupport version to 6.1 (Earlopain)
66
+ * Internal: Update development dependencies (Neil Carvalho)
9
67
 
10
68
  ## 6.5.0 (September 6, 2024)
11
69
 
12
- * fix: issue 1621 broken links in ref/factory.md by @elasticspoon in https://github.com/thoughtbot/factory_bot/pull/1623
13
- * Add standard settings by @ydah in https://github.com/thoughtbot/factory_bot/pull/1625
14
- * Call dynamic-readme reusable workflow by @stefannibrasil in https://github.com/thoughtbot/factory_bot/pull/1628
15
- * Update README again by @stefannibrasil in https://github.com/thoughtbot/factory_bot/pull/1630
16
- * Only run this workflow if the README has been updated by @stefannibrasil in https://github.com/thoughtbot/factory_bot/pull/1635
17
- * Automatically Generated: Update Dynamic Section in README by @github-actions in https://github.com/thoughtbot/factory_bot/pull/1637
18
- * Added a case for build_class to handle class names with underscores passed as a string by @m-gizzi in https://github.com/thoughtbot/factory_bot/pull/1642
19
- * Add Ruby 3.3 to CI by @berkos in https://github.com/thoughtbot/factory_bot/pull/1615
20
- * Update Dependabot configuration by @smaboshe in https://github.com/thoughtbot/factory_bot/pull/1655
21
- * Add new maintainers to CODEOWNERS by @sarahraqueld in https://github.com/thoughtbot/factory_bot/pull/1651
22
- * Improve docs formatting and fix filename conflicts by @sarahraqueld in https://github.com/thoughtbot/factory_bot/pull/1666
23
- * Add a dynamic security workflow and a SECURITY.md file by @sarahraqueld in https://github.com/thoughtbot/factory_bot/pull/1677
24
- * Automatically Generated: Update Dynamic Section in SECURITY by @github-actions in https://github.com/thoughtbot/factory_bot/pull/1678
25
- * Ensure rails 7.2 compatibility by @Earlopain in https://github.com/thoughtbot/factory_bot/pull/1686
26
- * Fix the factory definition in traits documentation by @ddieulivol in https://github.com/thoughtbot/factory_bot/pull/1688
70
+ * fix: issue 1621 broken links in ref/factory.md by @elasticspoon in https://github.com/thoughtbot/factory_bot/pull/1623
71
+ * Add standard settings by @ydah in https://github.com/thoughtbot/factory_bot/pull/1625
72
+ * Call dynamic-readme reusable workflow by @stefannibrasil in https://github.com/thoughtbot/factory_bot/pull/1628
73
+ * Update README again by @stefannibrasil in https://github.com/thoughtbot/factory_bot/pull/1630
74
+ * Only run this workflow if the README has been updated by @stefannibrasil in https://github.com/thoughtbot/factory_bot/pull/1635
75
+ * Automatically Generated: Update Dynamic Section in README by @github-actions in https://github.com/thoughtbot/factory_bot/pull/1637
76
+ * Added a case for build_class to handle class names with underscores passed as a string by @m-gizzi in https://github.com/thoughtbot/factory_bot/pull/1642
77
+ * Add Ruby 3.3 to CI by @berkos in https://github.com/thoughtbot/factory_bot/pull/1615
78
+ * Update Dependabot configuration by @smaboshe in https://github.com/thoughtbot/factory_bot/pull/1655
79
+ * Add new maintainers to CODEOWNERS by @sarahraqueld in https://github.com/thoughtbot/factory_bot/pull/1651
80
+ * Improve docs formatting and fix filename conflicts by @sarahraqueld in https://github.com/thoughtbot/factory_bot/pull/1666
81
+ * Add a dynamic security workflow and a SECURITY.md file by @sarahraqueld in https://github.com/thoughtbot/factory_bot/pull/1677
82
+ * Automatically Generated: Update Dynamic Section in SECURITY by @github-actions in https://github.com/thoughtbot/factory_bot/pull/1678
83
+ * Ensure rails 7.2 compatibility by @Earlopain in https://github.com/thoughtbot/factory_bot/pull/1686
84
+ * Fix the factory definition in traits documentation by @ddieulivol in https://github.com/thoughtbot/factory_bot/pull/1688
27
85
 
28
86
  ## 6.4.6 (January 30, 2023)
29
87
 
30
- * Fix: Bump minimum required Ruby in gemspec (Earlopain).
31
- * Fix: Broken link in `FactoryBot.modify` docs (Matt Brictson).
32
- * Fix: Broken link in `FactoryBot.lint` docs (Anton Dieterle).
88
+ * Fix: Bump minimum required Ruby in gemspec (Earlopain).
89
+ * Fix: Broken link in `FactoryBot.modify` docs (Matt Brictson).
90
+ * Fix: Broken link in `FactoryBot.lint` docs (Anton Dieterle).
33
91
 
34
92
  ## 6.4.5 (December 29, 2023)
35
93
 
36
- * Changed: Support Ruby 3.0+, Rails 6.1+ (Mike Burns).
94
+ * Changed: Support Ruby 3.0+, Rails 6.1+ (Mike Burns).
37
95
 
38
96
  ## 6.4.4 (December 27, 2023)
39
97
 
40
- * Internal: Remove observer dependency (Earlopain).
98
+ * Internal: Remove observer dependency (Earlopain).
41
99
 
42
100
  ## 6.4.3 (December 26, 2023)
43
101
 
44
- * Fix: Support models without ID setters in build_stubbed (Olivier Bellone).
45
- * Fix: Explicit observer dependency (Oleg Antonyan).
46
- * Internal: Add Rails 7.1 to CI (Olivier Bellone).
47
- * Internal: Bump github actions/checkout to v4 (Lorenzo Zabot)
48
- * Internal: Stop passing disable-error_highlight in CI (Mike Burns).
49
- * Internal: Relax the exception message check (Mike Burns).
102
+ * Fix: Support models without ID setters in build_stubbed (Olivier Bellone).
103
+ * Fix: Explicit observer dependency (Oleg Antonyan).
104
+ * Internal: Add Rails 7.1 to CI (Olivier Bellone).
105
+ * Internal: Bump github actions/checkout to v4 (Lorenzo Zabot)
106
+ * Internal: Stop passing disable-error_highlight in CI (Mike Burns).
107
+ * Internal: Relax the exception message check (Mike Burns).
50
108
 
51
109
  ## 6.4.2 (November 22, 2023)
52
110
 
53
- * Fix: top-level traits pass their class to ActiveSupport::Notifications
54
- (makicamel).
111
+ * Fix: top-level traits pass their class to ActiveSupport::Notifications (makicamel).
55
112
 
56
113
  ## 6.4.1 (November 20, 2023)
57
114
 
58
- * Fix: factories with traits pass their class to ActiveSupport::Notifications
59
- (makicamel).
115
+ * Fix: factories with traits pass their class to ActiveSupport::Notifications
116
+ (makicamel).
60
117
 
61
118
  ## 6.4.0 (November 17, 2023)
62
119
 
63
- * Added: if `build_stubbed` detects a UUID primary key, generate the correct
64
- type (Peter Boling, Alexandre Ruban).
65
- * Docs: show examples of Ruby 3 syntactic sugars (Sean Doyle).
66
- * Internal: resolve test warning messages (Mike Burns).
67
-
120
+ * Added: if `build_stubbed` detects a UUID primary key, generate the correct
121
+ type (Peter Boling, Alexandre Ruban).
122
+ * Docs: show examples of Ruby 3 syntactic sugars (Sean Doyle).
123
+ * Internal: resolve test warning messages (Mike Burns).
68
124
 
69
125
  ## 6.3.0 (September 1, 2023)
70
126
 
71
- * Fix: link to changelog for RubyGems (Berkan Ünal).
72
- * Fix: integrate with Ruby 3.2's `did_you_mean` library (Daniel Colson).
73
- * Changed: explicitly define `#destroyed?` within the `Stub` strategy to return `false` to be consistent
74
- with ActiveRecord (Benjamin Fleischer).
75
- * Added: announce `factory_bot.compile_factory` notification (Sean Doyle).
76
- * Docs: clarify that custom strategies need to define `#to_sym` (Edmund Korley, Jonas S).
77
- * Docs: fix CI link in README (Mark Huk).
78
- * Docs: fix GitHub links (Robert Fletcher).
79
- * Docs: install this library with `bundle add` (Glauco Custódio).
80
- * Docs: re-write into mdBook (Mike Burns, Sara Jackson, Stefanni Brasil)
81
- * Docs: clarify that automatic trait definitions could introduce new linting errors (Lawrence Chou).
82
- * Internal: skip TruffleRuby on Rails 5.0, 5.1, 5.2 (Andrii Konchyn).
83
- * Internal: fix typoes throughout codebase (Yudai Takada).
84
- * Internal: run CI on `actions/checkout` v3 (Yudai Takada).
85
- * Internal: follow standardrb code style (Yudai Takada).
86
- * Internal: stop using Hound (Daniel Nolan).
87
- * Internal: only run simplecov on C Ruby (Daniel Colson).
88
- * Internal: quieter Cucumber (Daniel Colson).
89
- * Internal: Ruby 3.2 support (Daniel Colson).
90
- * Internal: Mike Burns is the CODEOWNER (Stefanni Brasil).
127
+ * Fix: link to changelog for RubyGems (Berkan Ünal).
128
+ * Fix: integrate with Ruby 3.2's `did_you_mean` library (Daniel Colson).
129
+ * Changed: explicitly define `#destroyed?` within the `Stub` strategy to return `false` to be consistent
130
+ with ActiveRecord (Benjamin Fleischer).
131
+ * Added: announce `factory_bot.compile_factory` notification (Sean Doyle).
132
+ * Docs: clarify that custom strategies need to define `#to_sym` (Edmund Korley, Jonas S).
133
+ * Docs: fix CI link in README (Mark Huk).
134
+ * Docs: fix GitHub links (Robert Fletcher).
135
+ * Docs: install this library with `bundle add` (Glauco Custódio).
136
+ * Docs: re-write into mdBook (Mike Burns, Sara Jackson, Stefanni Brasil)
137
+ * Docs: clarify that automatic trait definitions could introduce new linting errors (Lawrence Chou).
138
+ * Internal: skip TruffleRuby on Rails 5.0, 5.1, 5.2 (Andrii Konchyn).
139
+ * Internal: fix typos throughout codebase (Yudai Takada).
140
+ * Internal: run CI on `actions/checkout` v3 (Yudai Takada).
141
+ * Internal: follow standardrb code style (Yudai Takada).
142
+ * Internal: stop using Hound (Daniel Nolan).
143
+ * Internal: only run simplecov on C Ruby (Daniel Colson).
144
+ * Internal: quieter Cucumber (Daniel Colson).
145
+ * Internal: Ruby 3.2 support (Daniel Colson).
146
+ * Internal: Mike Burns is the CODEOWNER (Stefanni Brasil).
91
147
 
92
148
  ## 6.2.1 (March 8, 2022)
93
- * Added: CI testing against truffleruby
94
- * Changed: Documentation improvements for sequences and traits
95
- * Fixed: ActiveSupport::Notifications reporting strategy through associations now report as symbols
96
- * BREAKING CHANGE: Custom strategies now need to define a `to_sym` method to specify the strategy identifier
97
- * Fixed: `add_attribute` with reserved keywords assigns values correctly
149
+
150
+ * Added: CI testing against truffleruby
151
+ * Changed: Documentation improvements for sequences and traits
152
+ * Fixed: ActiveSupport::Notifications reporting strategy through associations now report as symbols
153
+ * BREAKING CHANGE: Custom strategies now need to define a `to_sym` method to specify the strategy identifier
154
+ * Fixed: `add_attribute` with reserved keywords assigns values correctly
98
155
 
99
156
  ## 6.2.0 (May 7, 2021)
100
- * Added: support for Ruby 3.0
101
- * Changed: Include factory or trait name in error messages for missing traits. d05a9a3c
102
- * Changed: Switched from Travis CI to GitHub Actions
103
- * Fixed: More Ruby 2.7 kwarg deprecation warnings
157
+
158
+ * Added: support for Ruby 3.0
159
+ * Changed: Include factory or trait name in error messages for missing traits. d05a9a3c
160
+ * Changed: Switched from Travis CI to GitHub Actions
161
+ * Fixed: More Ruby 2.7 kwarg deprecation warnings
104
162
 
105
163
  ## 6.1.0 (July 8, 2020)
106
- * Added: public reader for the evaluation instance, helpful for building interrelated associations
107
- * Changed: raise a more helpful error when passing an invalid argument to an association
108
- * Fixed: Ruby 2.7 kwarg deprecation warnings
164
+
165
+ * Added: public reader for the evaluation instance, helpful for building interrelated associations
166
+ * Changed: raise a more helpful error when passing an invalid argument to an association
167
+ * Fixed: Ruby 2.7 kwarg deprecation warnings
109
168
 
110
169
  ## 6.0.2 (June 19, 2020)
111
- * Fixed: bug causing traits to consume more memory each time they were used
170
+
171
+ * Fixed: bug causing traits to consume more memory each time they were used
112
172
 
113
173
  ## 6.0.1 (June 19, 2020)
114
- * Fixed: bug with constant resolution causing unexpected uninitialized constant errors
174
+
175
+ * Fixed: bug with constant resolution causing unexpected uninitialized constant errors
115
176
 
116
177
  ## 6.0.0 (June 18, 2020)
117
- * Added: automatic definition of traits for Active Record enum attributes, enabled by default
118
- (Note that this required changing where factory_bot constantizes the build
119
- class, which may affect applications that were using abstract factories for
120
- inheritance. See issue #1409.) (This may break `FactoryBot.lint` because
121
- there may be previously non-existing factory+trait combinations being
122
- defined and checked)
123
- * Added: `traits_for_enum` method to define traits for non-Active Record enums
124
- * Added: `build_stubbed_starting_id=` option to define the starting id for `build_stubbed`
125
- * Removed: deprecated methods on the top-level `FactoryBot` module meant only for internal use
126
- * Removed: support for EOL versions of Ruby (2.3, 2.4) and Rails (4.2)
127
- * Removed: support for "abstract" factories with no associated class; use traits instead.
178
+
179
+ * Added: automatic definition of traits for Active Record enum attributes, enabled by default
180
+ (Note that this required changing where factory_bot constantizes the build
181
+ class, which may affect applications that were using abstract factories for
182
+ inheritance. See issue #1409.) (This may break `FactoryBot.lint` because
183
+ there may be previously non-existing factory+trait combinations being
184
+ defined and checked)
185
+ * Added: `traits_for_enum` method to define traits for non-Active Record enums
186
+ * Added: `build_stubbed_starting_id=` option to define the starting id for `build_stubbed`
187
+ * Removed: deprecated methods on the top-level `FactoryBot` module meant only for internal use
188
+ * Removed: support for EOL versions of Ruby (2.3, 2.4) and Rails (4.2)
189
+ * Removed: support for "abstract" factories with no associated class; use traits instead.
128
190
 
129
191
  ## 5.2.0 (April 24, 2020)
130
- * Added: Pass index to block for `*_list` methods
131
- * Deprecated: methods on the top-level `FactoryBot` module meant only for internal use: `callbacks`, `configuration`, `constructor`, `initialize_with`, `register_sequence`, `resent_configuration`, `skip_create`, `to_create`
192
+
193
+ * Added: Pass index to block for `*_list` methods
194
+ * Deprecated: methods on the top-level `FactoryBot` module meant only for internal use: `callbacks`, `configuration`, `constructor`, `initialize_with`, `register_sequence`, `resent_configuration`, `skip_create`, `to_create`
132
195
 
133
196
  ## 5.1.2 (March 25, 2020)
134
- * Fixed: Ruby 2.7 keyword deprecation warning in FactoryBot.lint
197
+
198
+ * Fixed: Ruby 2.7 keyword deprecation warning in FactoryBot.lint
135
199
 
136
200
  ## 5.1.1 (October 2, 2019)
137
- * Improved: performance of traits
138
- * Fixed: registering strategies on JRuby
201
+
202
+ * Improved: performance of traits
203
+ * Fixed: registering strategies on JRuby
139
204
 
140
205
  ## 5.1.0 (September 21, 2019)
141
- * Added: "Did you mean?" style error message to help with typos in association declarations
142
- * Changed: `NoMethodError` for static attributes now offers a "Did you mean?" style message
143
- * Fixed: avoid undefining inherited evaluator methods
144
- * Fixed: avoid stubbing id for records without a primary key
145
- * Fixed: raise a helpful error for self-referencing traits to avoid a `SystemStackError`
146
- * Deprecated: methods on the top-level `FactoryBot` module meant only for internal use: `allow_class_lookup`, `allow_class_lookup`=, `register_trait`, `trait_by_name`, `traits`, `sequence_by_name`, `sequences`, `factory_by_name`, `register_factory`, `callback_names`, `register_callback`, `register_default_callbacks`, `register_default_strategies`, `strategies`
206
+
207
+ * Added: "Did you mean?" style error message to help with typos in association declarations
208
+ * Changed: `NoMethodError` for static attributes now offers a "Did you mean?" style message
209
+ * Fixed: avoid undefining inherited evaluator methods
210
+ * Fixed: avoid stubbing id for records without a primary key
211
+ * Fixed: raise a helpful error for self-referencing traits to avoid a `SystemStackError`
212
+ * Deprecated: methods on the top-level `FactoryBot` module meant only for internal use: `allow_class_lookup`, `allow_class_lookup`=, `register_trait`, `trait_by_name`, `traits`, `sequence_by_name`, `sequences`, `factory_by_name`, `register_factory`, `callback_names`, `register_callback`, `register_default_callbacks`, `register_default_strategies`, `strategies`
147
213
 
148
214
  ## 5.0.2 (February 22, 2019)
149
- * Bugfix: raise "Trait not registered" error when passing invalid trait arguments
215
+
216
+ * Bugfix: raise "Trait not registered" error when passing invalid trait arguments
150
217
 
151
218
  ## 5.0.1 (February 15, 2019)
152
- * Bugfix: Do not raise error when two sequences have the same name
153
- in two traits that have the same name
219
+
220
+ * Bugfix: Do not raise error when two sequences have the same name
221
+ in two traits that have the same name
154
222
 
155
223
  ## 5.0.0 (February 1, 2019)
156
- * Added: Verbose option to include full backtraces in the linting output
157
- * Changed: use_parent_strategy now defaults to true, so by default the
158
- build strategy will build, rather than create associations
159
- * Changed: Passing a block when defining associations now raises an error
160
- * Bugfix: use_parent_strategy is no longer reset by FactoryBot.reload
161
- * Bugfix: rewind_sequences will now rewind local sequences along with the global ones
162
- * Bugfix: the build_stubbed strategy now sets timestamps without changing the
163
- the original behavior of the timestamp methods
164
- * Bugfix: avoid a stack error when referring to an "attributes" attribute in initialize_with
165
- * Removed: support for EOL versions of Ruby and Rails
166
- * Removed: static attributes (use dynamic attributes with a block instead)
167
- * Removed: looking up factories by class
168
- * Removed: ignore method (use transient instead)
169
- * Removed: duplicate_attribute_assignment_from_initialize_with configuration option
170
- * Deprecated: allow_class_lookup configuration option
224
+
225
+ * Added: Verbose option to include full backtraces in the linting output
226
+ * Changed: use_parent_strategy now defaults to true, so by default the
227
+ build strategy will build, rather than create associations
228
+ * Changed: Passing a block when defining associations now raises an error
229
+ * Bugfix: use_parent_strategy is no longer reset by FactoryBot.reload
230
+ * Bugfix: rewind_sequences will now rewind local sequences along with the global ones
231
+ * Bugfix: the build_stubbed strategy now sets timestamps without changing the
232
+ the original behavior of the timestamp methods
233
+ * Bugfix: avoid a stack error when referring to an "attributes" attribute in initialize_with
234
+ * Removed: support for EOL versions of Ruby and Rails
235
+ * Removed: static attributes (use dynamic attributes with a block instead)
236
+ * Removed: looking up factories by class
237
+ * Removed: ignore method (use transient instead)
238
+ * Removed: duplicate_attribute_assignment_from_initialize_with configuration option
239
+ * Deprecated: allow_class_lookup configuration option
171
240
 
172
241
  ## 4.11.1 (September 7, 2018)
173
- * Documentation: Include .yardopts in the gem to fix broken RubyDoc links
242
+
243
+ * Documentation: Include .yardopts in the gem to fix broken RubyDoc links
174
244
 
175
245
  ## 4.11.0 (August, 15, 2018)
176
- * Bugfix: Do not raise error for valid build_stubbed methods: decrement, increment, and toggle
177
- * Bugfix: Do not add timestamps with build_stubbed for objects that shouldn't have timestamps
178
- * Deprecate static attributes
246
+
247
+ * Bugfix: Do not raise error for valid build_stubbed methods: decrement, increment, and toggle
248
+ * Bugfix: Do not add timestamps with build_stubbed for objects that shouldn't have timestamps
249
+ * Deprecate static attributes
179
250
 
180
251
  ## 4.10.0 (May 25, 2018)
181
- * Allow sequences to be rewound
252
+
253
+ * Allow sequences to be rewound
182
254
 
183
255
  ## 4.9.0 (skipped - FactoryGirl only release)
184
256
 
185
257
  ## 4.8.2 (October 20, 2017)
186
- * Rename factory_girl to factory_bot
258
+
259
+ * Rename factory_girl to factory_bot
187
260
 
188
261
  ## 4.8.1 (September 28, 2017)
189
- * Explicitly define `#destroyed?` within the `Stub` strategy to return `nil` instead of raising
190
- * Update various dependencies
191
- * Update internal test suite to use RSpec's mocking/stubbing instead of mocha
262
+
263
+ * Explicitly define `#destroyed?` within the `Stub` strategy to return `nil` instead of raising
264
+ * Update various dependencies
265
+ * Update internal test suite to use RSpec's mocking/stubbing instead of mocha
192
266
 
193
267
  ## 4.8.0 (December 16, 2016)
194
- * Improve documentation
195
- * Add `FactoryGirl.generate_list` to be consistent with `build_list`/`create_list` and friends
196
- * Add `FactoryGirl.use_parent_strategy` configuration to allow associations to leverage parent build strategy
268
+
269
+ * Improve documentation
270
+ * Add `FactoryGirl.generate_list` to be consistent with `build_list`/`create_list` and friends
271
+ * Add `FactoryGirl.use_parent_strategy` configuration to allow associations to leverage parent build strategy
197
272
 
198
273
  ## 4.7.0 (April 1, 2016)
199
- * Improve documentation
200
- * Improve instrumentation payload to include traits, overrides, and the factory itself
201
- * Allow linting of traits
202
- * Deprecate factory lookup by class name in preparation for 5.0
203
- * Improve internal performance by using flat_map instead of map and compact
204
- * Improve handling of dirty attributes after building a stubbed object
205
- * Reduce warnings from redefining methods
274
+
275
+ * Improve documentation
276
+ * Improve instrumentation payload to include traits, overrides, and the factory itself
277
+ * Allow linting of traits
278
+ * Deprecate factory lookup by class name in preparation for 5.0
279
+ * Improve internal performance by using flat_map instead of map and compact
280
+ * Improve handling of dirty attributes after building a stubbed object
281
+ * Reduce warnings from redefining methods
206
282
 
207
283
  ## 4.6.0 (skipped)
208
284
 
209
285
  ## 4.5.0 (October 17, 2014)
210
- * Improve FactoryGirl.lint by including exception and message in output
211
- * Allow selective linting
212
- * Use more explicit #public_send when doing attribute assignment
213
- * Improve documentation around FactoryGirl.lint and initialize_with
214
- * Deprecate #ignore in favor of #transient
286
+
287
+ * Improve FactoryGirl.lint by including exception and message in output
288
+ * Allow selective linting
289
+ * Use more explicit #public_send when doing attribute assignment
290
+ * Improve documentation around FactoryGirl.lint and initialize_with
291
+ * Deprecate #ignore in favor of #transient
215
292
 
216
293
  ## 4.4.0 (February 10, 2014)
217
- * Add FactoryGirl.lint
218
- * Fix memory leak in duplicate traits
219
- * Update documentation
294
+
295
+ * Add FactoryGirl.lint
296
+ * Fix memory leak in duplicate traits
297
+ * Update documentation
220
298
 
221
299
  ## 4.3.0 (November 3, 2013)
222
- * Start testing against Rails 4.0 and Ruby 2.0.0
223
- * Stop testing against Rails 3.0 and Ruby 1.9.2
224
- * Add `*_pair` methods to only build two objects
225
- * Raise if a method is defined with a FactoryGirl block (factory or trait)
226
- * Allow use of Symbol#to_proc in callbacks
227
- * Add global callbacks
228
- * Improve GETTING_STARTED and README
300
+
301
+ * Start testing against Rails 4.0 and Ruby 2.0.0
302
+ * Stop testing against Rails 3.0 and Ruby 1.9.2
303
+ * Add `*_pair` methods to only build two objects
304
+ * Raise if a method is defined with a FactoryGirl block (factory or trait)
305
+ * Allow use of Symbol#to_proc in callbacks
306
+ * Add global callbacks
307
+ * Improve GETTING_STARTED and README
229
308
 
230
309
  ## 4.2.0 (January 18, 2013)
231
- * Improve documentation
232
- * Allow `*_list` syntax methods to accept a block
233
- * Update gem dependencies
234
- * Allow setting id for objects created with `build_stubbed`
235
- * Fix Stub strategy to mimic ActiveRecord regarding `created_at`
236
- * Evaluate sequences within the context of an Evaluator
237
- * Fix Mocha deprecation warning
238
- * Fix some warnings when running RUBYOPT=-w rake
239
- * Convert test suite to RSpec's "expect" syntax
310
+
311
+ * Improve documentation
312
+ * Allow `*_list` syntax methods to accept a block
313
+ * Update gem dependencies
314
+ * Allow setting id for objects created with `build_stubbed`
315
+ * Fix Stub strategy to mimic ActiveRecord regarding `created_at`
316
+ * Evaluate sequences within the context of an Evaluator
317
+ * Fix Mocha deprecation warning
318
+ * Fix some warnings when running RUBYOPT=-w rake
319
+ * Convert test suite to RSpec's "expect" syntax
240
320
 
241
321
  ## 4.1.0 (September 11, 2012)
242
- * Allow multiple callbacks to bind to the same block
243
- * Fix documentation surrounding the stub strategy
322
+
323
+ * Allow multiple callbacks to bind to the same block
324
+ * Fix documentation surrounding the stub strategy
244
325
 
245
326
  ## 4.0.0 (August 3, 2012)
246
- * Remove deprecated cucumber_steps
247
- * Remove deprecated alternate syntaxes
248
- * Deprecate duplicate_attribute_assignment_from_initialize_with, which is now unused
249
- as attributes assigned within initialize_with are not subsequently assigned
327
+
328
+ * Remove deprecated cucumber_steps
329
+ * Remove deprecated alternate syntaxes
330
+ * Deprecate duplicate_attribute_assignment_from_initialize_with, which is now unused
331
+ as attributes assigned within initialize_with are not subsequently assigned
250
332
 
251
333
  ## 3.6.1 (August 2, 2012)
252
- Update README to include info about running with JRuby
253
- * Update dependencies on RSpec and tiny versions of Rails in Appraisal
254
- * Improve flexibility of using traits with associations and add documentation
255
- * Stub update_column to raise to mirror ActiveRecord's change from update_attribute
334
+
335
+ Update README to include info about running with JRuby
336
+ * Update dependencies on RSpec and tiny versions of Rails in Appraisal
337
+ * Improve flexibility of using traits with associations and add documentation
338
+ * Stub update_column to raise to mirror ActiveRecord's change from update_attribute
256
339
 
257
340
  ## 3.6.0 (July 27, 2012)
258
- * Code/spec cleanup
259
- * Allow factories with traits to be used in associations
260
- * Refactor Factory to use DefinitionHierarchy to handle managing callbacks,
261
- custom constructor, and custom to_create
262
- * Add memoization to speed up factories providing attribute overrides
263
- * Add initial support of JRuby when running in 1.9 mode
264
- * Improve docs on what happens when including FactoryGirl::Syntax::Methods
341
+
342
+ * Code/spec cleanup
343
+ * Allow factories with traits to be used in associations
344
+ * Refactor Factory to use DefinitionHierarchy to handle managing callbacks,
345
+ custom constructor, and custom to_create
346
+ * Add memoization to speed up factories providing attribute overrides
347
+ * Add initial support of JRuby when running in 1.9 mode
348
+ * Improve docs on what happens when including FactoryGirl::Syntax::Methods
265
349
 
266
350
  ## 3.5.0 (June 22, 2012)
267
- * Allow created_at to be set when using build_stubbed
268
- * Deprecate FactoryGirl step definitions
351
+
352
+ * Allow created_at to be set when using build_stubbed
353
+ * Deprecate FactoryGirl step definitions
269
354
 
270
355
  ## 3.4.2 (June 19, 2012)
271
- * Fix bug in traits with callbacks called implicitly in factories whose
272
- callbacks trigger multiple times
356
+
357
+ * Fix bug in traits with callbacks called implicitly in factories whose
358
+ callbacks trigger multiple times
273
359
 
274
360
  ## 3.4.1 (June 18, 2012)
275
- * Fix traits so they can be nested and referred to from other traits
361
+
362
+ * Fix traits so they can be nested and referred to from other traits
276
363
 
277
364
  ## 3.4.0 (June 11, 2012)
278
- * Sequences support Enumerators
279
- * Optionally disable duplicate assignment of attributes in initialize_with
280
- * Make hash of public attributes available in initialize_with
281
- * Support referring to a factory based on class name
365
+
366
+ * Sequences support Enumerators
367
+ * Optionally disable duplicate assignment of attributes in initialize_with
368
+ * Make hash of public attributes available in initialize_with
369
+ * Support referring to a factory based on class name
282
370
 
283
371
  ## 3.3.0 (May 13, 2012)
284
- * Allow to_create, skip_create, and initialize_with to be defined globally
285
- * Allow to_create, skip_create, and initialize_with to be defined within traits
286
- * Fix deprecation messages for alternate syntaxes (make, generate, etc.)
287
- * Improve library documentation
288
- * Deprecate after_build, after_create, before_create, after_stub in favor of new callbacks
289
- * Introduce new callback syntax: after(:build) {}, after(:custom) {}, or callback(:different) {}
290
- This allows for declaring any callback, usable with custom strategies
291
- * Add attributes_for_list and build_stubbed_list with the StrategySyntaxMethodRegistrar
292
- * Allow use of syntax methods (build, create, generate, etc) implicitly in callbacks
293
- * Internal refactoring of a handful of components
372
+
373
+ * Allow to_create, skip_create, and initialize_with to be defined globally
374
+ * Allow to_create, skip_create, and initialize_with to be defined within traits
375
+ * Fix deprecation messages for alternate syntaxes (make, generate, etc.)
376
+ * Improve library documentation
377
+ * Deprecate after_build, after_create, before_create, after_stub in favor of new callbacks
378
+ * Introduce new callback syntax: after(:build) {}, after(:custom) {}, or callback(:different) {}
379
+ This allows for declaring any callback, usable with custom strategies
380
+ * Add attributes_for_list and build_stubbed_list with the StrategySyntaxMethodRegistrar
381
+ * Allow use of syntax methods (build, create, generate, etc) implicitly in callbacks
382
+ * Internal refactoring of a handful of components
294
383
 
295
384
  ## 3.2.0 (April 24, 2012)
296
- * Use AS::Notifications for pub/sub to track running factories
297
- * Call new within initialize_with implicitly on the build class
298
- * Skip to_create with skip_create
299
- * Allow registration of custom strategies
300
- * Deprecate alternate syntaxes
301
- * Implicitly call factory_bot's syntax methods from dynamic attributes
385
+
386
+ * Use AS::Notifications for pub/sub to track running factories
387
+ * Call new within initialize_with implicitly on the build class
388
+ * Skip to_create with skip_create
389
+ * Allow registration of custom strategies
390
+ * Deprecate alternate syntaxes
391
+ * Implicitly call factory_bot's syntax methods from dynamic attributes
302
392
 
303
393
  ## 3.1.0 (April 6, 2012)
304
- * Sequences support aliases, which reference the same block
305
- * Update documentation
306
- * Add before_create callback
307
- * Support use of #attribute_names method to determine available attributes for steps
308
- * Use ActiveSupport::Deprecation for all deprecations
394
+
395
+ * Sequences support aliases, which reference the same block
396
+ * Update documentation
397
+ * Add before_create callback
398
+ * Support use of #attribute_names method to determine available attributes for steps
399
+ * Use ActiveSupport::Deprecation for all deprecations
309
400
 
310
401
  ## 3.0.0 (March 23, 2012)
311
- * Deprecate the vintage syntax
312
- * Remove Rails 2.x support
313
- * Remove Ruby 1.8 support
314
- * Remove deprecated features, including default_strategy, factory_name,
315
- :method for defining default strategy, ignore on individual attributes, and
316
- interacting with Factory the way you would FactoryGirl
402
+
403
+ * Deprecate the vintage syntax
404
+ * Remove Rails 2.x support
405
+ * Remove Ruby 1.8 support
406
+ * Remove deprecated features, including default_strategy, factory_name,
407
+ :method for defining default strategy, ignore on individual attributes, and
408
+ interacting with Factory the way you would FactoryGirl
317
409
 
318
410
  ## 2.6.4 (March 16, 2012)
319
- * Do not ignore names of transient attributes
320
- * Ensure attributes set on instance are calculated uniquely
411
+
412
+ * Do not ignore names of transient attributes
413
+ * Ensure attributes set on instance are calculated uniquely
321
414
 
322
415
  ## 2.6.3 (March 9, 2012)
323
- * Fix issue with traits not being present the first time a factory is accessed
324
- * Update available Cucumber step definitions to not require a trailing colon
325
- when building a table of attributes to instantiate records with
416
+
417
+ * Fix issue with traits not being present the first time a factory is accessed
418
+ * Update available Cucumber step definitions to not require a trailing colon
419
+ when building a table of attributes to instantiate records with
326
420
 
327
421
  ## 2.6.2 (March 9, 2012)
328
- * Allow factories to use all their ancestors' traits
329
- * Ignore bin dir generated by bundler
330
- * Namespace ::Factory as top-level to fix vintage syntax issue with
331
- Ruby 1.9.2-p3p18
422
+ * Allow factories to use all their ancestors' traits
423
+ * Ignore bin dir generated by bundler
424
+ * Namespace ::Factory as top-level to fix vintage syntax issue with
425
+ Ruby 1.9.2-p3p18
332
426
 
333
427
  ## 2.6.1 (March 2, 2012)
334
- * Use FactoryGirl.reload in specs
335
- * Clean up running named factories with a particular strategy with
336
- FactoryGirl::FactoryRunner
428
+
429
+ * Use FactoryGirl.reload in specs
430
+ * Clean up running named factories with a particular strategy with
431
+ FactoryGirl::FactoryRunner
337
432
 
338
433
  ## 2.6.0 (February 17, 2012)
339
- * Improve documentation of has_many associations in the GETTING_STARTED
340
- document
341
- * Deprecate :method in favor of :strategy when overriding an association's
342
- build strategy
434
+
435
+ * Improve documentation of has_many associations in the GETTING_STARTED
436
+ document
437
+ * Deprecate :method in favor of :strategy when overriding an association's
438
+ build strategy
343
439
 
344
440
  ## 2.5.2 (February 10, 2012)
345
- * Fix step definitions to use associations defined in parent factories
346
- * Add inline trait support to (build|create)_list
347
- * Update ActiveSupport dependency to >= 2.3.9, which introduced
348
- class_attribute
441
+
442
+ * Fix step definitions to use associations defined in parent factories
443
+ * Add inline trait support to (build|create)_list
444
+ * Update ActiveSupport dependency to >= 2.3.9, which introduced
445
+ class_attribute
349
446
 
350
447
  ## 2.5.1 (February 3, 2012)
351
- * Fix attribute evaluation when the attribute isn't defined in the factory but
352
- is a private method on Object
353
- * Update rubygems on Travis before running tests
354
- * Fix spec name
355
- * Update GETTING_STARTED with correct usage of build_stubbed
356
- * Update README with more info on initialize_with
357
- * Honor :parent on factory over block nesting
448
+
449
+ * Fix attribute evaluation when the attribute isn't defined in the factory but
450
+ is a private method on Object
451
+ * Update rubygems on Travis before running tests
452
+ * Fix spec name
453
+ * Update GETTING_STARTED with correct usage of build_stubbed
454
+ * Update README with more info on initialize_with
455
+ * Honor :parent on factory over block nesting
358
456
 
359
457
  ## 2.5.0 (January 20, 2012)
360
- * Revert 'Deprecate build_stubbed and attributes_for'
361
- * Implement initialize_with to allow overriding object instantiation
362
- * Ensure FG runs against Rails 3.2.0
458
+
459
+ * Revert 'Deprecate build_stubbed and attributes_for'
460
+ * Implement initialize_with to allow overriding object instantiation
461
+ * Ensure FG runs against Rails 3.2.0
363
462
 
364
463
  ## 2.4.2 (January 18, 2012)
365
- * Fix inline traits' interaction with defaults on the factory
464
+
465
+ * Fix inline traits' interaction with defaults on the factory
366
466
 
367
467
  ## 2.4.1 (January 17, 2012)
368
- * Deprecate build_stubbed and attributes_for
369
- * Fix inline traits
468
+
469
+ * Deprecate build_stubbed and attributes_for
470
+ * Fix inline traits
370
471
 
371
472
  ## 2.4.0 (January 13, 2012)
372
- * Refactor internals of FactoryGirl to use anonymous class on which attributes
373
- get defined
374
- * Explicitly require Ruby 1.8.7 or higher in gemspec
375
- * Fix documentation
376
- * Add Gemnasium status to documentation
377
- * Supplying a Class to a factory that overrides to_s no longer results in
378
- getting the wrong Class constructed
379
- * Be more agnostic about ORMs when using columns in FactoryGirl step
380
- definitions
381
- * Test against Active Record 3.2.0.rc2
382
- * Update GETTING_STARTED to use Ruby syntax highlighting
473
+
474
+ * Refactor internals of FactoryGirl to use anonymous class on which attributes
475
+ get defined
476
+ * Explicitly require Ruby 1.8.7 or higher in gemspec
477
+ * Fix documentation
478
+ * Add Gemnasium status to documentation
479
+ * Supplying a Class to a factory that overrides to_s no longer results in
480
+ getting the wrong Class constructed
481
+ * Be more agnostic about ORMs when using columns in FactoryGirl step
482
+ definitions
483
+ * Test against Active Record 3.2.0.rc2
484
+ * Update GETTING_STARTED to use Ruby syntax highlighting
383
485
 
384
486
  ## 2.3.2 (November 26, 2011)
385
- * Move logic of where instance.save! is set to Definition
386
- * Fix method name from aliases_for? to alias_for?
387
- * Refactor internal attribute handling to use an anonymous class instead of
388
- faking Ruby's variable resolution. This allows for more sane usage of
389
- attributes without having to manage sorting priority because attributes
390
- can turn themselves into procs, which are used with define_method on a
391
- class so attributes work correctly all the time.
487
+
488
+ * Move logic of where instance.save! is set to Definition
489
+ * Fix method name from aliases_for? to alias_for?
490
+ * Refactor internal attribute handling to use an anonymous class instead of
491
+ faking Ruby's variable resolution. This allows for more sane usage of
492
+ attributes without having to manage sorting priority because attributes
493
+ can turn themselves into procs, which are used with define_method on a
494
+ class so attributes work correctly all the time.
392
495
 
393
496
  ## 2.3.1 (November 23, 2011)
394
- * Remove internally-used associate method from all the FactoryGirl::Proxy subclasses
395
- * Move around requiring of files
396
- * Consolidate errors into factory_bot.rb
397
- * Refactor AttributeList to deal with priority only when iterating over
398
- attributes
399
- * Refactor internals of some of the Proxy subclasses
400
- * Ensure callbacks on traits are executed in the correct order
497
+
498
+ * Remove internally-used associate method from all the FactoryGirl::Proxy subclasses
499
+ * Move around requiring of files
500
+ * Consolidate errors into factory_bot.rb
501
+ * Refactor AttributeList to deal with priority only when iterating over
502
+ attributes
503
+ * Refactor internals of some of the Proxy subclasses
504
+ * Ensure callbacks on traits are executed in the correct order
401
505
 
402
506
  ## 2.3.0 (November 18, 2011)
403
- * Registries are named, resulting in better messages when factories, traits,
404
- or sequences cannot be found
405
- * Fix incorrect tests
406
- * Internals refactoring introducing FactoryGirl::NullFactory,
407
- FactoryGirl::Definition, and FactoryGirl::DeclarationList
408
- * Use ActiveSupport for Hash#except and its delegation capabilities
409
- * Fix usage of callbacks when added via implicit traits
410
- * Use Bundler tasks and clean up dependencies
411
- * Fix failing spec for big letters in factory name passed as symbol
412
- * Add ability for traits to be added dynamically when creating an instance via
413
- build, create, build_stubbed, or attributes_for
507
+
508
+ * Registries are named, resulting in better messages when factories, traits,
509
+ or sequences cannot be found
510
+ * Fix incorrect tests
511
+ * Internals refactoring introducing FactoryGirl::NullFactory,
512
+ FactoryGirl::Definition, and FactoryGirl::DeclarationList
513
+ * Use ActiveSupport for Hash#except and its delegation capabilities
514
+ * Fix usage of callbacks when added via implicit traits
515
+ * Use Bundler tasks and clean up dependencies
516
+ * Fix failing spec for big letters in factory name passed as symbol
517
+ * Add ability for traits to be added dynamically when creating an instance via
518
+ build, create, build_stubbed, or attributes_for
414
519
 
415
520
  ## 2.2.0 (October 14, 2011)
416
- * Clean up RSpec suite to not use 'should'
417
- * Use create_list in step definitions
418
- * Syntax methods that deal with ORM interaction (attributes_for, build, build_stubbed,
419
- and create) now accept a block that yields the result. This results in a
420
- more convenient way to interact with the result than using Object.tap.
421
- * Standardize deprecation warnings
422
- * Update transient attribute syntax to use blocks instead of calling ignore on
423
- each attribute declaration
424
- * Parents can be defined after children because factories are evaluated when
425
- they're used; this means breaking up factories across multiple files will
426
- behave as expected
427
- * Large internal refactoring, including changing access modifiers for a
428
- handful of methods for a more clearly defined API
521
+
522
+ * Clean up RSpec suite to not use 'should'
523
+ * Use create_list in step definitions
524
+ * Syntax methods that deal with ORM interaction (attributes_for, build, build_stubbed,
525
+ and create) now accept a block that yields the result. This results in a
526
+ more convenient way to interact with the result than using Object.tap.
527
+ * Standardize deprecation warnings
528
+ * Update transient attribute syntax to use blocks instead of calling ignore on
529
+ each attribute declaration
530
+ * Parents can be defined after children because factories are evaluated when
531
+ they're used; this means breaking up factories across multiple files will
532
+ behave as expected
533
+ * Large internal refactoring, including changing access modifiers for a
534
+ handful of methods for a more clearly defined API
429
535
 
430
536
  ## 2.1.2 (September 23, 2011)
431
- * Bugfix: Vintage syntax fixed after bug introduced in 2.1.1
432
- * Introduce dependency on activesupport to remove code from Factory class
537
+
538
+ * Bugfix: Vintage syntax fixed after bug introduced in 2.1.1
539
+ * Introduce dependency on activesupport to remove code from Factory class
433
540
 
434
541
  ## 2.1.1 (September 23, 2011) (yanked)
435
- * Bugfix: Parent object callbacks are run before child object callbacks
436
- * Declarations: allow overriding/modification of individual traits in child factories
437
- * Callbacks refactored to not be attributes
438
- * Updating documentation for formatting and clarity (incl. new specificity for cucumber)
542
+
543
+ * Bugfix: Parent object callbacks are run before child object callbacks
544
+ * Declarations: allow overriding/modification of individual traits in child factories
545
+ * Callbacks refactored to not be attributes
546
+ * Updating documentation for formatting and clarity (incl. new specificity for cucumber)
439
547
 
440
548
  ## 2.1.0 (September 02, 2011)
441
- * Bugfix: created_at now defined for stubbed models
442
- * Gemspec updated for use with Rails 3.1
443
- * Factories can now be modified post-definition (useful for overriding defaults from gems/plugins)
444
- * All factories can now be reloaded with Factory.reload
445
- * Add :method => build to factory associations to prevent saving of associated objects
446
- * Factories defined in {Rails.root}/factories are now loaded by default
447
- * Various documentation updates
549
+
550
+ * Bugfix: created_at now defined for stubbed models
551
+ * Gemspec updated for use with Rails 3.1
552
+ * Factories can now be modified post-definition (useful for overriding defaults from gems/plugins)
553
+ * All factories can now be reloaded with Factory.reload
554
+ * Add :method => build to factory associations to prevent saving of associated objects
555
+ * Factories defined in {Rails.root}/factories are now loaded by default
556
+ * Various documentation updates
448
557
 
449
558
  ## 1.1.4 (November 28, 2008)
450
- * Factory.build now uses Factory.create for associations of the built object
451
- * Factory definitions are now detected in subdirectories, such as
452
- factories/person_factory.rb (thanks to Josh Nichols)
453
- * Factory definitions are now loaded after the environment in a Rails project
454
- (fixes some issues with dependencies being loaded too early) (thanks to
455
- Josh Nichols)
456
- * Factory names ending in 's' no longer cause problems (thanks to Alex Sharp
457
- and Josh Owens)
559
+
560
+ * Factory.build now uses Factory.create for associations of the built object
561
+ * Factory definitions are now detected in subdirectories, such as
562
+ factories/person_factory.rb (thanks to Josh Nichols)
563
+ * Factory definitions are now loaded after the environment in a Rails project
564
+ (fixes some issues with dependencies being loaded too early) (thanks to
565
+ Josh Nichols)
566
+ * Factory names ending in 's' no longer cause problems (thanks to Alex Sharp
567
+ and Josh Owens)
458
568
 
459
569
  ## 1.1.3 (September 12, 2008)
460
- * Automatically pull in definitions from factories.rb, test/factories.rb, or
461
- spec/factories.rb
570
+
571
+ * Automatically pull in definitions from factories.rb, test/factories.rb, or
572
+ spec/factories.rb
573
+
462
574
  ## 1.1.2 (July 30, 2008)
463
- * Improved error handling for invalid and undefined factories/attributes
464
- * Improved handling of strings vs symbols vs classes
465
- * Added a prettier syntax for handling associations
466
- * Updated documentation and fixed compatibility with Rails 2.1
575
+
576
+ * Improved error handling for invalid and undefined factories/attributes
577
+ * Improved handling of strings vs symbols vs classes
578
+ * Added a prettier syntax for handling associations
579
+ * Updated documentation and fixed compatibility with Rails 2.1
467
580
 
468
581
  ## 1.1.1 (June 23, 2008)
469
- * The attribute "name" no longer requires using #add_attribute
582
+
583
+ * The attribute "name" no longer requires using #add_attribute
470
584
 
471
585
  ## 1.1.0 (June 03, 2008)
472
- * Added support for dependent attributes
473
- * Fixed the attributes_for build strategy to not build associations
474
- * Added support for sequences
586
+
587
+ * Added support for dependent attributes
588
+ * Fixed the attributes_for build strategy to not build associations
589
+ * Added support for sequences
475
590
 
476
591
  ## 1.0.0 (May 31, 2008)
477
- * First version
592
+
593
+ * First version