factory_bot_rails 5.0.0 → 6.1.0
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/LICENSE +1 -1
- data/NEWS.md +88 -0
- data/README.md +12 -8
- data/lib/factory_bot_rails/definition_file_paths.rb +12 -2
- data/lib/factory_bot_rails/generators/non_rspec_generator.rb +1 -1
- data/lib/factory_bot_rails/generators/rspec_generator.rb +1 -1
- data/lib/factory_bot_rails/railtie.rb +2 -5
- data/lib/factory_bot_rails/reloader.rb +8 -8
- data/lib/generators/factory_bot.rb +6 -2
- data/lib/generators/factory_bot/model/model_generator.rb +8 -8
- metadata +10 -10
- data/NEWS +0 -44
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c54ddb791dcf6eccf0e7ffe73cad7294a72b7d84a7c9b1c8be1b858e6ff0f209
|
4
|
+
data.tar.gz: 5c5b2bd9f09413c8a2cbbf5bba8c46f927c717de9caa798f3dd161cc464961cf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7fa8bcf45b0a9ac5bf032676109d341b7ec773479f53e71e3606a39b52a307b60c49d31ada524f25e77822a97724849a475afb5da0fffcefe7a91bb23d01f5cf
|
7
|
+
data.tar.gz: 7c78b5c2c241080b9bdbc59f402cb68034df1efe26ede947cc620118b67389272c14f063442946a1f5ea28c64204c273791c276c7b3c363b4cfa3b253bfdf611
|
data/LICENSE
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
Copyright (c) 2008-
|
1
|
+
Copyright (c) 2008-2020 Joe Ferris and thoughtbot, inc.
|
2
2
|
|
3
3
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
4
|
of this software and associated documentation files (the "Software"), to deal
|
data/NEWS.md
ADDED
@@ -0,0 +1,88 @@
|
|
1
|
+
factory\_bot\_rails versioning is synced with factory\_bot releases. For this reason
|
2
|
+
there might not be any notable changes in new versions of this project.
|
3
|
+
|
4
|
+
# NEWS
|
5
|
+
|
6
|
+
## 6.1.0 (July 8, 2020)
|
7
|
+
|
8
|
+
* Changed: factory\_bot dependency to ~> 6.1.0
|
9
|
+
|
10
|
+
## 6.0.0 (June 18, 2020)
|
11
|
+
|
12
|
+
* Fixed: generate a plural factory name when the --force-plural flag is provided
|
13
|
+
* Changed: factory\_bot dependency to ~> 6.0.0
|
14
|
+
* Removed: `"factory_bot.register_reloader"` initializer, now registering the
|
15
|
+
reloader after application initialization
|
16
|
+
* Removed: support for EOL versions of Ruby (2.3, 2.4) and Rails (4.2)
|
17
|
+
|
18
|
+
## 5.1.1 (September 24, 2019)
|
19
|
+
|
20
|
+
* Fixed: Ensure definitions do not load before I18n is initialized
|
21
|
+
|
22
|
+
## 5.1.0 (September 24, 2019)
|
23
|
+
|
24
|
+
* Changed: factory\_bot dependency to ~> 5.1.0
|
25
|
+
|
26
|
+
## 5.0.2 (April 14, 2019)
|
27
|
+
|
28
|
+
* Bugfix: Reload factory\_bot whenever the application changes to avoid holding
|
29
|
+
onto stale object references
|
30
|
+
* Bugfix: Avoid watching project root when no factory definitions exist
|
31
|
+
|
32
|
+
## 5.0.1 (February 9, 2019)
|
33
|
+
|
34
|
+
* Bugfix: Avoid watching files and directories that don't exist (to avoid a
|
35
|
+
file watching bug in Rails https://github.com/rails/rails/issues/32700)
|
36
|
+
|
37
|
+
## 5.0.0 (February 1, 2019)
|
38
|
+
|
39
|
+
* Added: calling reload! in the Rails console will reload any factory definition files that have changed
|
40
|
+
* Added: support for custom generator templates
|
41
|
+
* Added: `definition_file_paths` configuration option, making it easier to place factories in custom locations
|
42
|
+
* Changed: namespaced models are now generated inside a directory matching the namespace
|
43
|
+
* Changed: added newline between factories generated into the same file
|
44
|
+
* Removed: support for EOL version of Ruby and Rails
|
45
|
+
|
46
|
+
## 4.11.1 (September 7, 2018)
|
47
|
+
|
48
|
+
* Update generator to use dynamic attributes instead of deprecated static attributes
|
49
|
+
|
50
|
+
## 4.11.0 (August 16, 2018)
|
51
|
+
|
52
|
+
* No notable changes
|
53
|
+
|
54
|
+
## 4.10.0 (May 25, 2018)
|
55
|
+
|
56
|
+
* No notable changes
|
57
|
+
|
58
|
+
## 4.8.2 (October 20, 2017)
|
59
|
+
|
60
|
+
* Rename factory\_girl\_rails to factory\_bot\_rails
|
61
|
+
|
62
|
+
## 4.7.0 (April 1, 2016)
|
63
|
+
|
64
|
+
* No notable changes
|
65
|
+
|
66
|
+
## 4.6.0 (February 1, 2016)
|
67
|
+
|
68
|
+
* No notable changes
|
69
|
+
|
70
|
+
## 4.5.0 (October 17, 2014)
|
71
|
+
|
72
|
+
* Improved README
|
73
|
+
|
74
|
+
## 4.4.1 (February 26, 2014)
|
75
|
+
|
76
|
+
* Support Spring
|
77
|
+
|
78
|
+
## 4.2.1 (February 8, 2013)
|
79
|
+
|
80
|
+
* Fix bug when configuring FG and RSpec fixture directory
|
81
|
+
* Remove debugging
|
82
|
+
* Require factory\_girl\_rails explicitly in generator
|
83
|
+
|
84
|
+
## 4.2.0 (January 25, 2013)
|
85
|
+
|
86
|
+
* Add appraisal and get test suite working reliably with turn gem
|
87
|
+
* Support MiniTest
|
88
|
+
* Allow a custom directory for factories to be specified
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# factory_bot_rails [![Build Status][ci-image]][ci] [![Code Climate][grade-image]][grade] [![Gem Version][version-image]][version]
|
1
|
+
# factory_bot_rails [![Build Status][ci-image]][ci] [![Code Climate][grade-image]][grade] [![Gem Version][version-image]][version]
|
2
2
|
|
3
3
|
[factory_bot][fb] is a fixtures replacement with a straightforward definition
|
4
4
|
syntax, support for multiple build strategies (saved instances, unsaved
|
@@ -66,9 +66,14 @@ This will cause factory\_bot\_rails to automatically load factories in
|
|
66
66
|
It is possible to use this setting to share factories from a gem:
|
67
67
|
|
68
68
|
```rb
|
69
|
+
begin
|
70
|
+
require 'factory_bot_rails'
|
71
|
+
rescue LoadError
|
72
|
+
end
|
73
|
+
|
69
74
|
class MyEngine < ::Rails::Engine
|
70
|
-
config.factory_bot.definition_file_paths
|
71
|
-
File.expand_path('../factories', __FILE__) if defined?(FactoryBotRails)
|
75
|
+
config.factory_bot.definition_file_paths +=
|
76
|
+
[File.expand_path('../factories', __FILE__)] if defined?(FactoryBotRails)
|
72
77
|
end
|
73
78
|
```
|
74
79
|
|
@@ -109,7 +114,7 @@ end
|
|
109
114
|
```
|
110
115
|
|
111
116
|
Note that factory\_bot\_rails will not automatically load files in custom
|
112
|
-
locations unless you add them to `config.factory_bot.
|
117
|
+
locations unless you add them to `config.factory_bot.definition_file_paths` as
|
113
118
|
well.
|
114
119
|
|
115
120
|
The suffix option allows you to customize the name of the generated file with a
|
@@ -145,19 +150,18 @@ generating all of your factories in `test/factories.rb` or `spec/factories.rb`.
|
|
145
150
|
|
146
151
|
Please see [CONTRIBUTING.md](CONTRIBUTING.md).
|
147
152
|
|
148
|
-
factory_bot_rails was originally written by Joe Ferris and is
|
149
|
-
Clayton. Many improvements and bugfixes were contributed by the [open source
|
153
|
+
factory_bot_rails was originally written by Joe Ferris and is maintained by thoughtbot. Many improvements and bugfixes were contributed by the [open source
|
150
154
|
community](https://github.com/thoughtbot/factory_bot_rails/graphs/contributors).
|
151
155
|
|
152
156
|
## License
|
153
157
|
|
154
|
-
factory_bot_rails is Copyright © 2008-
|
158
|
+
factory_bot_rails is Copyright © 2008-2020 Joe Ferris and thoughtbot. It is free
|
155
159
|
software, and may be redistributed under the terms specified in the
|
156
160
|
[LICENSE](LICENSE) file.
|
157
161
|
|
158
162
|
## About thoughtbot
|
159
163
|
|
160
|
-

|
161
165
|
|
162
166
|
factory_bot_rails is maintained and funded by thoughtbot, inc.
|
163
167
|
The names and logos for thoughtbot are trademarks of thoughtbot, inc.
|
@@ -2,8 +2,6 @@
|
|
2
2
|
|
3
3
|
module FactoryBotRails
|
4
4
|
class DefinitionFilePaths
|
5
|
-
attr_reader :files, :directories
|
6
|
-
|
7
5
|
def initialize(definition_file_paths)
|
8
6
|
@files = []
|
9
7
|
@directories = {}
|
@@ -13,5 +11,17 @@ module FactoryBotRails
|
|
13
11
|
@directories[path.to_s] = [:rb]
|
14
12
|
end
|
15
13
|
end
|
14
|
+
|
15
|
+
def directories
|
16
|
+
@directories.select { |path| Dir.exist?(path) }
|
17
|
+
end
|
18
|
+
|
19
|
+
def files
|
20
|
+
@files.select { |file| File.exist?(file) }
|
21
|
+
end
|
22
|
+
|
23
|
+
def any?
|
24
|
+
directories.any? || files.any?
|
25
|
+
end
|
16
26
|
end
|
17
27
|
end
|
@@ -18,12 +18,9 @@ module FactoryBotRails
|
|
18
18
|
FactoryBot.definition_file_paths = definition_file_paths
|
19
19
|
end
|
20
20
|
|
21
|
-
|
22
|
-
Reloader.new(app, config).run
|
23
|
-
end
|
24
|
-
|
25
|
-
config.after_initialize do
|
21
|
+
config.after_initialize do |app|
|
26
22
|
FactoryBot.find_definitions
|
23
|
+
Reloader.new(app).run
|
27
24
|
end
|
28
25
|
|
29
26
|
private
|
@@ -4,23 +4,23 @@ require "factory_bot_rails/definition_file_paths"
|
|
4
4
|
|
5
5
|
module FactoryBotRails
|
6
6
|
class Reloader
|
7
|
-
def initialize(app
|
7
|
+
def initialize(app)
|
8
8
|
@app = app
|
9
|
-
@
|
9
|
+
@paths = DefinitionFilePaths.new(FactoryBot.definition_file_paths)
|
10
10
|
end
|
11
11
|
|
12
12
|
def run
|
13
|
+
return unless @paths.any?
|
14
|
+
|
13
15
|
register_reloader(build_reloader)
|
14
16
|
end
|
15
17
|
|
16
18
|
private
|
17
19
|
|
18
|
-
attr_reader :app
|
20
|
+
attr_reader :app
|
19
21
|
|
20
22
|
def build_reloader
|
21
|
-
|
22
|
-
|
23
|
-
reloader_class.new(paths.files, paths.directories) do
|
23
|
+
reloader_class.new(@paths.files, @paths.directories) do
|
24
24
|
FactoryBot.reload
|
25
25
|
end
|
26
26
|
end
|
@@ -30,8 +30,8 @@ module FactoryBotRails
|
|
30
30
|
end
|
31
31
|
|
32
32
|
def register_reloader(reloader)
|
33
|
-
|
34
|
-
reloader.
|
33
|
+
app.reloader.to_prepare do
|
34
|
+
reloader.execute
|
35
35
|
end
|
36
36
|
|
37
37
|
app.reloaders << reloader
|
@@ -8,14 +8,18 @@ module FactoryBot
|
|
8
8
|
File.dirname(__FILE__),
|
9
9
|
"factory_bot",
|
10
10
|
generator_name,
|
11
|
-
"templates"
|
11
|
+
"templates"
|
12
12
|
)
|
13
13
|
|
14
14
|
File.expand_path(path)
|
15
15
|
end
|
16
16
|
|
17
|
+
def factory_name
|
18
|
+
class_name.gsub("::", "").underscore
|
19
|
+
end
|
20
|
+
|
17
21
|
def explicit_class_option
|
18
|
-
return if class_name ==
|
22
|
+
return if class_name.underscore == factory_name
|
19
23
|
|
20
24
|
", class: '#{class_name}'"
|
21
25
|
end
|
@@ -8,21 +8,21 @@ module FactoryBot
|
|
8
8
|
:attributes,
|
9
9
|
type: :array,
|
10
10
|
default: [],
|
11
|
-
banner: "field:type field:type"
|
11
|
+
banner: "field:type field:type"
|
12
12
|
)
|
13
13
|
|
14
14
|
class_option(
|
15
15
|
:dir,
|
16
16
|
type: :string,
|
17
17
|
default: "test/factories",
|
18
|
-
desc: "The directory or file root where factories belong"
|
18
|
+
desc: "The directory or file root where factories belong"
|
19
19
|
)
|
20
20
|
|
21
21
|
class_option(
|
22
22
|
:suffix,
|
23
23
|
type: :string,
|
24
24
|
default: nil,
|
25
|
-
desc: "Suffix to add factory file"
|
25
|
+
desc: "Suffix to add factory file"
|
26
26
|
)
|
27
27
|
|
28
28
|
def create_fixture_file
|
@@ -43,7 +43,7 @@ module FactoryBot
|
|
43
43
|
insert_into_file(
|
44
44
|
factories_file,
|
45
45
|
factory_definition,
|
46
|
-
after: "FactoryBot.define do\n"
|
46
|
+
after: "FactoryBot.define do\n"
|
47
47
|
)
|
48
48
|
end
|
49
49
|
|
@@ -54,17 +54,17 @@ module FactoryBot
|
|
54
54
|
|
55
55
|
def factory_definition
|
56
56
|
<<~RUBY
|
57
|
-
factory :#{
|
58
|
-
#{factory_attributes.gsub(/^/,
|
57
|
+
factory :#{factory_name}#{explicit_class_option} do
|
58
|
+
#{factory_attributes.gsub(/^/, " ")}
|
59
59
|
end
|
60
60
|
|
61
61
|
RUBY
|
62
62
|
end
|
63
63
|
|
64
64
|
def factory_attributes
|
65
|
-
attributes.map
|
65
|
+
attributes.map { |attribute|
|
66
66
|
"#{attribute.name} { #{attribute.default.inspect} }"
|
67
|
-
|
67
|
+
}.join("\n")
|
68
68
|
end
|
69
69
|
|
70
70
|
def filename
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: factory_bot_rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 6.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Joe Ferris
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-07-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: factory_bot
|
@@ -16,30 +16,30 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 6.1.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 6.1.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: railties
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 5.0.0
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: 5.0.0
|
41
41
|
description: factory_bot_rails provides integration between factory_bot and rails
|
42
|
-
|
42
|
+
5.0 or newer
|
43
43
|
email: jferris@thoughtbot.com
|
44
44
|
executables: []
|
45
45
|
extensions: []
|
@@ -47,7 +47,7 @@ extra_rdoc_files: []
|
|
47
47
|
files:
|
48
48
|
- CONTRIBUTING.md
|
49
49
|
- LICENSE
|
50
|
-
- NEWS
|
50
|
+
- NEWS.md
|
51
51
|
- README.md
|
52
52
|
- lib/factory_bot_rails.rb
|
53
53
|
- lib/factory_bot_rails/definition_file_paths.rb
|
@@ -79,9 +79,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
79
79
|
- !ruby/object:Gem::Version
|
80
80
|
version: '0'
|
81
81
|
requirements: []
|
82
|
-
rubygems_version: 3.
|
82
|
+
rubygems_version: 3.1.2
|
83
83
|
signing_key:
|
84
84
|
specification_version: 4
|
85
|
-
summary: factory_bot_rails provides integration between factory_bot and rails
|
85
|
+
summary: factory_bot_rails provides integration between factory_bot and rails 5.0
|
86
86
|
or newer
|
87
87
|
test_files: []
|
data/NEWS
DELETED
@@ -1,44 +0,0 @@
|
|
1
|
-
factory_bot_rails versioning is synced with factory_bot releases. For this reason
|
2
|
-
there might not be any notable changes in new versions of this project.
|
3
|
-
|
4
|
-
5.0.0
|
5
|
-
Added: calling reload! in the Rails console will reload any factory definition files that have changed
|
6
|
-
Added: support for custom generator templates
|
7
|
-
Added: definition_file_paths configuration option, making it easier to place factories in custom locations
|
8
|
-
Changed: namespaced models are now generated inside a directory matching the namespace
|
9
|
-
Changed: added newline between factories generated into the same file
|
10
|
-
Removed: support for EOL version of Ruby and Rails
|
11
|
-
|
12
|
-
4.11.1 (September 7, 2018)
|
13
|
-
Update generator to use dynamic attributes instead of deprecated static attributes
|
14
|
-
|
15
|
-
4.11.0 (August 16, 2018)
|
16
|
-
No notable changes
|
17
|
-
|
18
|
-
4.10.0 (May 25, 2018)
|
19
|
-
No notable changes
|
20
|
-
|
21
|
-
4.8.2 (October 20, 2017)
|
22
|
-
Rename factory_girl_rails to factory_bot_rails
|
23
|
-
|
24
|
-
4.7.0 (April 1, 2016)
|
25
|
-
No notable changes
|
26
|
-
|
27
|
-
4.6.0 (February 1, 2016)
|
28
|
-
No notable changes
|
29
|
-
|
30
|
-
4.5.0 (October 17, 2014)
|
31
|
-
Improved README
|
32
|
-
|
33
|
-
4.4.1 (February 26, 2014)
|
34
|
-
Support Spring
|
35
|
-
|
36
|
-
4.2.1 (February 8, 2013)
|
37
|
-
Fix bug when configuring FG and RSpec fixture directory
|
38
|
-
Remove debugging
|
39
|
-
Require factory_girl_rails explicitly in generator
|
40
|
-
|
41
|
-
4.2.0 (January 25, 2013)
|
42
|
-
Add appraisal and get test suite working reliably with turn gem
|
43
|
-
Support MiniTest
|
44
|
-
Allow a custom directory for factories to be specified
|