factory_bot 6.2.1 → 6.5.4

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.
data/lib/factory_bot.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  require "set"
2
+ require "active_support"
2
3
  require "active_support/core_ext/module/delegation"
3
4
  require "active_support/core_ext/module/attribute_accessors"
4
5
  require "active_support/deprecation"
@@ -45,6 +46,7 @@ require "factory_bot/decorator/attribute_hash"
45
46
  require "factory_bot/decorator/disallows_duplicates_registry"
46
47
  require "factory_bot/decorator/invocation_tracker"
47
48
  require "factory_bot/decorator/new_constructor"
49
+ require "factory_bot/uri_manager"
48
50
  require "factory_bot/linter"
49
51
  require "factory_bot/version"
50
52
 
@@ -57,6 +59,9 @@ module FactoryBot
57
59
  mattr_accessor :automatically_define_enum_traits, instance_accessor: false
58
60
  self.automatically_define_enum_traits = true
59
61
 
62
+ mattr_accessor :sequence_setting_timeout, instance_accessor: false
63
+ self.sequence_setting_timeout = 3
64
+
60
65
  # Look for errors in factories and (optionally) their traits.
61
66
  # Parameters:
62
67
  # factories - which factories to lint; omit for all factories
@@ -72,17 +77,43 @@ module FactoryBot
72
77
 
73
78
  # Set the starting value for ids when using the build_stubbed strategy
74
79
  #
75
- # Arguments:
76
- # * starting_id +Integer+
77
- # The new starting id value.
80
+ # @param [Integer] starting_id The new starting id value.
78
81
  def self.build_stubbed_starting_id=(starting_id)
79
82
  Strategy::Stub.next_id = starting_id - 1
80
83
  end
81
84
 
82
85
  class << self
86
+ # @!method rewind_sequence(*uri_parts)
87
+ # Rewind an individual global or inline sequence.
88
+ #
89
+ # @param [Array<Symbol>, String] uri_parts The components of the sequence URI.
90
+ #
91
+ # @example Rewinding a sequence by its URI parts
92
+ # rewind_sequence(:factory_name, :trait_name, :sequence_name)
93
+ #
94
+ # @example Rewinding a sequence by its URI string
95
+ # rewind_sequence("factory_name/trait_name/sequence_name")
96
+ #
97
+ # @!method set_sequence(*uri_parts, value)
98
+ # Set the sequence to a specific value, providing the new value is within
99
+ # the sequence set.
100
+ #
101
+ # @param [Array<Symbol>, String] uri_parts The components of the sequence URI.
102
+ # @param [Object] value The new value for the sequence. This must be a value that is
103
+ # within the sequence definition. For example, you cannot set
104
+ # a String sequence to an Integer value.
105
+ #
106
+ # @example
107
+ # set_sequence(:factory_name, :trait_name, :sequence_name, 450)
108
+ # @example
109
+ # set_sequence([:factory_name, :trait_name, :sequence_name], 450)
110
+ # @example
111
+ # set_sequence("factory_name/trait_name/sequence_name", 450)
83
112
  delegate :factories,
84
113
  :register_strategy,
85
114
  :rewind_sequences,
115
+ :rewind_sequence,
116
+ :set_sequence,
86
117
  :strategy_by_name,
87
118
  to: Internal
88
119
  end
metadata CHANGED
@@ -1,15 +1,14 @@
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.5.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josh Clayton
8
8
  - Joe Ferris
9
- autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2022-03-18 00:00:00.000000000 Z
11
+ date: 1980-01-02 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: activesupport
@@ -17,14 +16,14 @@ dependencies:
17
16
  requirements:
18
17
  - - ">="
19
18
  - !ruby/object:Gem::Version
20
- version: 5.0.0
19
+ version: 6.1.0
21
20
  type: :runtime
22
21
  prerelease: false
23
22
  version_requirements: !ruby/object:Gem::Requirement
24
23
  requirements:
25
24
  - - ">="
26
25
  - !ruby/object:Gem::Version
27
- version: 5.0.0
26
+ version: 6.1.0
28
27
  - !ruby/object:Gem::Dependency
29
28
  name: activerecord
30
29
  requirement: !ruby/object:Gem::Requirement
@@ -81,6 +80,20 @@ dependencies:
81
80
  - - ">="
82
81
  - !ruby/object:Gem::Version
83
82
  version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: mutex_m
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
84
97
  - !ruby/object:Gem::Dependency
85
98
  name: rake
86
99
  requirement: !ruby/object:Gem::Requirement
@@ -232,12 +245,13 @@ files:
232
245
  - lib/factory_bot/syntax/methods.rb
233
246
  - lib/factory_bot/syntax_runner.rb
234
247
  - lib/factory_bot/trait.rb
248
+ - lib/factory_bot/uri_manager.rb
235
249
  - lib/factory_bot/version.rb
236
250
  homepage: https://github.com/thoughtbot/factory_bot
237
251
  licenses:
238
252
  - MIT
239
- metadata: {}
240
- post_install_message:
253
+ metadata:
254
+ changelog_uri: https://github.com/thoughtbot/factory_bot/blob/main/NEWS.md
241
255
  rdoc_options: []
242
256
  require_paths:
243
257
  - lib
@@ -245,15 +259,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
245
259
  requirements:
246
260
  - - ">="
247
261
  - !ruby/object:Gem::Version
248
- version: 2.5.0
262
+ version: 3.0.0
249
263
  required_rubygems_version: !ruby/object:Gem::Requirement
250
264
  requirements:
251
265
  - - ">="
252
266
  - !ruby/object:Gem::Version
253
267
  version: '0'
254
268
  requirements: []
255
- rubygems_version: 3.1.6
256
- signing_key:
269
+ rubygems_version: 3.6.7
257
270
  specification_version: 4
258
271
  summary: factory_bot provides a framework and DSL for defining and using model instance
259
272
  factories.