factory_bot 6.2.1 → 6.4.1

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: 3bcbbd8bee01abdb25a5cfdbbbbca29396f587236f0c20f8300adbf6e32f783c
4
- data.tar.gz: 94d8e73507ae61edba7fb3129ee74c4fe9998a8fb78614ecba9966199561c8e4
3
+ metadata.gz: cd4158347cdd07c24704cef28823fee2a36da8ff245ca904dcc7a4f2554f1b35
4
+ data.tar.gz: 3ad522d063147cc2db17aba8a44328cb87a10b6dcf285adcfb4e02bc5ab86f1d
5
5
  SHA512:
6
- metadata.gz: e97d9530810f0de00f6e0129df37db52722ee8d430f7b118ffdcebdc0eecc1e1532356b7c8e01cc85265c04f18eb174d3d5ff09fe235c5f30ceb7b5e16432508
7
- data.tar.gz: 71b77c30b16c89588d6946505be547374321597e8e16f89673766cda94b22188dc28070a34144ae126dad93042de0173e1d92173237ae1e929a3131e85569a51
6
+ metadata.gz: bba849cae19f841877a2cfa2421e23a75560c9b75f96d1934a3db3128f1345b7349d86925795494c7b6e785bf0a19876d5b6dd6375c09dbed96a3ae2e86187cd
7
+ data.tar.gz: 2edd6b923df8ddb5e4a07c755bda1c9b279776236f587fc333043ee62bb82172dd0bf578c0f7f2297156b4dd057a775d5ef43b277cf6cb8d85ef8dc337065dba
data/CONTRIBUTING.md CHANGED
@@ -94,12 +94,12 @@ Use [standard] to automatically format your code:
94
94
  bundle exec rake standard:fix
95
95
  ```
96
96
 
97
- [repo]: https://github.com/thoughtbot/factory_bot/tree/master
97
+ [repo]: https://github.com/thoughtbot/factory_bot/tree/main
98
98
  [fork]: https://help.github.com/articles/fork-a-repo/
99
99
  [branch]: https://help.github.com/articles/creating-and-deleting-branches-within-your-repository/
100
100
  [pr]: https://help.github.com/articles/using-pull-requests/
101
101
  [standard]: https://github.com/testdouble/standard
102
102
  [appraisal]: https://github.com/thoughtbot/appraisal
103
- [reproduction script]: https://github.com/thoughtbot/factory_bot/blob/master/.github/REPRODUCTION_SCRIPT.rb
103
+ [reproduction script]: https://github.com/thoughtbot/factory_bot/blob/main/.github/REPRODUCTION_SCRIPT.rb
104
104
 
105
105
  Inspired by https://github.com/middleman/middleman-heroku/blob/master/CONTRIBUTING.md
data/GETTING_STARTED.md CHANGED
@@ -1,3 +1,19 @@
1
+ **Deprecated**
2
+
3
+ See our extensive reference, guides, and cookbook in [the factory_bot book][].
4
+
5
+ For information on integrations with third party libraries, such as RSpec or
6
+ Rails, see [the factory_bot wiki][].
7
+
8
+ We also have [a detailed introductory video][], available for free on Upcase.
9
+
10
+ [a detailed introductory video]: https://upcase.com/videos/factory-bot?utm_source=github&utm_medium=open-source&utm_campaign=factory-girl
11
+ [the factory_bot book]: https://thoughtbot.github.io/factory_bot
12
+ [the factory_bot wiki]: https://github.com/thoughtbot/factory_bot/wiki
13
+
14
+ This document is deprecated and preserved for historical use. It may disappear
15
+ at any time.
16
+
1
17
  Getting Started
2
18
  ===============
3
19
 
@@ -269,6 +285,9 @@ user = create(:user)
269
285
  # Returns a hash of attributes that can be used to build a User instance
270
286
  attrs = attributes_for(:user)
271
287
 
288
+ # Integrates with Ruby 3.0's support for pattern matching assignment
289
+ attributes_for(:user) => {email:, name:, **attrs}
290
+
272
291
  # Returns an object with all defined attributes stubbed out
273
292
  stub = build_stubbed(:user)
274
293
 
@@ -281,7 +300,7 @@ end
281
300
  ### Attribute overrides
282
301
 
283
302
  No matter which strategy is used, it's possible to override the defined
284
- attributes by passing a hash:
303
+ attributes by passing a Hash:
285
304
 
286
305
  ```ruby
287
306
  # Build a User instance and override the first_name property
@@ -290,6 +309,29 @@ user.first_name
290
309
  # => "Joe"
291
310
  ```
292
311
 
312
+ Overriding associations is also supported:
313
+
314
+ ```ruby
315
+ account = build(:account, :deluxe)
316
+ friends = build_list(:user, 2)
317
+
318
+ user = build(:user, account: account, friends: friends)
319
+ ```
320
+
321
+ Ruby 3.1's support for [omitting values][] from `Hash` literals dovetails with
322
+ attribute overrides and provides an opportunity to limit the repetition of
323
+ variable names:
324
+
325
+ ```ruby
326
+ account = build(:account, :deluxe)
327
+ friends = build_list(:user, 2)
328
+
329
+ # The keyword arguments correspond to local variable names, so omit their values
330
+ user = build(:user, account:, friends:)
331
+ ```
332
+
333
+ [omitting values]: https://docs.ruby-lang.org/en/3.1/syntax/literals_rdoc.html#label-Hash+Literals
334
+
293
335
  ### `build_stubbed` and `Marshal.dump`
294
336
 
295
337
  Note that objects created with `build_stubbed` cannot be serialized with
@@ -424,7 +466,7 @@ end
424
466
  Method Name / Reserved Word Attributes
425
467
  -------------------------------
426
468
 
427
- If your attributes conflict with existing methods or reserved words (all methods in the [DefinitionProxy](https://github.com/thoughtbot/factory_bot/blob/master/lib/factory_bot/definition_proxy.rb) class) you can define them with `add_attribute`.
469
+ If your attributes conflict with existing methods or reserved words (all methods in the [DefinitionProxy](https://github.com/thoughtbot/factory_bot/blob/main/lib/factory_bot/definition_proxy.rb) class) you can define them with `add_attribute`.
428
470
 
429
471
  ```ruby
430
472
  factory :dna do
@@ -929,7 +971,7 @@ end
929
971
  Note that this approach works with `build`, `build_stubbed`, and `create`, but
930
972
  the associations will return `nil` when using `attributes_for`.
931
973
 
932
- Also, note that if you assign any attributes inside a custom `initialize_with`
974
+ Also, note that if you assign any attributes inside a custom `initialize_with`
933
975
  (e.g. `initialize_with { new(**attributes) }`), those attributes should not refer to `instance`,
934
976
  since it will be `nil`.
935
977
 
@@ -992,6 +1034,17 @@ factory :user do
992
1034
  end
993
1035
  ```
994
1036
 
1037
+ With Ruby 2.7's support for [numbered parameters][], inline definitions can be
1038
+ even more abbreviated:
1039
+
1040
+ ```ruby
1041
+ factory :user do
1042
+ sequence(:email) { "person#{_1}@example.com" }
1043
+ end
1044
+ ```
1045
+
1046
+ [numbered parameters]: https://ruby-doc.org/core-2.7.1/Proc.html#class-Proc-label-Numbered+parameters
1047
+
995
1048
  ### Initial value
996
1049
 
997
1050
  You can override the initial value. Any value that responds to the `#next`
@@ -1206,11 +1259,11 @@ FactoryBot.define do
1206
1259
  created_at { 8.days.ago }
1207
1260
  updated_at { 4.days.ago }
1208
1261
  end
1209
-
1262
+
1210
1263
  factory :user, traits: [:timestamps] do
1211
1264
  username { "john_doe" }
1212
1265
  end
1213
-
1266
+
1214
1267
  factory :post do
1215
1268
  timestamps
1216
1269
  title { "Traits rock" }
@@ -1872,6 +1925,10 @@ class JsonStrategy
1872
1925
  def result(evaluation)
1873
1926
  @strategy.result(evaluation).to_json
1874
1927
  end
1928
+
1929
+ def to_sym
1930
+ :json
1931
+ end
1875
1932
  end
1876
1933
  ```
1877
1934
 
@@ -1912,6 +1969,10 @@ class JsonStrategy
1912
1969
  evaluation.notify(:make_json_awesome, json)
1913
1970
  end
1914
1971
  end
1972
+
1973
+ def to_sym
1974
+ :json
1975
+ end
1915
1976
  end
1916
1977
 
1917
1978
  FactoryBot.register_strategy(:json, JsonStrategy)
@@ -1966,7 +2027,7 @@ ActiveSupport Instrumentation
1966
2027
 
1967
2028
  In order to track what factories are created (and with what build strategy),
1968
2029
  `ActiveSupport::Notifications` are included to provide a way to subscribe to
1969
- factories being run. One example would be to track factories based on a
2030
+ factories being compiled and run. One example would be to track factories based on a
1970
2031
  threshold of execution time.
1971
2032
 
1972
2033
  ```ruby
@@ -2000,6 +2061,29 @@ config.after(:suite) do
2000
2061
  end
2001
2062
  ```
2002
2063
 
2064
+ Another example could involve tracking the attributes and traits that factories are compiled with. If you're using RSpec, you could add `before(:suite)` and `after(:suite)` blocks that subscribe to `factory_bot.compile_factory` notifications:
2065
+
2066
+ ```ruby
2067
+ factory_bot_results = {}
2068
+ config.before(:suite) do
2069
+ ActiveSupport::Notifications.subscribe("factory_bot.compile_factory") do |name, start, finish, id, payload|
2070
+ factory_name = payload[:name]
2071
+ factory_class = payload[:class]
2072
+ attributes = payload[:attributes]
2073
+ traits = payload[:traits]
2074
+ factory_bot_results[factory_class] ||= {}
2075
+ factory_bot_results[factory_class][factory_name] = {
2076
+ attributes: attributes.map(&:name)
2077
+ traits: traits.map(&:name)
2078
+ }
2079
+ end
2080
+ end
2081
+
2082
+ config.after(:suite) do
2083
+ puts factory_bot_results
2084
+ end
2085
+ ```
2086
+
2003
2087
  Rails Preloaders and RSpec
2004
2088
  --------------------------
2005
2089
 
data/NEWS.md CHANGED
@@ -1,9 +1,46 @@
1
1
  # News
2
2
 
3
+ ## 6.4.1 (November 20, 2023)
4
+
5
+ * Fix: factories with traits pass their class to ActiveSupport::Notifications
6
+ (makicamel).
7
+
8
+ ## 6.4.0 (November 17, 2023)
9
+
10
+ * Added: if `build_stubbed` detects a UUID primary key, generate the correct
11
+ type (Peter Boling, Alexandre Ruban).
12
+ * Docs: show examples of Ruby 3 syntactic sugars (Sean Doyle).
13
+ * Internal: resolve test warning messages (Mike Burns).
14
+
15
+
16
+ ## 6.3.0 (September 1, 2023)
17
+
18
+ * Fix: link to changelog for RubyGems (Berkan Ünal).
19
+ * Fix: integrate with Ruby 3.2's `did_you_mean` library (Daniel Colson).
20
+ * Changed: explicitly define `#destroyed?` within the `Stub` strategy to return `false` to be consistent
21
+ with ActiveRecord (Benjamin Fleischer).
22
+ * Added: announce `factory_bot.compile_factory` notification (Sean Doyle).
23
+ * Docs: clarify that custom strategies need to define `#to_sym` (Edmund Korley, Jonas S).
24
+ * Docs: fix CI link in README (Mark Huk).
25
+ * Docs: fix GitHub links (Robert Fletcher).
26
+ * Docs: install this library with `bundle add` (Glauco Custódio).
27
+ * Docs: re-write into mdBook (Mike Burns, Sara Jackson, Stefanni Brasil)
28
+ * Docs: clarify that automatic trait definitions could introduce new linting errors (Lawrence Chou).
29
+ * Internal: skip TruffleRuby on Rails 5.0, 5.1, 5.2 (Andrii Konchyn).
30
+ * Internal: fix typoes throughout codebase (Yudai Takada).
31
+ * Internal: run CI on `actions/checkout` v3 (Yudai Takada).
32
+ * Internal: follow standardrb code style (Yudai Takada).
33
+ * Internal: stop using Hound (Daniel Nolan).
34
+ * Internal: only run simplecov on C Ruby (Daniel Colson).
35
+ * Internal: quieter Cucumber (Daniel Colson).
36
+ * Internal: Ruby 3.2 support (Daniel Colson).
37
+ * Internal: Mike Burns is the CODEOWNER (Stefanni Brasil).
38
+
3
39
  ## 6.2.1 (March 8, 2022)
4
40
  * Added: CI testing against truffleruby
5
41
  * Changed: Documentation improvements for sequences and traits
6
42
  * Fixed: ActiveSupport::Notifications reporting strategy through associations now report as symbols
43
+ * BREAKING CHANGE: Custom strategies now need to define a `to_sym` method to specify the strategy identifier
7
44
  * Fixed: `add_attribute` with reserved keywords assigns values correctly
8
45
 
9
46
  ## 6.2.0 (May 7, 2021)
@@ -27,7 +64,9 @@
27
64
  * Added: automatic definition of traits for Active Record enum attributes, enabled by default
28
65
  (Note that this required changing where factory_bot constantizes the build
29
66
  class, which may affect applications that were using abstract factories for
30
- inheritance. See issue #1409.)
67
+ inheritance. See issue #1409.) (This may break `FactoryBot.lint` because
68
+ there may be previously non-existing factory+trait combinations being
69
+ defined and checked)
31
70
  * Added: `traits_for_enum` method to define traits for non-Active Record enums
32
71
  * Added: `build_stubbed_starting_id=` option to define the starting id for `build_stubbed`
33
72
  * Removed: deprecated methods on the top-level `FactoryBot` module meant only for internal use
data/README.md CHANGED
@@ -16,24 +16,26 @@ Check out the [guide](https://github.com/thoughtbot/factory_bot/blob/4-9-0-stabl
16
16
  Documentation
17
17
  -------------
18
18
 
19
- You should find the documentation for your version of factory_bot on [Rubygems](https://rubygems.org/gems/factory_bot).
19
+ See our extensive reference, guides, and cookbook in [the factory_bot book][].
20
20
 
21
- See [GETTING_STARTED] for information on defining and using factories. We also
22
- have [a detailed introductory video][], available for free on Upcase.
21
+ For information on integrations with third party libraries, such as RSpec or
22
+ Rails, see [the factory_bot wiki][].
23
+
24
+ We also have [a detailed introductory video][], available for free on Upcase.
23
25
 
24
26
  [a detailed introductory video]: https://upcase.com/videos/factory-bot?utm_source=github&utm_medium=open-source&utm_campaign=factory-girl
27
+ [the factory_bot book]: https://thoughtbot.github.io/factory_bot
28
+ [the factory_bot wiki]: https://github.com/thoughtbot/factory_bot/wiki
25
29
 
26
30
  Install
27
31
  --------
28
32
 
29
- Add the following line to Gemfile:
33
+ Run:
30
34
 
31
35
  ```ruby
32
- gem 'factory_bot'
36
+ bundle add factory_bot
33
37
  ```
34
38
 
35
- and run `bundle install` from your shell.
36
-
37
39
  To install the gem manually from your shell, run:
38
40
 
39
41
  ```shell
@@ -43,7 +45,7 @@ gem install factory_bot
43
45
  Supported Ruby versions
44
46
  -----------------------
45
47
 
46
- Supported Ruby versions are listed in [`.github/workflows/build.yml`](https://github.com/thoughtbot/factory_bot/blob/master/.github/workflows/build.yml)
48
+ Supported Ruby versions are listed in [`.github/workflows/build.yml`](https://github.com/thoughtbot/factory_bot/blob/main/.github/workflows/build.yml)
47
49
 
48
50
  More Information
49
51
  ----------------
@@ -53,8 +55,8 @@ More Information
53
55
  * [Issues](https://github.com/thoughtbot/factory_bot/issues)
54
56
  * [GIANT ROBOTS SMASHING INTO OTHER GIANT ROBOTS](https://robots.thoughtbot.com/)
55
57
 
56
- [GETTING_STARTED]: https://github.com/thoughtbot/factory_bot/blob/master/GETTING_STARTED.md
57
- [NAME]: https://github.com/thoughtbot/factory_bot/blob/master/NAME.md
58
+ [GETTING_STARTED]: https://github.com/thoughtbot/factory_bot/blob/main/GETTING_STARTED.md
59
+ [NAME]: https://github.com/thoughtbot/factory_bot/blob/main/NAME.md
58
60
 
59
61
  Useful Tools
60
62
  ------------
@@ -64,7 +66,7 @@ Useful Tools
64
66
  Contributing
65
67
  ------------
66
68
 
67
- Please see [CONTRIBUTING.md](https://github.com/thoughtbot/factory_bot/blob/master/CONTRIBUTING.md).
69
+ Please see [CONTRIBUTING.md](https://github.com/thoughtbot/factory_bot/blob/main/CONTRIBUTING.md).
68
70
 
69
71
  factory_bot was originally written by Joe Ferris and is maintained by thoughtbot.
70
72
  Many improvements and bugfixes were contributed by the [open source
@@ -73,11 +75,11 @@ community](https://github.com/thoughtbot/factory_bot/graphs/contributors).
73
75
  License
74
76
  -------
75
77
 
76
- factory_bot is Copyright © 2008-2020 Joe Ferris and thoughtbot. It is free
78
+ factory_bot is Copyright © 2008-2022 Joe Ferris and thoughtbot. It is free
77
79
  software, and may be redistributed under the terms specified in the
78
80
  [LICENSE] file.
79
81
 
80
- [LICENSE]: https://github.com/thoughtbot/factory_bot/blob/master/LICENSE
82
+ [LICENSE]: https://github.com/thoughtbot/factory_bot/blob/main/LICENSE
81
83
 
82
84
 
83
85
  About thoughtbot
@@ -94,8 +96,8 @@ See [our other projects][community] or
94
96
 
95
97
  [community]: https://thoughtbot.com/community?utm_source=github
96
98
  [hire]: https://thoughtbot.com/hire-us?utm_source=github
97
- [ci-image]: https://github.com/thoughtbot/factory_bot/actions/workflows/build.yml/badge.svg
98
- [ci]: https://github.com/thoughtbot/factory_bot/actions?query=workflow%3A.github%2Fworkflows%2Fbuild.yml+branch%3Amaster++
99
+ [ci-image]: https://github.com/thoughtbot/factory_bot/actions/workflows/build.yml/badge.svg?branch=main
100
+ [ci]: https://github.com/thoughtbot/factory_bot/actions?query=workflow%3ABuild+branch%3Amain
99
101
  [grade-image]: https://codeclimate.com/github/thoughtbot/factory_bot/badges/gpa.svg
100
102
  [grade]: https://codeclimate.com/github/thoughtbot/factory_bot
101
103
  [version-image]: https://badge.fury.io/rb/factory_bot.svg
@@ -12,8 +12,8 @@ module FactoryBot
12
12
 
13
13
  -> {
14
14
  value = case block.arity
15
- when 1, -1, -2 then instance_exec(self, &block)
16
- else instance_exec(&block)
15
+ when 1, -1, -2 then instance_exec(self, &block)
16
+ else instance_exec(&block)
17
17
  end
18
18
  raise SequenceAbuseError if FactoryBot::Sequence === value
19
19
 
@@ -2,6 +2,7 @@ module FactoryBot
2
2
  # @api private
3
3
  class Definition
4
4
  attr_reader :defined_traits, :declarations, :name, :registered_enums
5
+ attr_accessor :klass
5
6
 
6
7
  def initialize(name, base_traits = [])
7
8
  @name = name
@@ -52,11 +53,19 @@ module FactoryBot
52
53
  declarations.attributes
53
54
 
54
55
  defined_traits.each do |defined_trait|
56
+ defined_trait.klass ||= klass
55
57
  base_traits.each { |bt| bt.define_trait defined_trait }
56
58
  additional_traits.each { |at| at.define_trait defined_trait }
57
59
  end
58
60
 
59
61
  @compiled = true
62
+
63
+ ActiveSupport::Notifications.instrument "factory_bot.compile_factory", {
64
+ name: name,
65
+ attributes: declarations.attributes,
66
+ traits: defined_traits,
67
+ class: klass || self.klass
68
+ }
60
69
  end
61
70
  end
62
71
 
@@ -115,15 +124,26 @@ module FactoryBot
115
124
  raise error_with_definition_name(error)
116
125
  end
117
126
 
118
- def error_with_definition_name(error)
119
- message = error.message
120
- message.insert(
121
- message.index("\nDid you mean?") || message.length,
122
- " referenced within \"#{name}\" definition"
123
- )
127
+ # detailed_message introduced in Ruby 3.2 for cleaner integration with
128
+ # did_you_mean. See https://bugs.ruby-lang.org/issues/18564
129
+ if KeyError.method_defined?(:detailed_message)
130
+ def error_with_definition_name(error)
131
+ message = error.message + " referenced within \"#{name}\" definition"
124
132
 
125
- error.class.new(message).tap do |new_error|
126
- new_error.set_backtrace(error.backtrace)
133
+ error.class.new(message, key: error.key, receiver: error.receiver)
134
+ .tap { |new_error| new_error.set_backtrace(error.backtrace) }
135
+ end
136
+ else
137
+ def error_with_definition_name(error)
138
+ message = error.message
139
+ message.insert(
140
+ message.index("\nDid you mean?") || message.length,
141
+ " referenced within \"#{name}\" definition"
142
+ )
143
+
144
+ error.class.new(message).tap do |new_error|
145
+ new_error.set_backtrace(error.backtrace)
146
+ end
127
147
  end
128
148
  end
129
149
 
@@ -151,7 +151,7 @@ module FactoryBot
151
151
  def association(name, *options)
152
152
  if block_given?
153
153
  raise AssociationDefinitionError.new(
154
- "Unexpected block passed to '#{name}' association "\
154
+ "Unexpected block passed to '#{name}' association " \
155
155
  "in '#{@definition.name}' factory"
156
156
  )
157
157
  else
@@ -39,9 +39,21 @@ module FactoryBot
39
39
 
40
40
  def key_error_with_custom_message(key_error)
41
41
  message = key_error.message.sub("key not found", "#{@name} not registered")
42
- error = KeyError.new(message)
43
- error.set_backtrace(key_error.backtrace)
44
- error
42
+ new_key_error(message, key_error).tap do |error|
43
+ error.set_backtrace(key_error.backtrace)
44
+ end
45
+ end
46
+
47
+ # detailed_message introduced in Ruby 3.2 for cleaner integration with
48
+ # did_you_mean. See https://bugs.ruby-lang.org/issues/18564
49
+ if KeyError.method_defined?(:detailed_message)
50
+ def new_key_error(message, key_error)
51
+ KeyError.new(message, key: key_error.key, receiver: key_error.receiver)
52
+ end
53
+ else
54
+ def new_key_error(message, _)
55
+ KeyError.new(message)
56
+ end
45
57
  end
46
58
  end
47
59
  end
@@ -47,13 +47,17 @@ module FactoryBot
47
47
 
48
48
  private
49
49
 
50
- def next_id
51
- @@next_id += 1
50
+ def next_id(result_instance)
51
+ if uuid_primary_key?(result_instance)
52
+ SecureRandom.uuid
53
+ else
54
+ @@next_id += 1
55
+ end
52
56
  end
53
57
 
54
58
  def stub_database_interaction_on_result(result_instance)
55
59
  if has_settable_id?(result_instance)
56
- result_instance.id ||= next_id
60
+ result_instance.id ||= next_id(result_instance)
57
61
  end
58
62
 
59
63
  result_instance.instance_eval do
@@ -66,12 +70,12 @@ module FactoryBot
66
70
  end
67
71
 
68
72
  def destroyed?
69
- nil
73
+ false
70
74
  end
71
75
 
72
76
  DISABLED_PERSISTENCE_METHODS.each do |write_method|
73
77
  define_singleton_method(write_method) do |*args|
74
- raise "stubbed models are not allowed to access the database - "\
78
+ raise "stubbed models are not allowed to access the database - " \
75
79
  "#{self.class}##{write_method}(#{args.join(",")})"
76
80
  end
77
81
  end
@@ -83,6 +87,13 @@ module FactoryBot
83
87
  result_instance.class.primary_key
84
88
  end
85
89
 
90
+ def uuid_primary_key?(result_instance)
91
+ result_instance.respond_to?(:column_for_attribute) &&
92
+ (column = result_instance.column_for_attribute(result_instance.class.primary_key)) &&
93
+ column.respond_to?(:sql_type) &&
94
+ column.sql_type == "uuid"
95
+ end
96
+
86
97
  def clear_changes_information(result_instance)
87
98
  if result_instance.respond_to?(:clear_changes_information)
88
99
  result_instance.clear_changes_information
@@ -15,7 +15,7 @@ module FactoryBot
15
15
  end
16
16
 
17
17
  delegate :add_callback, :declare_attribute, :to_create, :define_trait, :constructor,
18
- :callbacks, :attributes, to: :@definition
18
+ :callbacks, :attributes, :klass, :klass=, to: :@definition
19
19
 
20
20
  def names
21
21
  [@name]
@@ -1,3 +1,3 @@
1
1
  module FactoryBot
2
- VERSION = "6.2.1".freeze
2
+ VERSION = "6.4.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: 6.2.1
4
+ version: 6.4.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: 2022-03-18 00:00:00.000000000 Z
12
+ date: 2023-11-20 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -236,7 +236,8 @@ files:
236
236
  homepage: https://github.com/thoughtbot/factory_bot
237
237
  licenses:
238
238
  - MIT
239
- metadata: {}
239
+ metadata:
240
+ changelog_uri: https://github.com/thoughtbot/factory_bot/blob/main/NEWS.md
240
241
  post_install_message:
241
242
  rdoc_options: []
242
243
  require_paths:
@@ -252,7 +253,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
252
253
  - !ruby/object:Gem::Version
253
254
  version: '0'
254
255
  requirements: []
255
- rubygems_version: 3.1.6
256
+ rubygems_version: 3.4.10
256
257
  signing_key:
257
258
  specification_version: 4
258
259
  summary: factory_bot provides a framework and DSL for defining and using model instance