factory_bot_rails 4.10.0 → 6.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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