factory_bot 4.10.0 → 6.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (80) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +1 -0
  3. data/CONTRIBUTING.md +52 -13
  4. data/GETTING_STARTED.md +613 -182
  5. data/LICENSE +1 -1
  6. data/NEWS.md +358 -0
  7. data/README.md +30 -26
  8. data/lib/factory_bot.rb +71 -140
  9. data/lib/factory_bot/aliases.rb +2 -2
  10. data/lib/factory_bot/attribute.rb +4 -39
  11. data/lib/factory_bot/attribute/association.rb +2 -2
  12. data/lib/factory_bot/attribute/dynamic.rb +2 -1
  13. data/lib/factory_bot/attribute_assigner.rb +24 -10
  14. data/lib/factory_bot/attribute_list.rb +3 -2
  15. data/lib/factory_bot/callback.rb +3 -10
  16. data/lib/factory_bot/configuration.rb +15 -19
  17. data/lib/factory_bot/declaration.rb +5 -5
  18. data/lib/factory_bot/declaration/association.rb +14 -1
  19. data/lib/factory_bot/declaration/dynamic.rb +3 -1
  20. data/lib/factory_bot/declaration/implicit.rb +7 -2
  21. data/lib/factory_bot/declaration_list.rb +3 -3
  22. data/lib/factory_bot/decorator.rb +5 -5
  23. data/lib/factory_bot/decorator/attribute_hash.rb +1 -1
  24. data/lib/factory_bot/decorator/invocation_tracker.rb +1 -1
  25. data/lib/factory_bot/definition.rb +49 -20
  26. data/lib/factory_bot/definition_hierarchy.rb +1 -11
  27. data/lib/factory_bot/definition_proxy.rb +125 -43
  28. data/lib/factory_bot/enum.rb +27 -0
  29. data/lib/factory_bot/errors.rb +7 -4
  30. data/lib/factory_bot/evaluation.rb +1 -1
  31. data/lib/factory_bot/evaluator.rb +9 -11
  32. data/lib/factory_bot/evaluator_class_definer.rb +1 -1
  33. data/lib/factory_bot/factory.rb +12 -12
  34. data/lib/factory_bot/factory_runner.rb +4 -4
  35. data/lib/factory_bot/find_definitions.rb +2 -2
  36. data/lib/factory_bot/internal.rb +91 -0
  37. data/lib/factory_bot/linter.rb +41 -28
  38. data/lib/factory_bot/null_factory.rb +13 -4
  39. data/lib/factory_bot/null_object.rb +2 -6
  40. data/lib/factory_bot/registry.rb +17 -8
  41. data/lib/factory_bot/reload.rb +2 -3
  42. data/lib/factory_bot/sequence.rb +5 -6
  43. data/lib/factory_bot/strategy/stub.rb +37 -37
  44. data/lib/factory_bot/strategy_calculator.rb +1 -1
  45. data/lib/factory_bot/strategy_syntax_method_registrar.rb +13 -2
  46. data/lib/factory_bot/syntax.rb +2 -2
  47. data/lib/factory_bot/syntax/default.rb +12 -24
  48. data/lib/factory_bot/syntax/methods.rb +32 -9
  49. data/lib/factory_bot/trait.rb +7 -4
  50. data/lib/factory_bot/version.rb +1 -1
  51. metadata +50 -65
  52. data/.autotest +0 -9
  53. data/.gitignore +0 -10
  54. data/.rspec +0 -3
  55. data/.simplecov +0 -4
  56. data/.travis.yml +0 -58
  57. data/Appraisals +0 -23
  58. data/Gemfile +0 -8
  59. data/Gemfile.lock +0 -103
  60. data/NEWS +0 -298
  61. data/Rakefile +0 -36
  62. data/cucumber.yml +0 -1
  63. data/factory_bot.gemspec +0 -36
  64. data/factory_girl.gemspec +0 -40
  65. data/gemfiles/3.2.gemfile +0 -10
  66. data/gemfiles/3.2.gemfile.lock +0 -107
  67. data/gemfiles/4.0.gemfile +0 -10
  68. data/gemfiles/4.0.gemfile.lock +0 -107
  69. data/gemfiles/4.1.gemfile +0 -10
  70. data/gemfiles/4.1.gemfile.lock +0 -106
  71. data/gemfiles/4.2.gemfile +0 -10
  72. data/gemfiles/4.2.gemfile.lock +0 -106
  73. data/gemfiles/5.0.gemfile +0 -10
  74. data/gemfiles/5.0.gemfile.lock +0 -104
  75. data/gemfiles/5.1.gemfile +0 -10
  76. data/gemfiles/5.1.gemfile.lock +0 -104
  77. data/lib/factory_bot/attribute/static.rb +0 -16
  78. data/lib/factory_bot/declaration/static.rb +0 -26
  79. data/lib/factory_bot/decorator/class_key_hash.rb +0 -28
  80. data/lib/factory_girl.rb +0 -5
@@ -1,10 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "activerecord-jdbcsqlite3-adapter", :platforms => :jruby
6
- gem "jdbc-sqlite3", :platforms => :jruby
7
- gem "sqlite3", "~> 1.3.10", :platforms => :ruby
8
- gem "activerecord", "~> 4.0.13"
9
-
10
- gemspec :name => "factory_bot", :path => "../"
@@ -1,107 +0,0 @@
1
- PATH
2
- remote: ..
3
- specs:
4
- factory_bot (4.10.0)
5
- activesupport (>= 3.0.0)
6
-
7
- GEM
8
- remote: https://rubygems.org/
9
- specs:
10
- activemodel (4.0.13)
11
- activesupport (= 4.0.13)
12
- builder (~> 3.1.0)
13
- activerecord (4.0.13)
14
- activemodel (= 4.0.13)
15
- activerecord-deprecated_finders (~> 1.0.2)
16
- activesupport (= 4.0.13)
17
- arel (~> 4.0.0)
18
- activerecord-deprecated_finders (1.0.4)
19
- activesupport (4.0.13)
20
- i18n (~> 0.6, >= 0.6.9)
21
- minitest (~> 4.2)
22
- multi_json (~> 1.3)
23
- thread_safe (~> 0.1)
24
- tzinfo (~> 0.3.37)
25
- appraisal (2.1.0)
26
- bundler
27
- rake
28
- thor (>= 0.14.0)
29
- arel (4.0.2)
30
- aruba (0.14.2)
31
- childprocess (~> 0.5.6)
32
- contracts (~> 0.9)
33
- cucumber (>= 1.3.19)
34
- ffi (~> 1.9.10)
35
- rspec-expectations (>= 2.99)
36
- thor (~> 0.19)
37
- builder (3.1.4)
38
- childprocess (0.5.9)
39
- ffi (~> 1.0, >= 1.0.11)
40
- concurrent-ruby (1.0.5)
41
- contracts (0.16.0)
42
- cucumber (1.3.20)
43
- builder (>= 2.1.2)
44
- diff-lcs (>= 1.1.3)
45
- gherkin (~> 2.12)
46
- multi_json (>= 1.7.5, < 2.0)
47
- multi_test (>= 0.1.2)
48
- diff-lcs (1.3)
49
- docile (1.1.5)
50
- ffi (1.9.18)
51
- gherkin (2.12.2)
52
- multi_json (~> 1.3)
53
- i18n (0.9.1)
54
- concurrent-ruby (~> 1.0)
55
- json (2.1.0)
56
- minitest (4.7.5)
57
- multi_json (1.12.2)
58
- multi_test (0.1.2)
59
- rake (12.2.1)
60
- rspec (3.7.0)
61
- rspec-core (~> 3.7.0)
62
- rspec-expectations (~> 3.7.0)
63
- rspec-mocks (~> 3.7.0)
64
- rspec-core (3.7.0)
65
- rspec-support (~> 3.7.0)
66
- rspec-expectations (3.7.0)
67
- diff-lcs (>= 1.2.0, < 2.0)
68
- rspec-support (~> 3.7.0)
69
- rspec-its (1.2.0)
70
- rspec-core (>= 3.0.0)
71
- rspec-expectations (>= 3.0.0)
72
- rspec-mocks (3.7.0)
73
- diff-lcs (>= 1.2.0, < 2.0)
74
- rspec-support (~> 3.7.0)
75
- rspec-support (3.7.0)
76
- simplecov (0.15.1)
77
- docile (~> 1.1.0)
78
- json (>= 1.8, < 3)
79
- simplecov-html (~> 0.10.0)
80
- simplecov-html (0.10.2)
81
- sqlite3 (1.3.13)
82
- thor (0.20.0)
83
- thread_safe (0.3.6)
84
- timecop (0.9.1)
85
- tzinfo (0.3.53)
86
- yard (0.9.12)
87
-
88
- PLATFORMS
89
- ruby
90
-
91
- DEPENDENCIES
92
- activerecord (~> 4.0.13)
93
- activerecord-jdbcsqlite3-adapter
94
- appraisal (~> 2.1.0)
95
- aruba
96
- cucumber (~> 1.3.15)
97
- factory_bot!
98
- jdbc-sqlite3
99
- rspec (~> 3.0)
100
- rspec-its (~> 1.0)
101
- simplecov
102
- sqlite3 (~> 1.3.10)
103
- timecop
104
- yard
105
-
106
- BUNDLED WITH
107
- 1.16.1
@@ -1,10 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "activerecord-jdbcsqlite3-adapter", :platforms => :jruby
6
- gem "jdbc-sqlite3", :platforms => :jruby
7
- gem "sqlite3", "~> 1.3.10", :platforms => :ruby
8
- gem "activerecord", "~> 4.1.14"
9
-
10
- gemspec :name => "factory_bot", :path => "../"
@@ -1,106 +0,0 @@
1
- PATH
2
- remote: ..
3
- specs:
4
- factory_bot (4.10.0)
5
- activesupport (>= 3.0.0)
6
-
7
- GEM
8
- remote: https://rubygems.org/
9
- specs:
10
- activemodel (4.1.16)
11
- activesupport (= 4.1.16)
12
- builder (~> 3.1)
13
- activerecord (4.1.16)
14
- activemodel (= 4.1.16)
15
- activesupport (= 4.1.16)
16
- arel (~> 5.0.0)
17
- activesupport (4.1.16)
18
- i18n (~> 0.6, >= 0.6.9)
19
- json (~> 1.7, >= 1.7.7)
20
- minitest (~> 5.1)
21
- thread_safe (~> 0.1)
22
- tzinfo (~> 1.1)
23
- appraisal (2.1.0)
24
- bundler
25
- rake
26
- thor (>= 0.14.0)
27
- arel (5.0.1.20140414130214)
28
- aruba (0.14.2)
29
- childprocess (~> 0.5.6)
30
- contracts (~> 0.9)
31
- cucumber (>= 1.3.19)
32
- ffi (~> 1.9.10)
33
- rspec-expectations (>= 2.99)
34
- thor (~> 0.19)
35
- builder (3.2.3)
36
- childprocess (0.5.9)
37
- ffi (~> 1.0, >= 1.0.11)
38
- concurrent-ruby (1.0.5)
39
- contracts (0.16.0)
40
- cucumber (1.3.20)
41
- builder (>= 2.1.2)
42
- diff-lcs (>= 1.1.3)
43
- gherkin (~> 2.12)
44
- multi_json (>= 1.7.5, < 2.0)
45
- multi_test (>= 0.1.2)
46
- diff-lcs (1.3)
47
- docile (1.1.5)
48
- ffi (1.9.18)
49
- gherkin (2.12.2)
50
- multi_json (~> 1.3)
51
- i18n (0.9.1)
52
- concurrent-ruby (~> 1.0)
53
- json (1.8.6)
54
- minitest (5.10.3)
55
- multi_json (1.12.2)
56
- multi_test (0.1.2)
57
- rake (12.2.1)
58
- rspec (3.7.0)
59
- rspec-core (~> 3.7.0)
60
- rspec-expectations (~> 3.7.0)
61
- rspec-mocks (~> 3.7.0)
62
- rspec-core (3.7.0)
63
- rspec-support (~> 3.7.0)
64
- rspec-expectations (3.7.0)
65
- diff-lcs (>= 1.2.0, < 2.0)
66
- rspec-support (~> 3.7.0)
67
- rspec-its (1.2.0)
68
- rspec-core (>= 3.0.0)
69
- rspec-expectations (>= 3.0.0)
70
- rspec-mocks (3.7.0)
71
- diff-lcs (>= 1.2.0, < 2.0)
72
- rspec-support (~> 3.7.0)
73
- rspec-support (3.7.0)
74
- simplecov (0.15.1)
75
- docile (~> 1.1.0)
76
- json (>= 1.8, < 3)
77
- simplecov-html (~> 0.10.0)
78
- simplecov-html (0.10.2)
79
- sqlite3 (1.3.13)
80
- thor (0.20.0)
81
- thread_safe (0.3.6)
82
- timecop (0.9.1)
83
- tzinfo (1.2.3)
84
- thread_safe (~> 0.1)
85
- yard (0.9.12)
86
-
87
- PLATFORMS
88
- ruby
89
-
90
- DEPENDENCIES
91
- activerecord (~> 4.1.14)
92
- activerecord-jdbcsqlite3-adapter
93
- appraisal (~> 2.1.0)
94
- aruba
95
- cucumber (~> 1.3.15)
96
- factory_bot!
97
- jdbc-sqlite3
98
- rspec (~> 3.0)
99
- rspec-its (~> 1.0)
100
- simplecov
101
- sqlite3 (~> 1.3.10)
102
- timecop
103
- yard
104
-
105
- BUNDLED WITH
106
- 1.16.1
@@ -1,10 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "activerecord-jdbcsqlite3-adapter", :platforms => :jruby
6
- gem "jdbc-sqlite3", :platforms => :jruby
7
- gem "sqlite3", "~> 1.3.10", :platforms => :ruby
8
- gem "activerecord", "~> 4.2.5.1"
9
-
10
- gemspec :name => "factory_bot", :path => "../"
@@ -1,106 +0,0 @@
1
- PATH
2
- remote: ..
3
- specs:
4
- factory_bot (4.10.0)
5
- activesupport (>= 3.0.0)
6
-
7
- GEM
8
- remote: https://rubygems.org/
9
- specs:
10
- activemodel (4.2.5.2)
11
- activesupport (= 4.2.5.2)
12
- builder (~> 3.1)
13
- activerecord (4.2.5.2)
14
- activemodel (= 4.2.5.2)
15
- activesupport (= 4.2.5.2)
16
- arel (~> 6.0)
17
- activesupport (4.2.5.2)
18
- i18n (~> 0.7)
19
- json (~> 1.7, >= 1.7.7)
20
- minitest (~> 5.1)
21
- thread_safe (~> 0.3, >= 0.3.4)
22
- tzinfo (~> 1.1)
23
- appraisal (2.1.0)
24
- bundler
25
- rake
26
- thor (>= 0.14.0)
27
- arel (6.0.4)
28
- aruba (0.14.2)
29
- childprocess (~> 0.5.6)
30
- contracts (~> 0.9)
31
- cucumber (>= 1.3.19)
32
- ffi (~> 1.9.10)
33
- rspec-expectations (>= 2.99)
34
- thor (~> 0.19)
35
- builder (3.2.3)
36
- childprocess (0.5.9)
37
- ffi (~> 1.0, >= 1.0.11)
38
- concurrent-ruby (1.0.5)
39
- contracts (0.16.0)
40
- cucumber (1.3.20)
41
- builder (>= 2.1.2)
42
- diff-lcs (>= 1.1.3)
43
- gherkin (~> 2.12)
44
- multi_json (>= 1.7.5, < 2.0)
45
- multi_test (>= 0.1.2)
46
- diff-lcs (1.3)
47
- docile (1.1.5)
48
- ffi (1.9.18)
49
- gherkin (2.12.2)
50
- multi_json (~> 1.3)
51
- i18n (0.9.1)
52
- concurrent-ruby (~> 1.0)
53
- json (1.8.6)
54
- minitest (5.10.3)
55
- multi_json (1.12.2)
56
- multi_test (0.1.2)
57
- rake (12.2.1)
58
- rspec (3.7.0)
59
- rspec-core (~> 3.7.0)
60
- rspec-expectations (~> 3.7.0)
61
- rspec-mocks (~> 3.7.0)
62
- rspec-core (3.7.0)
63
- rspec-support (~> 3.7.0)
64
- rspec-expectations (3.7.0)
65
- diff-lcs (>= 1.2.0, < 2.0)
66
- rspec-support (~> 3.7.0)
67
- rspec-its (1.2.0)
68
- rspec-core (>= 3.0.0)
69
- rspec-expectations (>= 3.0.0)
70
- rspec-mocks (3.7.0)
71
- diff-lcs (>= 1.2.0, < 2.0)
72
- rspec-support (~> 3.7.0)
73
- rspec-support (3.7.0)
74
- simplecov (0.15.1)
75
- docile (~> 1.1.0)
76
- json (>= 1.8, < 3)
77
- simplecov-html (~> 0.10.0)
78
- simplecov-html (0.10.2)
79
- sqlite3 (1.3.13)
80
- thor (0.20.0)
81
- thread_safe (0.3.6)
82
- timecop (0.9.1)
83
- tzinfo (1.2.3)
84
- thread_safe (~> 0.1)
85
- yard (0.9.12)
86
-
87
- PLATFORMS
88
- ruby
89
-
90
- DEPENDENCIES
91
- activerecord (~> 4.2.5.1)
92
- activerecord-jdbcsqlite3-adapter
93
- appraisal (~> 2.1.0)
94
- aruba
95
- cucumber (~> 1.3.15)
96
- factory_bot!
97
- jdbc-sqlite3
98
- rspec (~> 3.0)
99
- rspec-its (~> 1.0)
100
- simplecov
101
- sqlite3 (~> 1.3.10)
102
- timecop
103
- yard
104
-
105
- BUNDLED WITH
106
- 1.16.1
@@ -1,10 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "activerecord-jdbcsqlite3-adapter", :platforms => :jruby
6
- gem "jdbc-sqlite3", :platforms => :jruby
7
- gem "sqlite3", "~> 1.3.10", :platforms => :ruby
8
- gem "activerecord", "~> 5.0.0"
9
-
10
- gemspec :name => "factory_bot", :path => "../"
@@ -1,104 +0,0 @@
1
- PATH
2
- remote: ..
3
- specs:
4
- factory_bot (4.10.0)
5
- activesupport (>= 3.0.0)
6
-
7
- GEM
8
- remote: https://rubygems.org/
9
- specs:
10
- activemodel (5.0.6)
11
- activesupport (= 5.0.6)
12
- activerecord (5.0.6)
13
- activemodel (= 5.0.6)
14
- activesupport (= 5.0.6)
15
- arel (~> 7.0)
16
- activesupport (5.0.6)
17
- concurrent-ruby (~> 1.0, >= 1.0.2)
18
- i18n (~> 0.7)
19
- minitest (~> 5.1)
20
- tzinfo (~> 1.1)
21
- appraisal (2.1.0)
22
- bundler
23
- rake
24
- thor (>= 0.14.0)
25
- arel (7.1.4)
26
- aruba (0.14.2)
27
- childprocess (~> 0.5.6)
28
- contracts (~> 0.9)
29
- cucumber (>= 1.3.19)
30
- ffi (~> 1.9.10)
31
- rspec-expectations (>= 2.99)
32
- thor (~> 0.19)
33
- builder (3.2.3)
34
- childprocess (0.5.9)
35
- ffi (~> 1.0, >= 1.0.11)
36
- concurrent-ruby (1.0.5)
37
- contracts (0.16.0)
38
- cucumber (1.3.20)
39
- builder (>= 2.1.2)
40
- diff-lcs (>= 1.1.3)
41
- gherkin (~> 2.12)
42
- multi_json (>= 1.7.5, < 2.0)
43
- multi_test (>= 0.1.2)
44
- diff-lcs (1.3)
45
- docile (1.1.5)
46
- ffi (1.9.18)
47
- gherkin (2.12.2)
48
- multi_json (~> 1.3)
49
- i18n (0.9.1)
50
- concurrent-ruby (~> 1.0)
51
- json (2.1.0)
52
- minitest (5.10.3)
53
- multi_json (1.12.2)
54
- multi_test (0.1.2)
55
- rake (12.3.0)
56
- rspec (3.7.0)
57
- rspec-core (~> 3.7.0)
58
- rspec-expectations (~> 3.7.0)
59
- rspec-mocks (~> 3.7.0)
60
- rspec-core (3.7.0)
61
- rspec-support (~> 3.7.0)
62
- rspec-expectations (3.7.0)
63
- diff-lcs (>= 1.2.0, < 2.0)
64
- rspec-support (~> 3.7.0)
65
- rspec-its (1.2.0)
66
- rspec-core (>= 3.0.0)
67
- rspec-expectations (>= 3.0.0)
68
- rspec-mocks (3.7.0)
69
- diff-lcs (>= 1.2.0, < 2.0)
70
- rspec-support (~> 3.7.0)
71
- rspec-support (3.7.0)
72
- simplecov (0.15.1)
73
- docile (~> 1.1.0)
74
- json (>= 1.8, < 3)
75
- simplecov-html (~> 0.10.0)
76
- simplecov-html (0.10.2)
77
- sqlite3 (1.3.13)
78
- thor (0.20.0)
79
- thread_safe (0.3.6)
80
- timecop (0.9.1)
81
- tzinfo (1.2.3)
82
- thread_safe (~> 0.1)
83
- yard (0.9.12)
84
-
85
- PLATFORMS
86
- ruby
87
-
88
- DEPENDENCIES
89
- activerecord (~> 5.0.0)
90
- activerecord-jdbcsqlite3-adapter
91
- appraisal (~> 2.1.0)
92
- aruba
93
- cucumber (~> 1.3.15)
94
- factory_bot!
95
- jdbc-sqlite3
96
- rspec (~> 3.0)
97
- rspec-its (~> 1.0)
98
- simplecov
99
- sqlite3 (~> 1.3.10)
100
- timecop
101
- yard
102
-
103
- BUNDLED WITH
104
- 1.16.1