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