factory_bot 6.4.2 → 6.4.5

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: 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