factory_bot_rails 4.10.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.
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "factory_bot_rails/definition_file_paths"
4
+
5
+ module FactoryBotRails
6
+ class Reloader
7
+ def initialize(app)
8
+ @app = app
9
+ @paths = DefinitionFilePaths.new(FactoryBot.definition_file_paths)
10
+ end
11
+
12
+ def run
13
+ return unless @paths.any?
14
+
15
+ register_reloader(build_reloader)
16
+ end
17
+
18
+ private
19
+
20
+ attr_reader :app
21
+
22
+ def build_reloader
23
+ reloader_class.new(@paths.files, @paths.directories) do
24
+ FactoryBot.reload
25
+ end
26
+ end
27
+
28
+ def reloader_class
29
+ app.config.file_watcher
30
+ end
31
+
32
+ def register_reloader(reloader)
33
+ app.reloader.to_prepare do
34
+ reloader.execute
35
+ end
36
+
37
+ app.reloaders << reloader
38
+ end
39
+ end
40
+ end
@@ -1,14 +1,27 @@
1
- require 'rails/generators/named_base'
1
+ require "rails/generators/named_base"
2
2
 
3
3
  module FactoryBot
4
4
  module Generators
5
5
  class Base < Rails::Generators::NamedBase #:nodoc:
6
6
  def self.source_root
7
- @_factory_bot_source_root ||= File.expand_path(File.join(File.dirname(__FILE__), 'factory_bot', generator_name, 'templates'))
7
+ path = File.join(
8
+ File.dirname(__FILE__),
9
+ "factory_bot",
10
+ generator_name,
11
+ "templates"
12
+ )
13
+
14
+ File.expand_path(path)
15
+ end
16
+
17
+ def factory_name
18
+ class_name.gsub("::", "").underscore
8
19
  end
9
20
 
10
21
  def explicit_class_option
11
- ", class: '#{class_name}'" unless class_name == singular_table_name.camelize
22
+ return if class_name.underscore == factory_name
23
+
24
+ ", class: '#{class_name}'"
12
25
  end
13
26
  end
14
27
  end
@@ -1,5 +1,5 @@
1
- require 'generators/factory_bot'
2
- require 'factory_bot_rails'
1
+ require "generators/factory_bot"
2
+ require "factory_bot_rails"
3
3
 
4
4
  module FactoryBot
5
5
  module Generators
@@ -49,36 +49,30 @@ module FactoryBot
49
49
 
50
50
  def create_factory_file
51
51
  file = File.join(options[:dir], "#{filename}.rb")
52
- create_file(file, single_file_factory_definition)
52
+ template "factories.erb", file
53
53
  end
54
54
 
55
55
  def factory_definition
56
- <<-RUBY
57
- factory :#{singular_table_name}#{explicit_class_option} do
58
- #{factory_attributes.gsub(/^/, " ")}
59
- end
60
- RUBY
61
- end
56
+ <<~RUBY
57
+ factory :#{factory_name}#{explicit_class_option} do
58
+ #{factory_attributes.gsub(/^/, " ")}
59
+ end
62
60
 
63
- def single_file_factory_definition
64
- <<-RUBY
65
- FactoryBot.define do
66
- #{factory_definition.chomp}
67
- end
68
- RUBY
61
+ RUBY
69
62
  end
70
63
 
71
64
  def factory_attributes
72
- attributes.map do |attribute|
73
- "#{attribute.name} #{attribute.default.inspect}"
74
- end.join("\n")
65
+ attributes.map { |attribute|
66
+ "#{attribute.name} { #{attribute.default.inspect} }"
67
+ }.join("\n")
75
68
  end
76
69
 
77
70
  def filename
78
71
  if factory_bot_options[:filename_proc].present?
79
72
  factory_bot_options[:filename_proc].call(table_name)
80
73
  else
81
- [table_name, filename_suffix].compact.join('_')
74
+ name = File.join(class_path, plural_name)
75
+ [name, filename_suffix].compact.join("_")
82
76
  end
83
77
  end
84
78
 
@@ -91,8 +85,7 @@ RUBY
91
85
  end
92
86
 
93
87
  def generators
94
- config = FactoryBot::Railtie.config
95
- config.respond_to?(:app_generators) ? config.app_generators : config.generators
88
+ FactoryBotRails::Railtie.config.app_generators
96
89
  end
97
90
  end
98
91
  end
@@ -0,0 +1,3 @@
1
+ FactoryBot.define do
2
+ <%= factory_definition.rstrip %>
3
+ end
metadata CHANGED
@@ -1,86 +1,66 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: factory_bot_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.10.0
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: 2018-05-25 00:00:00.000000000 Z
11
+ date: 2020-07-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: railties
14
+ name: factory_bot
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 3.0.0
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: 3.0.0
26
+ version: 6.1.0
27
27
  - !ruby/object:Gem::Dependency
28
- name: factory_bot
28
+ name: railties
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: 4.10.0
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: 4.10.0
41
- description: |-
42
- factory_bot_rails provides integration between
43
- factory_bot and rails 3 or newer (currently just automatic factory definition
44
- loading)
40
+ version: 5.0.0
41
+ description: factory_bot_rails provides integration between factory_bot and rails
42
+ 5.0 or newer
45
43
  email: jferris@thoughtbot.com
46
44
  executables: []
47
45
  extensions: []
48
46
  extra_rdoc_files: []
49
47
  files:
50
- - Appraisals
51
48
  - CONTRIBUTING.md
52
- - Gemfile
53
- - Gemfile.lock
54
49
  - LICENSE
55
- - NEWS
50
+ - NEWS.md
56
51
  - README.md
57
- - Rakefile
58
- - bin/setup
59
- - factory_bot_rails.gemspec
60
- - factory_girl_rails.gemspec
61
- - features/fixture_replacement_config.feature
62
- - features/generators.feature
63
- - features/load_definitions.feature
64
- - features/step_definitions/appraisal.rb
65
- - features/step_definitions/rails_steps.rb
66
- - features/support/env.rb
67
- - gemfiles/rails3.2.gemfile
68
- - gemfiles/rails3.2.gemfile.lock
69
- - gemfiles/rails4.1.gemfile
70
- - gemfiles/rails4.1.gemfile.lock
71
- - gemfiles/rails4.2.gemfile
72
- - gemfiles/rails4.2.gemfile.lock
73
- - gemfiles/rails5.0.gemfile
74
- - gemfiles/rails5.0.gemfile.lock
75
52
  - lib/factory_bot_rails.rb
53
+ - lib/factory_bot_rails/definition_file_paths.rb
76
54
  - lib/factory_bot_rails/generator.rb
77
55
  - lib/factory_bot_rails/generators/non_rspec_generator.rb
78
56
  - lib/factory_bot_rails/generators/null_generator.rb
79
57
  - lib/factory_bot_rails/generators/rspec_generator.rb
80
58
  - lib/factory_bot_rails/railtie.rb
59
+ - lib/factory_bot_rails/reloader.rb
81
60
  - lib/generators/factory_bot.rb
82
61
  - lib/generators/factory_bot/model/model_generator.rb
83
- homepage: http://github.com/thoughtbot/factory_bot_rails
62
+ - lib/generators/factory_bot/model/templates/factories.erb
63
+ homepage: https://github.com/thoughtbot/factory_bot_rails
84
64
  licenses:
85
65
  - MIT
86
66
  metadata: {}
@@ -99,10 +79,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
99
79
  - !ruby/object:Gem::Version
100
80
  version: '0'
101
81
  requirements: []
102
- rubyforge_project:
103
- rubygems_version: 2.7.6
82
+ rubygems_version: 3.1.2
104
83
  signing_key:
105
84
  specification_version: 4
106
- summary: factory_bot_rails provides integration between factory_bot and rails 3 or
107
- newer
85
+ summary: factory_bot_rails provides integration between factory_bot and rails 5.0
86
+ or newer
108
87
  test_files: []
data/Appraisals DELETED
@@ -1,21 +0,0 @@
1
- # These are the versions of Rails we want to test against.
2
- appraise 'rails3.2' do
3
- gem 'rails', '~> 3.2.21'
4
- gem 'sass-rails'
5
- end
6
-
7
- appraise 'rails4.1' do
8
- gem 'rails', '~> 4.1.9'
9
- gem 'sass-rails'
10
- gem 'spring'
11
- end
12
-
13
- appraise 'rails4.2' do
14
- gem 'rails', '~> 4.2.0'
15
- end
16
-
17
- appraise "rails5.0" do
18
- gem "activerecord", "~> 5.0.0"
19
- gem "railties", "~> 5.0.0"
20
- gem "rspec-rails", "~> 3.5.0.beta4"
21
- end
data/Gemfile DELETED
@@ -1,20 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gemspec name: 'factory_bot_rails'
4
-
5
- gem 'appraisal'
6
- gem 'aruba'
7
- gem 'coffee-rails'
8
- gem 'cucumber', '1.3.19'
9
- gem 'jquery-rails'
10
- gem 'rake'
11
- gem 'rspec-rails'
12
- gem 'uglifier'
13
- gem 'test-unit'
14
-
15
- gem 'activerecord-jdbcsqlite3-adapter', platforms: :jruby
16
- gem 'jdbc-sqlite3', platforms: :jruby
17
- gem 'therubyrhino', platforms: :jruby
18
- gem 'jruby-openssl', platforms: :jruby
19
-
20
- gem 'sqlite3', platforms: :ruby
data/Gemfile.lock DELETED
@@ -1,144 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- factory_bot_rails (4.10.0)
5
- factory_bot (~> 4.10.0)
6
- railties (>= 3.0.0)
7
-
8
- GEM
9
- remote: https://rubygems.org/
10
- specs:
11
- actionpack (4.1.1)
12
- actionview (= 4.1.1)
13
- activesupport (= 4.1.1)
14
- rack (~> 1.5.2)
15
- rack-test (~> 0.6.2)
16
- actionview (4.1.1)
17
- activesupport (= 4.1.1)
18
- builder (~> 3.1)
19
- erubis (~> 2.7.0)
20
- activemodel (4.1.1)
21
- activesupport (= 4.1.1)
22
- builder (~> 3.1)
23
- activerecord (4.1.1)
24
- activemodel (= 4.1.1)
25
- activesupport (= 4.1.1)
26
- arel (~> 5.0.0)
27
- activerecord-jdbc-adapter (1.3.15)
28
- activerecord (>= 2.2)
29
- activerecord-jdbcsqlite3-adapter (1.3.15)
30
- activerecord-jdbc-adapter (~> 1.3.15)
31
- jdbc-sqlite3 (>= 3.7.2, < 3.9)
32
- activesupport (4.1.1)
33
- i18n (~> 0.6, >= 0.6.9)
34
- json (~> 1.7, >= 1.7.7)
35
- minitest (~> 5.1)
36
- thread_safe (~> 0.1)
37
- tzinfo (~> 1.1)
38
- appraisal (1.0.3)
39
- bundler
40
- rake
41
- thor (>= 0.14.0)
42
- arel (5.0.1.20140414130214)
43
- aruba (0.5.4)
44
- childprocess (>= 0.3.6)
45
- cucumber (>= 1.1.1)
46
- rspec-expectations (>= 2.7.0)
47
- builder (3.2.2)
48
- childprocess (0.5.3)
49
- ffi (~> 1.0, >= 1.0.11)
50
- coffee-rails (4.0.1)
51
- coffee-script (>= 2.2.0)
52
- railties (>= 4.0.0, < 5.0)
53
- coffee-script (2.2.0)
54
- coffee-script-source
55
- execjs
56
- coffee-script-source (1.7.0)
57
- cucumber (1.3.19)
58
- builder (>= 2.1.2)
59
- diff-lcs (>= 1.1.3)
60
- gherkin (~> 2.12)
61
- multi_json (>= 1.7.5, < 2.0)
62
- multi_test (>= 0.1.2)
63
- diff-lcs (1.2.5)
64
- erubis (2.7.0)
65
- execjs (2.0.2)
66
- factory_bot (4.10.0)
67
- activesupport (>= 3.0.0)
68
- ffi (1.9.3)
69
- ffi (1.9.3-java)
70
- gherkin (2.12.2)
71
- multi_json (~> 1.3)
72
- gherkin (2.12.2-java)
73
- multi_json (~> 1.3)
74
- i18n (0.7.0)
75
- jdbc-sqlite3 (3.8.7)
76
- jquery-rails (3.1.0)
77
- railties (>= 3.0, < 5.0)
78
- thor (>= 0.14, < 2.0)
79
- jruby-openssl (0.9.6-java)
80
- json (1.8.6)
81
- json (1.8.6-java)
82
- minitest (5.9.0)
83
- multi_json (1.11.2)
84
- multi_test (0.1.2)
85
- power_assert (0.2.3)
86
- rack (1.5.5)
87
- rack-test (0.6.3)
88
- rack (>= 1.0)
89
- railties (4.1.1)
90
- actionpack (= 4.1.1)
91
- activesupport (= 4.1.1)
92
- rake (>= 0.8.7)
93
- thor (>= 0.18.1, < 2.0)
94
- rake (11.1.2)
95
- rspec-core (2.14.8)
96
- rspec-expectations (2.14.5)
97
- diff-lcs (>= 1.1.3, < 2.0)
98
- rspec-mocks (2.14.6)
99
- rspec-rails (2.14.2)
100
- actionpack (>= 3.0)
101
- activemodel (>= 3.0)
102
- activesupport (>= 3.0)
103
- railties (>= 3.0)
104
- rspec-core (~> 2.14.0)
105
- rspec-expectations (~> 2.14.0)
106
- rspec-mocks (~> 2.14.0)
107
- sqlite3 (1.3.9)
108
- test-unit (3.0.9)
109
- power_assert
110
- therubyrhino (2.0.4)
111
- therubyrhino_jar (>= 1.7.3)
112
- therubyrhino_jar (1.7.4)
113
- thor (0.19.1)
114
- thread_safe (0.3.5)
115
- thread_safe (0.3.5-java)
116
- tzinfo (1.2.2)
117
- thread_safe (~> 0.1)
118
- uglifier (2.5.0)
119
- execjs (>= 0.3.0)
120
- json (>= 1.8.0)
121
-
122
- PLATFORMS
123
- java
124
- ruby
125
-
126
- DEPENDENCIES
127
- activerecord-jdbcsqlite3-adapter
128
- appraisal
129
- aruba
130
- coffee-rails
131
- cucumber (= 1.3.19)
132
- factory_bot_rails!
133
- jdbc-sqlite3
134
- jquery-rails
135
- jruby-openssl
136
- rake
137
- rspec-rails
138
- sqlite3
139
- test-unit
140
- therubyrhino
141
- uglifier
142
-
143
- BUNDLED WITH
144
- 1.16.1