factory_bot 6.4.2 → 6.4.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/NEWS.md +17 -0
- data/lib/factory_bot/decorator.rb +5 -17
- data/lib/factory_bot/definition_proxy.rb +2 -2
- data/lib/factory_bot/evaluation.rb +3 -7
- data/lib/factory_bot/evaluator.rb +3 -4
- data/lib/factory_bot/factory.rb +2 -2
- data/lib/factory_bot/strategy/stub.rb +3 -2
- data/lib/factory_bot/syntax/default.rb +2 -2
- data/lib/factory_bot/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6c4ecc28ea64e833dbf0f8b745343006acddb3375381ade459e6e9d970b34730
|
4
|
+
data.tar.gz: 04ae226f770eea6f4dcc76b199d901c3574e9098f62a857d1ad257147c1f7b4c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3e3364ba162e34e4c24c0381bf5bf7720c5c888e476930cf7c15d0a83bd0d359f3213eb17148bd937d1ae581011bf6b6c63cb80538f8a9e59ec4165971ed0011
|
7
|
+
data.tar.gz: 30837bf0ba98458de0056c02bd401ce2c8aa2ead83c3a33431fecbabf29a429531874705e89df71378d8a326c3d73e08dae71c0968acab540a0fc2f68095178b
|
data/NEWS.md
CHANGED
@@ -1,5 +1,22 @@
|
|
1
1
|
# News
|
2
2
|
|
3
|
+
## 6.4.5 (December 29, 2023)
|
4
|
+
|
5
|
+
* Changed: Support Ruby 3.0+, Rails 6.1+ (Mike Burns).
|
6
|
+
|
7
|
+
## 6.4.4 (December 27, 2023)
|
8
|
+
|
9
|
+
* Internal: Remove observer dependency (Earlopain).
|
10
|
+
|
11
|
+
## 6.4.3 (December 26, 2023)
|
12
|
+
|
13
|
+
* Fix: Support models without ID setters in build_stubbed (Olivier Bellone).
|
14
|
+
* Fix: Explicit observer dependency (Oleg Antonyan).
|
15
|
+
* Internal: Add Rails 7.1 to CI (Olivier Bellone).
|
16
|
+
* Internal: Bump github actions/checkout to v4 (Lorenzo Zabot)
|
17
|
+
* Internal: Stop passing disable-error_highlight in CI (Mike Burns).
|
18
|
+
* Internal: Relax the exception message check (Mike Burns).
|
19
|
+
|
3
20
|
## 6.4.2 (November 22, 2023)
|
4
21
|
|
5
22
|
* Fix: top-level traits pass their class to ActiveSupport::Notifications
|
@@ -6,24 +6,12 @@ module FactoryBot
|
|
6
6
|
@component = component
|
7
7
|
end
|
8
8
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
@component.send(...)
|
13
|
-
end
|
14
|
-
|
15
|
-
def send(...)
|
16
|
-
__send__(...)
|
17
|
-
end
|
18
|
-
RUBY
|
19
|
-
else
|
20
|
-
def method_missing(name, *args, &block) # rubocop:disable Style/MissingRespondToMissing
|
21
|
-
@component.send(name, *args, &block)
|
22
|
-
end
|
9
|
+
def method_missing(...) # rubocop:disable Style/MethodMissingSuper
|
10
|
+
@component.send(...)
|
11
|
+
end
|
23
12
|
|
24
|
-
|
25
|
-
|
26
|
-
end
|
13
|
+
def send(...)
|
14
|
+
__send__(...)
|
27
15
|
end
|
28
16
|
|
29
17
|
def respond_to_missing?(name, include_private = false)
|
@@ -119,8 +119,8 @@ module FactoryBot
|
|
119
119
|
# end
|
120
120
|
#
|
121
121
|
# Except that no globally available sequence will be defined.
|
122
|
-
def sequence(name,
|
123
|
-
sequence = Sequence.new(name,
|
122
|
+
def sequence(name, ...)
|
123
|
+
sequence = Sequence.new(name, ...)
|
124
124
|
FactoryBot::Internal.register_inline_sequence(sequence)
|
125
125
|
add_attribute(name) { increment_sequence(sequence) }
|
126
126
|
end
|
@@ -1,13 +1,10 @@
|
|
1
|
-
require "observer"
|
2
|
-
|
3
1
|
module FactoryBot
|
4
2
|
class Evaluation
|
5
|
-
|
6
|
-
|
7
|
-
def initialize(evaluator, attribute_assigner, to_create)
|
3
|
+
def initialize(evaluator, attribute_assigner, to_create, observer)
|
8
4
|
@evaluator = evaluator
|
9
5
|
@attribute_assigner = attribute_assigner
|
10
6
|
@to_create = to_create
|
7
|
+
@observer = observer
|
11
8
|
end
|
12
9
|
|
13
10
|
delegate :object, :hash, to: :@attribute_assigner
|
@@ -20,8 +17,7 @@ module FactoryBot
|
|
20
17
|
end
|
21
18
|
|
22
19
|
def notify(name, result_instance)
|
23
|
-
|
24
|
-
notify_observers(name, result_instance)
|
20
|
+
@observer.update(name, result_instance)
|
25
21
|
end
|
26
22
|
end
|
27
23
|
end
|
@@ -35,14 +35,13 @@ module FactoryBot
|
|
35
35
|
|
36
36
|
attr_accessor :instance
|
37
37
|
|
38
|
-
def method_missing(method_name,
|
38
|
+
def method_missing(method_name, ...)
|
39
39
|
if @instance.respond_to?(method_name)
|
40
|
-
@instance.send(method_name,
|
40
|
+
@instance.send(method_name, ...)
|
41
41
|
else
|
42
|
-
SyntaxRunner.new.send(method_name,
|
42
|
+
SyntaxRunner.new.send(method_name, ...)
|
43
43
|
end
|
44
44
|
end
|
45
|
-
ruby2_keywords :method_missing if respond_to?(:ruby2_keywords, true)
|
46
45
|
|
47
46
|
def respond_to_missing?(method_name, _include_private = false)
|
48
47
|
@instance.respond_to?(method_name) || SyntaxRunner.new.respond_to?(method_name)
|
data/lib/factory_bot/factory.rb
CHANGED
@@ -36,9 +36,9 @@ module FactoryBot
|
|
36
36
|
evaluator = evaluator_class.new(strategy, overrides.symbolize_keys)
|
37
37
|
attribute_assigner = AttributeAssigner.new(evaluator, build_class, &compiled_constructor)
|
38
38
|
|
39
|
+
observer = CallbacksObserver.new(callbacks, evaluator)
|
39
40
|
evaluation =
|
40
|
-
Evaluation.new(evaluator, attribute_assigner, compiled_to_create)
|
41
|
-
evaluation.add_observer(CallbacksObserver.new(callbacks, evaluator))
|
41
|
+
Evaluation.new(evaluator, attribute_assigner, compiled_to_create, observer)
|
42
42
|
|
43
43
|
strategy.result(evaluation).tap(&block)
|
44
44
|
end
|
@@ -83,8 +83,9 @@ module FactoryBot
|
|
83
83
|
end
|
84
84
|
|
85
85
|
def has_settable_id?(result_instance)
|
86
|
-
|
87
|
-
result_instance.class.primary_key
|
86
|
+
result_instance.respond_to?(:id=) &&
|
87
|
+
(!result_instance.class.respond_to?(:primary_key) ||
|
88
|
+
result_instance.class.primary_key)
|
88
89
|
end
|
89
90
|
|
90
91
|
def uuid_primary_key?(result_instance)
|
data/lib/factory_bot/version.rb
CHANGED
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: 6.4.
|
4
|
+
version: 6.4.5
|
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: 2023-
|
12
|
+
date: 2023-12-30 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|