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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b5f21ea97d90ed0a9c175d1ff2b04961bcf38fa981c2957ac3c9fd77fa7e2612
4
- data.tar.gz: 4698bcccd79fe5252ec751637f7f86b1e0810b2d9d5b52a69fb1d7dd5d238894
3
+ metadata.gz: 6c4ecc28ea64e833dbf0f8b745343006acddb3375381ade459e6e9d970b34730
4
+ data.tar.gz: 04ae226f770eea6f4dcc76b199d901c3574e9098f62a857d1ad257147c1f7b4c
5
5
  SHA512:
6
- metadata.gz: 74a79d529f84cece38fe558e1f6c9cb3213d9038e1b853bbe378ce86f3ce6c8168f057a438039670275845530122bb28e41cd8a5669a6f14a2886bfd20201c41
7
- data.tar.gz: d2b13eb9ca94da825becc7fb04a0535dfb72547375b2b824a6c447dec27a0426d37907a88de95b80f2b78d412fc7f8290311d102ad31bbcafcee4c78a24babf5
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
- if ::Gem::Version.new(::RUBY_VERSION) >= ::Gem::Version.new("2.7")
10
- class_eval(<<~RUBY, __FILE__, __LINE__ + 1)
11
- def method_missing(...) # rubocop:disable Style/MethodMissingSuper, Style/MissingRespondToMissing
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
- def send(symbol, *args, &block)
25
- __send__(symbol, *args, &block)
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, *args, &block)
123
- sequence = Sequence.new(name, *args, &block)
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
- include Observable
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
- changed
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, *args, &block)
38
+ def method_missing(method_name, ...)
39
39
  if @instance.respond_to?(method_name)
40
- @instance.send(method_name, *args, &block)
40
+ @instance.send(method_name, ...)
41
41
  else
42
- SyntaxRunner.new.send(method_name, *args, &block)
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)
@@ -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
- !result_instance.class.respond_to?(:primary_key) ||
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)
@@ -25,8 +25,8 @@ module FactoryBot
25
25
  end
26
26
  end
27
27
 
28
- def sequence(name, *args, &block)
29
- Internal.register_sequence(Sequence.new(name, *args, &block))
28
+ def sequence(name, ...)
29
+ Internal.register_sequence(Sequence.new(name, ...))
30
30
  end
31
31
 
32
32
  def trait(name, &block)
@@ -1,3 +1,3 @@
1
1
  module FactoryBot
2
- VERSION = "6.4.2".freeze
2
+ VERSION = "6.4.5".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: 6.4.2
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-11-22 00:00:00.000000000 Z
12
+ date: 2023-12-30 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport