factory_bot 5.0.0 → 5.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b493c0aafb35b13e87e2a7d557b83240a61d47193213ab3a9c389eb59d24e245
4
- data.tar.gz: d422f129b2524c0409b71bac1839a9aabcffdf439cee2b91411938f7b2da2e70
3
+ metadata.gz: 3ae3cef3f2df889e63bd9eb74cd8cff214994748287c73c2ada84e7983d4fe3f
4
+ data.tar.gz: 3b5f5e43645af018b65fe78e9ede19544976daac161272310c865b2d6d7df365
5
5
  SHA512:
6
- metadata.gz: 7113265d66abbc1844535067f5db015702fb408cec18bcaaa936bce6ba0beba275506fd5ddb31d603de63b5d887e8f3d83bb71a75d8681012963688cfc5d8f50
7
- data.tar.gz: 0251c88de87729710c0d4463d548a4da85d6ad2b2e912333e945dcda037e4c9efd8365c7f619bf486f5c2f9bbc976bdc23ac09335cff2936d137a4c34e0192b0
6
+ metadata.gz: b7c1c0dfeadb5bab62335f4fdf4ac3db1bc968fc6c24a26402f63f670fb3b1f90249dd7d31122509cc867f8354c3c326ded4790a7dcdb5b178b0e7f5a8e359d5
7
+ data.tar.gz: 5059c10e6cb958fd5875f8196e3187dde9d9bca62ab05bd85a4c5d5208c57bdd7d404cb096e2654fcbf599fb3d22064cbf46f97139ac4f04eac2be8cb62a3230
@@ -1120,7 +1120,7 @@ Verbose linting will include full backtraces for each error, which can be
1120
1120
  helpful for debugging:
1121
1121
 
1122
1122
  ```ruby
1123
- FactoryBot.lint verbose: :true
1123
+ FactoryBot.lint verbose: true
1124
1124
  ```
1125
1125
 
1126
1126
  Custom Construction
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2008-2017 Joe Ferris and thoughtbot, inc.
1
+ Copyright (c) 2008-2019 Joe Ferris and thoughtbot, inc.
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  of this software and associated documentation files (the "Software"), to deal
data/NEWS.md ADDED
@@ -0,0 +1,329 @@
1
+ # News
2
+
3
+ ## 5.0.1 (February 15, 2019)
4
+ * Bugfix: Do not raise error when two sequences have the same name
5
+ in two traits that have the same name
6
+
7
+ ## 5.0.0
8
+ * Added: Verbose option to include full backtraces in the linting output
9
+ * Changed: use_parent_strategy now defaults to true, so by default the
10
+ build strategy will build, rather than create associations
11
+ * Changed: Passing a block when defining associations now raises an error
12
+ * Bugfix: use_parent_strategy is no longer reset by FactoryBot.reload
13
+ * Bugfix: rewind_sequences will now rewind local sequences along with the global ones
14
+ * Bugfix: the build_stubbed strategy now sets timestamps without changing the
15
+ the original behavior of the timestamp methods
16
+ * Bugfix: avoid a stack error when referring to an "attributes" attribute in initialize_with
17
+ * Removed: support for EOL versions of Ruby and Rails
18
+ * Removed: static attributes (use dynamic attributes with a block instead)
19
+ * Removed: looking up factories by class
20
+ * Removed: ignore method (use transient instead)
21
+ * Removed: duplicate_attribute_assignment_from_initialize_with configuration option
22
+ * Deprecated: allow_class_lookup configuration option
23
+
24
+ ## 4.11.1 (September 7, 2018)
25
+ * Documentation: Include .yardopts in the gem to fix broken RubyDoc links
26
+
27
+ ## 4.11.0 (August, 15, 2018)
28
+ * Bugfix: Do not raise error for valid build_stubbed methods: decrement, increment, and toggle
29
+ * Bugfix: Do not add timestamps with build_stubbed for objects that shouldn't have timestamps
30
+ * Deprecate static attributes
31
+
32
+ ## 4.10.0 (May 25, 2018)
33
+ * Allow sequences to be rewound
34
+
35
+ ## 4.9.0 (skipped - FactoryGirl only release)
36
+
37
+ ## 4.8.2 (October 20, 2017)
38
+ * Rename factory_girl to factory_bot
39
+
40
+ ## 4.8.1 (September 28, 2017)
41
+ * Explicitly define `#destroyed?` within the `Stub` strategy to return `nil` instead of raising
42
+ * Update various dependencies
43
+ * Update internal test suite to use RSpec's mocking/stubbing instead of mocha
44
+
45
+ ## 4.8.0 (December 16, 2016)
46
+ * Improve documentation
47
+ * Add `FactoryGirl.generate_list` to be consistent with `build_list`/`create_list` and friends
48
+ * Add `FactoryGirl.use_parent_strategy` configuration to allow associations to leverage parent build strategy
49
+
50
+ ## 4.7.0 (April 1, 2016)
51
+ * Improve documentation
52
+ * Improve instrumentation payload to include traits, overrides, and the factory itself
53
+ * Allow linting of traits
54
+ * Deprecate factory lookup by class name in preparation for 5.0
55
+ * Improve internal performance by using flat_map instead of map and compact
56
+ * Improve handling of dirty attributes after building a stubbed object
57
+ * Reduce warnings from redefining methods
58
+
59
+ ## 4.6.0 (skipped)
60
+
61
+ ## 4.5.0 (October 17, 2014)
62
+ * Improve FactoryGirl.lint by including exception and message in output
63
+ * Allow selective linting
64
+ * Use more explicit #public_send when doing attribute assignment
65
+ * Improve documentation around FactoryGirl.lint and initialize_with
66
+ * Deprecate #ignore in favor of #transient
67
+
68
+ ## 4.4.0 (February 10, 2014)
69
+ * Add FactoryGirl.lint
70
+ * Fix memory leak in duplicate traits
71
+ * Update documentation
72
+
73
+ ## 4.3.0 (November 3, 2013)
74
+ * Start testing against Rails 4.0 and Ruby 2.0.0
75
+ * Stop testing against Rails 3.0 and Ruby 1.9.2
76
+ * Add `*_pair` methods to only build two objects
77
+ * Raise if a method is defined with a FactoryGirl block (factory or trait)
78
+ * Allow use of Symbol#to_proc in callbacks
79
+ * Add global callbacks
80
+ * Improve GETTING_STARTED and README
81
+
82
+ ## 4.2.0 (January 18, 2013)
83
+ * Improve documentation
84
+ * Allow `*_list` syntax methods to accept a block
85
+ * Update gem dependencies
86
+ * Allow setting id for objects created with `build_stubbed`
87
+ * Fix Stub strategy to mimic ActiveRecord regarding `created_at`
88
+ * Evaluate sequences within the context of an Evaluator
89
+ * Fix Mocha deprecation warning
90
+ * Fix some warnings when running RUBYOPT=-w rake
91
+ * Convert test suite to RSpec's "expect" syntax
92
+
93
+ ## 4.1.0 (September 11, 2012)
94
+ * Allow multiple callbacks to bind to the same block
95
+ * Fix documentation surrounding the stub strategy
96
+
97
+ ## 4.0.0 (August 3, 2012)
98
+ * Remove deprecated cucumber_steps
99
+ * Remove deprecated alternate syntaxes
100
+ * Deprecate duplicate_attribute_assignment_from_initialize_with, which is now unused
101
+ as attributes assigned within initialize_with are not subsequently assigned
102
+
103
+ ## 3.6.1 (August 2, 2012)
104
+ Update README to include info about running with JRuby
105
+ * Update dependencies on RSpec and tiny versions of Rails in Appraisal
106
+ * Improve flexibility of using traits with associations and add documentation
107
+ * Stub update_column to raise to mirror ActiveRecord's change from update_attribute
108
+
109
+ ## 3.6.0 (July 27, 2012)
110
+ * Code/spec cleanup
111
+ * Allow factories with traits to be used in associations
112
+ * Refactor Factory to use DefinitionHierarchy to handle managing callbacks,
113
+ custom constructor, and custom to_create
114
+ * Add memoization to speed up factories providing attribute overrides
115
+ * Add initial support of JRuby when running in 1.9 mode
116
+ * Improve docs on what happens when including FactoryGirl::Syntax::Methods
117
+
118
+ ## 3.5.0 (June 22, 2012)
119
+ * Allow created_at to be set when using build_stubbed
120
+ * Deprecate FactoryGirl step definitions
121
+
122
+ ## 3.4.2 (June 19, 2012)
123
+ * Fix bug in traits with callbacks called implicitly in factories whose
124
+ callbacks trigger multiple times
125
+
126
+ ## 3.4.1 (June 18, 2012)
127
+ * Fix traits so they can be nested and referred to from other traits
128
+
129
+ ## 3.4.0 (June 11, 2012)
130
+ * Sequences support Enumerators
131
+ * Optionally disable duplicate assignment of attributes in initialize_with
132
+ * Make hash of public attributes available in initialize_with
133
+ * Support referring to a factory based on class name
134
+
135
+ ## 3.3.0 (May 13, 2012)
136
+ * Allow to_create, skip_create, and initialize_with to be defined globally
137
+ * Allow to_create, skip_create, and initialize_with to be defined within traits
138
+ * Fix deprecation messages for alternate syntaxes (make, generate, etc.)
139
+ * Improve library documentation
140
+ * Deprecate after_build, after_create, before_create, after_stub in favor of new callbacks
141
+ * Introduce new callback syntax: after(:build) {}, after(:custom) {}, or callback(:different) {}
142
+ This allows for declaring any callback, usable with custom strategies
143
+ * Add attributes_for_list and build_stubbed_list with the StrategySyntaxMethodRegistrar
144
+ * Allow use of syntax methods (build, create, generate, etc) implicitly in callbacks
145
+ * Internal refactoring of a handful of components
146
+
147
+ ## 3.2.0 (April 24, 2012)
148
+ * Use AS::Notifications for pub/sub to track running factories
149
+ * Call new within initialize_with implicitly on the build class
150
+ * Skip to_create with skip_create
151
+ * Allow registration of custom strategies
152
+ * Deprecate alternate syntaxes
153
+ * Implicitly call factory_bot's syntax methods from dynamic attributes
154
+
155
+ ## 3.1.0 (April 6, 2012)
156
+ * Sequences support aliases, which reference the same block
157
+ * Update documentation
158
+ * Add before_create callback
159
+ * Support use of #attribute_names method to determine available attributes for steps
160
+ * Use ActiveSupport::Deprecation for all deprecations
161
+
162
+ ## 3.0.0 (March 23, 2012)
163
+ * Deprecate the vintage syntax
164
+ * Remove Rails 2.x support
165
+ * Remove Ruby 1.8 support
166
+ * Remove deprecated features, including default_strategy, factory_name,
167
+ :method for defining default strategy, ignore on individual attributes, and
168
+ interacting with Factory the way you would FactoryGirl
169
+
170
+ ## 2.6.4 (March 16, 2012)
171
+ * Do not ignore names of transient attributes
172
+ * Ensure attributes set on instance are calculated uniquely
173
+
174
+ ## 2.6.3 (March 9, 2012)
175
+ * Fix issue with traits not being present the first time a factory is accessed
176
+ * Update available Cucumber step definitions to not require a trailing colon
177
+ when building a table of attributes to instantiate records with
178
+
179
+ ## 2.6.2 (March 9, 2012)
180
+ * Allow factories to use all their ancestors' traits
181
+ * Ignore bin dir generated by bundler
182
+ * Namespace ::Factory as top-level to fix vintage syntax issue with
183
+ Ruby 1.9.2-p3p18
184
+
185
+ ## 2.6.1 (March 2, 2012)
186
+ * Use FactoryGirl.reload in specs
187
+ * Clean up running named factories with a particular strategy with
188
+ FactoryGirl::FactoryRunner
189
+
190
+ ## 2.6.0 (February 17, 2012)
191
+ * Improve documentation of has_many associations in the GETTING_STARTED
192
+ document
193
+ * Deprecate :method in favor of :strategy when overriding an association's
194
+ build strategy
195
+
196
+ ## 2.5.2 (February 10, 2012)
197
+ * Fix step definitions to use associations defined in parent factories
198
+ * Add inline trait support to (build|create)_list
199
+ * Update ActiveSupport dependency to >= 2.3.9, which introduced
200
+ class_attribute
201
+
202
+ ## 2.5.1 (February 3, 2012)
203
+ * Fix attribute evaluation when the attribute isn't defined in the factory but
204
+ is a private method on Object
205
+ * Update rubygems on Travis before running tests
206
+ * Fix spec name
207
+ * Update GETTING_STARTED with correct usage of build_stubbed
208
+ * Update README with more info on initialize_with
209
+ * Honor :parent on factory over block nesting
210
+
211
+ ## 2.5.0 (January 20, 2012)
212
+ * Revert 'Deprecate build_stubbed and attributes_for'
213
+ * Implement initialize_with to allow overriding object instantiation
214
+ * Ensure FG runs against Rails 3.2.0
215
+
216
+ ## 2.4.2 (January 18, 2012)
217
+ * Fix inline traits' interaction with defaults on the factory
218
+
219
+ ## 2.4.1 (January 17, 2012)
220
+ * Deprecate build_stubbed and attributes_for
221
+ * Fix inline traits
222
+
223
+ ## 2.4.0 (January 13, 2012)
224
+ * Refactor internals of FactoryGirl to use anonymous class on which attributes
225
+ get defined
226
+ * Explicitly require Ruby 1.8.7 or higher in gemspec
227
+ * Fix documentation
228
+ * Add Gemnasium status to documentation
229
+ * Supplying a Class to a factory that overrides to_s no longer results in
230
+ getting the wrong Class constructed
231
+ * Be more agnostic about ORMs when using columns in FactoryGirl step
232
+ definitions
233
+ * Test against Active Record 3.2.0.rc2
234
+ * Update GETTING_STARTED to use Ruby syntax highlighting
235
+
236
+ ## 2.3.2 (November 26, 2011)
237
+ * Move logic of where instance.save! is set to Definition
238
+ * Fix method name from aliases_for? to alias_for?
239
+ * Refactor internal attribute handling to use an anonymous class instead of
240
+ faking Ruby's variable resolution. This allows for more sane usage of
241
+ attributes without having to manage sorting priority because attributes
242
+ can turn themselves into procs, which are used with define_method on a
243
+ class so attributes work correctly all the time.
244
+
245
+ ## 2.3.1 (November 23, 2011)
246
+ * Remove internally-used associate method from all the FactoryGirl::Proxy subclasses
247
+ * Move around requiring of files
248
+ * Consolidate errors into factory_bot.rb
249
+ * Refactor AttributeList to deal with priority only when iterating over
250
+ attributes
251
+ * Refactor internals of some of the Proxy subclasses
252
+ * Ensure callbacks on traits are executed in the correct order
253
+
254
+ ## 2.3.0 (November 18, 2011)
255
+ * Registries are named, resulting in better messages when factories, traits,
256
+ or sequences cannot be found
257
+ * Fix incorrect tests
258
+ * Internals refactoring introducing FactoryGirl::NullFactory,
259
+ FactoryGirl::Definition, and FactoryGirl::DeclarationList
260
+ * Use ActiveSupport for Hash#except and its delegation capabilities
261
+ * Fix usage of callbacks when added via implicit traits
262
+ * Use Bundler tasks and clean up dependencies
263
+ * Fix failing spec for big letters in factory name passed as symbol
264
+ * Add ability for traits to be added dynamically when creating an instance via
265
+ build, create, build_stubbed, or attributes_for
266
+
267
+ ## 2.2.0 (October 14, 2011)
268
+ * Clean up RSpec suite to not use 'should'
269
+ * Use create_list in step definitions
270
+ * Syntax methods that deal with ORM interaction (attributes_for, build, build_stubbed,
271
+ and create) now accept a block that yields the result. This results in a
272
+ more convenient way to interact with the result than using Object.tap.
273
+ * Standardize deprecation warnings
274
+ * Update transient attribute syntax to use blocks instead of calling ignore on
275
+ each attribute declaration
276
+ * Parents can be defined after children because factories are evaluated when
277
+ they're used; this means breaking up factories across multiple files will
278
+ behave as expected
279
+ * Large internal refactoring, including changing access modifiers for a
280
+ handful of methods for a more clearly defined API
281
+
282
+ ## 2.1.2 (September 23, 2011)
283
+ * Bugfix: Vintage syntax fixed after bug introduced in 2.1.1
284
+ * Introduce dependency on activesupport to remove code from Factory class
285
+
286
+ ## 2.1.1 (September 23, 2011) (yanked)
287
+ * Bugfix: Parent object callbacks are run before child object callbacks
288
+ * Declarations: allow overriding/modification of individual traits in child factories
289
+ * Callbacks refactored to not be attributes
290
+ * Updating documentation for formatting and clarity (incl. new specificity for cucumber)
291
+
292
+ ## 2.1.0 (September 02, 2011)
293
+ * Bugfix: created_at now defined for stubbed models
294
+ * Gemspec updated for use with Rails 3.1
295
+ * Factories can now be modified post-definition (useful for overriding defaults from gems/plugins)
296
+ * All factories can now be reloaded with Factory.reload
297
+ * Add :method => build to factory associations to prevent saving of associated objects
298
+ * Factories defined in {Rails.root}/factories are now loaded by default
299
+ * Various documentation updates
300
+
301
+ ## 1.1.4 (November 28, 2008)
302
+ * Factory.build now uses Factory.create for associations of the built object
303
+ * Factory definitions are now detected in subdirectories, such as
304
+ factories/person_factory.rb (thanks to Josh Nichols)
305
+ * Factory definitions are now loaded after the environment in a Rails project
306
+ (fixes some issues with dependencies being loaded too early) (thanks to
307
+ Josh Nichols)
308
+ * Factory names ending in 's' no longer cause problems (thanks to Alex Sharp
309
+ and Josh Owens)
310
+
311
+ ## 1.1.3 (September 12, 2008)
312
+ * Automatically pull in definitions from factories.rb, test/factories.rb, or
313
+ spec/factories.rb
314
+ ## 1.1.2 (July 30, 2008)
315
+ * Improved error handling for invalid and undefined factories/attributes
316
+ * Improved handling of strings vs symbols vs classes
317
+ * Added a prettier syntax for handling associations
318
+ * Updated documentation and fixed compatibility with Rails 2.1
319
+
320
+ ## 1.1.1 (June 23, 2008)
321
+ * The attribute "name" no longer requires using #add_attribute
322
+
323
+ ## 1.1.0 (June 03, 2008)
324
+ * Added support for dependent attributes
325
+ * Fixed the attributes_for build strategy to not build associations
326
+ * Added support for sequences
327
+
328
+ ## 1.0.0 (May 31, 2008)
329
+ * First version
data/README.md CHANGED
@@ -75,7 +75,7 @@ community](https://github.com/thoughtbot/factory_bot/graphs/contributors).
75
75
  License
76
76
  -------
77
77
 
78
- factory_bot is Copyright © 2008-2016 Joe Ferris and thoughtbot. It is free
78
+ factory_bot is Copyright © 2008-2019 Joe Ferris and thoughtbot. It is free
79
79
  software, and may be redistributed under the terms specified in the
80
80
  [LICENSE](/LICENSE) file.
81
81
 
@@ -45,16 +45,17 @@ require "factory_bot/decorator/invocation_tracker"
45
45
  require "factory_bot/decorator/new_constructor"
46
46
  require "factory_bot/linter"
47
47
  require "factory_bot/version"
48
+ require "factory_bot/internal"
48
49
 
49
50
  module FactoryBot
50
51
  DEPRECATOR = ActiveSupport::Deprecation.new("6.0", "factory_bot")
51
52
 
52
53
  def self.configuration
53
- @configuration ||= Configuration.new
54
+ Internal.configuration
54
55
  end
55
56
 
56
57
  def self.reset_configuration
57
- @configuration = nil
58
+ Internal.reset_configuration
58
59
  end
59
60
 
60
61
  mattr_accessor :use_parent_strategy, instance_accessor: false
@@ -114,6 +115,7 @@ module FactoryBot
114
115
 
115
116
  def self.rewind_sequences
116
117
  sequences.each(&:rewind)
118
+ Internal.rewind_inline_sequences
117
119
  end
118
120
 
119
121
  def self.register_trait(trait)
@@ -1,7 +1,14 @@
1
1
  module FactoryBot
2
2
  # @api private
3
3
  class Configuration
4
- attr_reader :factories, :sequences, :traits, :strategies, :callback_names
4
+ attr_reader(
5
+ :callback_names,
6
+ :factories,
7
+ :inline_sequences,
8
+ :sequences,
9
+ :strategies,
10
+ :traits,
11
+ )
5
12
 
6
13
  def initialize
7
14
  @factories = Decorator::DisallowsDuplicatesRegistry.new(Registry.new("Factory"))
@@ -10,6 +17,7 @@ module FactoryBot
10
17
  @strategies = Registry.new("Strategy")
11
18
  @callback_names = Set.new
12
19
  @definition = Definition.new(:configuration)
20
+ @inline_sequences = []
13
21
 
14
22
  to_create(&:save!)
15
23
  initialize_with { new }
@@ -117,9 +117,8 @@ module FactoryBot
117
117
  #
118
118
  # Except that no globally available sequence will be defined.
119
119
  def sequence(name, *args, &block)
120
- sequence_name = "__#{@definition.name}_#{name}__"
121
- sequence = Sequence.new(sequence_name, *args, &block)
122
- FactoryBot.register_sequence(sequence)
120
+ sequence = Sequence.new(name, *args, &block)
121
+ FactoryBot::Internal.register_inline_sequence(sequence)
123
122
  add_attribute(name) { increment_sequence(sequence) }
124
123
  end
125
124
 
@@ -0,0 +1,24 @@
1
+ module FactoryBot
2
+ # @api private
3
+ module Internal
4
+ class << self
5
+ delegate :inline_sequences, to: :configuration
6
+
7
+ def configuration
8
+ @configuration ||= Configuration.new
9
+ end
10
+
11
+ def reset_configuration
12
+ @configuration = nil
13
+ end
14
+
15
+ def register_inline_sequence(sequence)
16
+ inline_sequences.push(sequence)
17
+ end
18
+
19
+ def rewind_inline_sequences
20
+ inline_sequences.each(&:rewind)
21
+ end
22
+ end
23
+ end
24
+ end
@@ -1,6 +1,6 @@
1
1
  module FactoryBot
2
2
  def self.reload
3
- reset_configuration
3
+ Internal.reset_configuration
4
4
  register_default_strategies
5
5
  register_default_callbacks
6
6
  find_definitions
@@ -54,7 +54,7 @@ module FactoryBot
54
54
  private
55
55
 
56
56
  def configuration
57
- FactoryBot.configuration
57
+ FactoryBot::Internal.configuration
58
58
  end
59
59
  end
60
60
 
@@ -1,3 +1,3 @@
1
1
  module FactoryBot
2
- VERSION = "5.0.0".freeze
2
+ VERSION = "5.0.1".freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: factory_bot
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.0.0
4
+ version: 5.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josh Clayton
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2019-02-01 00:00:00.000000000 Z
12
+ date: 2019-02-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -207,7 +207,7 @@ files:
207
207
  - GETTING_STARTED.md
208
208
  - LICENSE
209
209
  - NAME.md
210
- - NEWS
210
+ - NEWS.md
211
211
  - README.md
212
212
  - lib/factory_bot.rb
213
213
  - lib/factory_bot/aliases.rb
@@ -240,6 +240,7 @@ files:
240
240
  - lib/factory_bot/factory.rb
241
241
  - lib/factory_bot/factory_runner.rb
242
242
  - lib/factory_bot/find_definitions.rb
243
+ - lib/factory_bot/internal.rb
243
244
  - lib/factory_bot/linter.rb
244
245
  - lib/factory_bot/null_factory.rb
245
246
  - lib/factory_bot/null_object.rb
@@ -278,7 +279,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
278
279
  - !ruby/object:Gem::Version
279
280
  version: '0'
280
281
  requirements: []
281
- rubygems_version: 3.0.1
282
+ rubyforge_project:
283
+ rubygems_version: 2.7.7
282
284
  signing_key:
283
285
  specification_version: 4
284
286
  summary: factory_bot provides a framework and DSL for defining and using model instance
data/NEWS DELETED
@@ -1,323 +0,0 @@
1
- 5.0.0
2
- Added: Verbose option to include full backtraces in the linting output
3
- Changed: use_parent_strategy now defaults to true, so by default the
4
- build strategy will build, rather than create associations
5
- Changed: Passing a block when defining associations now raises an error
6
- Bugfix: use_parent_strategy is no longer reset by FactoryBot.reload
7
- Bugfix: rewind_sequences will now rewind local sequences along with the global ones
8
- Bugfix: the build_stubbed strategy now sets timestamps without changing the
9
- the original behavior of the timestamp methods
10
- Bugfix: avoid a stack error when referring to an "attributes" attribute in initialize_with
11
- Removed: support for EOL versions of Ruby and Rails
12
- Removed: static attributes (use dynamic attributes with a block instead)
13
- Removed: looking up factories by class
14
- Removed: ignore method (use transient instead)
15
- Removed: duplicate_attribute_assignment_from_initialize_with configuration option
16
- Deprecated: allow_class_lookup configuration option
17
-
18
- 4.11.1 (September 7, 2018)
19
- Documentation: Include .yardopts in the gem to fix broken RubyDoc links
20
-
21
- 4.11.0 (August, 15, 2018)
22
- Bugfix: Do not raise error for valid build_stubbed methods: decrement, increment, and toggle
23
- Bugfix: Do not add timestamps with build_stubbed for objects that shouldn't have timestamps
24
- Deprecate static attributes
25
-
26
- 4.10.0 (May 25, 2018)
27
- Allow sequences to be rewound
28
-
29
- 4.9.0 (skipped - FactoryGirl only release)
30
-
31
- 4.8.2 (October 20, 2017)
32
- Rename factory_girl to factory_bot
33
-
34
- 4.8.1 (September 28, 2017)
35
- Explicitly define `#destroyed?` within the `Stub` strategy to return `nil` instead of raising
36
- Update various dependencies
37
- Update internal test suite to use RSpec's mocking/stubbing instead of mocha
38
-
39
- 4.8.0 (December 16, 2016)
40
- Improve documentation
41
- Add `FactoryGirl.generate_list` to be consistent with `build_list`/`create_list` and friends
42
- Add `FactoryGirl.use_parent_strategy` configuration to allow associations to leverage parent build strategy
43
-
44
- 4.7.0 (April 1, 2016)
45
- Improve documentation
46
- Improve instrumentation payload to include traits, overrides, and the factory itself
47
- Allow linting of traits
48
- Deprecate factory lookup by class name in preparation for 5.0
49
- Improve internal performance by using flat_map instead of map and compact
50
- Improve handling of dirty attributes after building a stubbed object
51
- Reduce warnings from redefining methods
52
-
53
- 4.6.0 (skipped)
54
-
55
- 4.5.0 (October 17, 2014)
56
- Improve FactoryGirl.lint by including exception and message in output
57
- Allow selective linting
58
- Use more explicit #public_send when doing attribute assignment
59
- Improve documentation around FactoryGirl.lint and initialize_with
60
- Deprecate #ignore in favor of #transient
61
-
62
- 4.4.0 (February 10, 2014)
63
- Add FactoryGirl.lint
64
- Fix memory leak in duplicate traits
65
- Update documentation
66
-
67
- 4.3.0 (November 3, 2013)
68
- Start testing against Rails 4.0 and Ruby 2.0.0
69
- Stop testing against Rails 3.0 and Ruby 1.9.2
70
- Add *_pair methods to only build two objects
71
- Raise if a method is defined with a FactoryGirl block (factory or trait)
72
- Allow use of Symbol#to_proc in callbacks
73
- Add global callbacks
74
- Improve GETTING_STARTED and README
75
-
76
- 4.2.0 (January 18, 2013)
77
- Improve documentation
78
- Allow *_list syntax methods to accept a block
79
- Update gem dependencies
80
- Allow setting id for objects created with `build_stubbed`
81
- Fix Stub strategy to mimic ActiveRecord regarding `created_at`
82
- Evaluate sequences within the context of an Evaluator
83
- Fix Mocha deprecation warning
84
- Fix some warnings when running RUBYOPT=-w rake
85
- Convert test suite to RSpec's "expect" syntax
86
-
87
- 4.1.0 (September 11, 2012)
88
- Allow multiple callbacks to bind to the same block
89
- Fix documentation surrounding the stub strategy
90
-
91
- 4.0.0 (August 3, 2012)
92
- Remove deprecated cucumber_steps
93
- Remove deprecated alternate syntaxes
94
- Deprecate duplicate_attribute_assignment_from_initialize_with, which is now unused
95
- as attributes assigned within initialize_with are not subsequently assigned
96
-
97
- 3.6.1 (August 2, 2012)
98
- Update README to include info about running with JRuby
99
- Update dependencies on RSpec and tiny versions of Rails in Appraisal
100
- Improve flexibility of using traits with associations and add documentation
101
- Stub update_column to raise to mirror ActiveRecord's change from update_attribute
102
-
103
- 3.6.0 (July 27, 2012)
104
- Code/spec cleanup
105
- Allow factories with traits to be used in associations
106
- Refactor Factory to use DefinitionHierarchy to handle managing callbacks,
107
- custom constructor, and custom to_create
108
- Add memoization to speed up factories providing attribute overrides
109
- Add initial support of JRuby when running in 1.9 mode
110
- Improve docs on what happens when including FactoryGirl::Syntax::Methods
111
-
112
- 3.5.0 (June 22, 2012)
113
- Allow created_at to be set when using build_stubbed
114
- Deprecate FactoryGirl step definitions
115
-
116
- 3.4.2 (June 19, 2012)
117
- Fix bug in traits with callbacks called implicitly in factories whose
118
- callbacks trigger multiple times
119
-
120
- 3.4.1 (June 18, 2012)
121
- Fix traits so they can be nested and referred to from other traits
122
-
123
- 3.4.0 (June 11, 2012)
124
- Sequences support Enumerators
125
- Optionally disable duplicate assignment of attributes in initialize_with
126
- Make hash of public attributes available in initialize_with
127
- Support referring to a factory based on class name
128
-
129
- 3.3.0 (May 13, 2012)
130
- Allow to_create, skip_create, and initialize_with to be defined globally
131
- Allow to_create, skip_create, and initialize_with to be defined within traits
132
- Fix deprecation messages for alternate syntaxes (make, generate, etc.)
133
- Improve library documentation
134
- Deprecate after_build, after_create, before_create, after_stub in favor of new callbacks
135
- Introduce new callback syntax: after(:build) {}, after(:custom) {}, or callback(:different) {}
136
- This allows for declaring any callback, usable with custom strategies
137
- Add attributes_for_list and build_stubbed_list with the StrategySyntaxMethodRegistrar
138
- Allow use of syntax methods (build, create, generate, etc) implicitly in callbacks
139
- Internal refactoring of a handful of components
140
-
141
- 3.2.0 (April 24, 2012)
142
- Use AS::Notifications for pub/sub to track running factories
143
- Call new within initialize_with implicitly on the build class
144
- Skip to_create with skip_create
145
- Allow registration of custom strategies
146
- Deprecate alternate syntaxes
147
- Implicitly call factory_bot's syntax methods from dynamic attributes
148
-
149
- 3.1.0 (April 6, 2012)
150
- Sequences support aliases, which reference the same block
151
- Update documentation
152
- Add before_create callback
153
- Support use of #attribute_names method to determine available attributes for steps
154
- Use ActiveSupport::Deprecation for all deprecations
155
-
156
- 3.0.0 (March 23, 2012)
157
- Deprecate the vintage syntax
158
- Remove Rails 2.x support
159
- Remove Ruby 1.8 support
160
- Remove deprecated features, including default_strategy, factory_name,
161
- :method for defining default strategy, ignore on individual attributes, and
162
- interacting with Factory the way you would FactoryGirl
163
-
164
- 2.6.4 (March 16, 2012)
165
- Do not ignore names of transient attributes
166
- Ensure attributes set on instance are calculated uniquely
167
-
168
- 2.6.3 (March 9, 2012)
169
- Fix issue with traits not being present the first time a factory is accessed
170
- Update available Cucumber step definitions to not require a trailing colon
171
- when building a table of attributes to instantiate records with
172
-
173
- 2.6.2 (March 9, 2012)
174
- Allow factories to use all their ancestors' traits
175
- Ignore bin dir generated by bundler
176
- Namespace ::Factory as top-level to fix vintage syntax issue with
177
- Ruby 1.9.2-p3p18
178
-
179
- 2.6.1 (March 2, 2012)
180
- Use FactoryGirl.reload in specs
181
- Clean up running named factories with a particular strategy with
182
- FactoryGirl::FactoryRunner
183
-
184
- 2.6.0 (February 17, 2012)
185
- Improve documentation of has_many associations in the GETTING_STARTED
186
- document
187
- Deprecate :method in favor of :strategy when overriding an association's
188
- build strategy
189
-
190
- 2.5.2 (February 10, 2012)
191
- Fix step definitions to use associations defined in parent factories
192
- Add inline trait support to (build|create)_list
193
- Update ActiveSupport dependency to >= 2.3.9, which introduced
194
- class_attribute
195
-
196
- 2.5.1 (February 3, 2012)
197
- Fix attribute evaluation when the attribute isn't defined in the factory but
198
- is a private method on Object
199
- Update rubygems on Travis before running tests
200
- Fix spec name
201
- Update GETTING_STARTED with correct usage of build_stubbed
202
- Update README with more info on initialize_with
203
- Honor :parent on factory over block nesting
204
-
205
- 2.5.0 (January 20, 2012)
206
- Revert 'Deprecate build_stubbed and attributes_for'
207
- Implement initialize_with to allow overriding object instantiation
208
- Ensure FG runs against Rails 3.2.0
209
-
210
- 2.4.2 (January 18, 2012)
211
- Fix inline traits' interaction with defaults on the factory
212
-
213
- 2.4.1 (January 17, 2012)
214
- Deprecate build_stubbed and attributes_for
215
- Fix inline traits
216
-
217
- 2.4.0 (January 13, 2012)
218
- Refactor internals of FactoryGirl to use anonymous class on which attributes
219
- get defined
220
- Explicitly require Ruby 1.8.7 or higher in gemspec
221
- Fix documentation
222
- Add Gemnasium status to documentation
223
- Supplying a Class to a factory that overrides to_s no longer results in
224
- getting the wrong Class constructed
225
- Be more agnostic about ORMs when using columns in FactoryGirl step
226
- definitions
227
- Test against Active Record 3.2.0.rc2
228
- Update GETTING_STARTED to use Ruby syntax highlighting
229
-
230
- 2.3.2 (November 26, 2011)
231
- Move logic of where instance.save! is set to Definition
232
- Fix method name from aliases_for? to alias_for?
233
- Refactor internal attribute handling to use an anonymous class instead of
234
- faking Ruby's variable resolution. This allows for more sane usage of
235
- attributes without having to manage sorting priority because attributes
236
- can turn themselves into procs, which are used with define_method on a
237
- class so attributes work correctly all the time.
238
-
239
- 2.3.1 (November 23, 2011)
240
- Remove internally-used associate method from all the FactoryGirl::Proxy subclasses
241
- Move around requiring of files
242
- Consolidate errors into factory_bot.rb
243
- Refactor AttributeList to deal with priority only when iterating over
244
- attributes
245
- Refactor internals of some of the Proxy subclasses
246
- Ensure callbacks on traits are executed in the correct order
247
-
248
- 2.3.0 (November 18, 2011)
249
- Registries are named, resulting in better messages when factories, traits,
250
- or sequences cannot be found
251
- Fix incorrect tests
252
- Internals refactoring introducing FactoryGirl::NullFactory,
253
- FactoryGirl::Definition, and FactoryGirl::DeclarationList
254
- Use ActiveSupport for Hash#except and its delegation capabilities
255
- Fix usage of callbacks when added via implicit traits
256
- Use Bundler tasks and clean up dependencies
257
- Fix failing spec for big letters in factory name passed as symbol
258
- Add ability for traits to be added dynamically when creating an instance via
259
- build, create, build_stubbed, or attributes_for
260
-
261
- 2.2.0 (October 14, 2011)
262
- Clean up RSpec suite to not use 'should'
263
- Use create_list in step definitions
264
- Syntax methods that deal with ORM interaction (attributes_for, build, build_stubbed,
265
- and create) now accept a block that yields the result. This results in a
266
- more convenient way to interact with the result than using Object.tap.
267
- Standardize deprecation warnings
268
- Update transient attribute syntax to use blocks instead of calling ignore on
269
- each attribute declaration
270
- Parents can be defined after children because factories are evaluated when
271
- they're used; this means breaking up factories across multiple files will
272
- behave as expected
273
- Large internal refactoring, including changing access modifiers for a
274
- handful of methods for a more clearly defined API
275
-
276
- 2.1.2 (September 23, 2011)
277
- Bugfix: Vintage syntax fixed after bug introduced in 2.1.1
278
- Introduce dependency on activesupport to remove code from Factory class
279
-
280
- 2.1.1 (September 23, 2011) (yanked)
281
- Bugfix: Parent object callbacks are run before child object callbacks
282
- Declarations: allow overriding/modification of individual traits in child factories
283
- Callbacks refactored to not be attributes
284
- Updating documentation for formatting and clarity (incl. new specificity for cucumber)
285
-
286
- 2.1.0 (September 02, 2011)
287
- Bugfix: created_at now defined for stubbed models
288
- Gemspec updated for use with Rails 3.1
289
- Factories can now be modified post-definition (useful for overriding defaults from gems/plugins)
290
- All factories can now be reloaded with Factory.reload
291
- Add :method => build to factory associations to prevent saving of associated objects
292
- Factories defined in {Rails.root}/factories are now loaded by default
293
- Various documentation updates
294
-
295
- 1.1.4 (November 28, 2008)
296
- Factory.build now uses Factory.create for associations of the built object
297
- Factory definitions are now detected in subdirectories, such as
298
- factories/person_factory.rb (thanks to Josh Nichols)
299
- Factory definitions are now loaded after the environment in a Rails project
300
- (fixes some issues with dependencies being loaded too early) (thanks to
301
- Josh Nichols)
302
- Factory names ending in 's' no longer cause problems (thanks to Alex Sharp
303
- and Josh Owens)
304
-
305
- 1.1.3 (September 12, 2008)
306
- Automatically pull in definitions from factories.rb, test/factories.rb, or
307
- spec/factories.rb
308
- 1.1.2 (July 30, 2008)
309
- Improved error handling for invalid and undefined factories/attributes
310
- Improved handling of strings vs symbols vs classes
311
- Added a prettier syntax for handling associations
312
- Updated documentation and fixed compatibility with Rails 2.1
313
-
314
- 1.1.1 (June 23, 2008)
315
- The attribute "name" no longer requires using #add_attribute
316
-
317
- 1.1.0 (June 03, 2008)
318
- Added support for dependent attributes
319
- Fixed the attributes_for build strategy to not build associations
320
- Added support for sequences
321
-
322
- 1.0.0 (May 31, 2008)
323
- First version