active_record_data_loader 1.0.2 → 1.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 +5 -5
- data/.rubocop.yml +33 -7
- data/.travis.yml +4 -4
- data/CHANGELOG.md +1 -0
- data/Gemfile.lock +53 -47
- data/README.md +6 -2
- data/active_record_data_loader.gemspec +3 -3
- data/config/database.yml +2 -0
- data/docker-compose.yml +18 -0
- data/gemfiles/activerecord_6.gemfile +1 -1
- data/lib/active_record_data_loader/active_record/belongs_to_configuration.rb +1 -1
- data/lib/active_record_data_loader/active_record/model_data_generator.rb +2 -2
- data/lib/active_record_data_loader/active_record/polymorphic_belongs_to_configuration.rb +1 -1
- data/lib/active_record_data_loader/configuration.rb +1 -1
- data/lib/active_record_data_loader/version.rb +1 -1
- metadata +13 -13
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 33d3769ad2f8c008cf51e75a62b43ba3333dce8e7e45387e01ab3470f2a5bf6c
|
|
4
|
+
data.tar.gz: 6f2b812d1e3837d05ff565c050cd6c80110929136601fb95436996b14de4e809
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 8813fa219e7a710f147b79bb3a81826a5fe23ed7e3bef21a95fca310b3c8f3b09c7fb2c89d0cb3a65c825d01941eca8e394ee42900e13941d050e05fcb2c76d5
|
|
7
|
+
data.tar.gz: 43392902671095ffcf3d9f33984b7f77de3a9b2fb95bd99ee65378d046e2d509d34f8b92220de04642e6e33d816926215581caa58d02b0d30ac02011f1956776
|
data/.rubocop.yml
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
AllCops:
|
|
2
|
-
TargetRubyVersion: 2.
|
|
2
|
+
TargetRubyVersion: 2.5
|
|
3
|
+
NewCops: enable
|
|
4
|
+
SuggestExtensions: false
|
|
5
|
+
|
|
6
|
+
Layout/LineLength:
|
|
7
|
+
Max: 110
|
|
8
|
+
Exclude: ["*.gemspec"]
|
|
9
|
+
|
|
10
|
+
Layout/SpaceAroundMethodCallOperator:
|
|
11
|
+
Enabled: true
|
|
12
|
+
|
|
13
|
+
Lint/RaiseException:
|
|
14
|
+
Enabled: true
|
|
15
|
+
|
|
16
|
+
Lint/StructNewOverride:
|
|
17
|
+
Enabled: true
|
|
3
18
|
|
|
4
19
|
Lint/UnusedMethodArgument:
|
|
5
20
|
AllowUnusedKeywordArguments: true
|
|
@@ -11,20 +26,31 @@ Metrics/AbcSize:
|
|
|
11
26
|
Metrics/BlockLength:
|
|
12
27
|
Exclude: ["spec/**/*", "*.gemspec"]
|
|
13
28
|
|
|
14
|
-
Metrics/LineLength:
|
|
15
|
-
Max: 110
|
|
16
|
-
Exclude: ["*.gemspec"]
|
|
17
|
-
|
|
18
29
|
Metrics/MethodLength:
|
|
19
30
|
Max: 15
|
|
20
31
|
Exclude: ["spec/**/*"]
|
|
21
32
|
|
|
22
|
-
Style/
|
|
23
|
-
|
|
33
|
+
Style/CaseLikeIf:
|
|
34
|
+
Enabled: false
|
|
24
35
|
|
|
25
36
|
Style/Documentation:
|
|
26
37
|
Enabled: false
|
|
27
38
|
|
|
39
|
+
Style/ExponentialNotation:
|
|
40
|
+
Enabled: true
|
|
41
|
+
|
|
42
|
+
Style/FrozenStringLiteralComment:
|
|
43
|
+
Exclude: ["gemfiles/*"]
|
|
44
|
+
|
|
45
|
+
Style/HashEachMethods:
|
|
46
|
+
Enabled: true
|
|
47
|
+
|
|
48
|
+
Style/HashTransformKeys:
|
|
49
|
+
Enabled: true
|
|
50
|
+
|
|
51
|
+
Style/HashTransformValues:
|
|
52
|
+
Enabled: true
|
|
53
|
+
|
|
28
54
|
Style/StringLiterals:
|
|
29
55
|
EnforcedStyle: double_quotes
|
|
30
56
|
|
data/.travis.yml
CHANGED
|
@@ -3,10 +3,9 @@ language: ruby
|
|
|
3
3
|
env:
|
|
4
4
|
- COVERALLS_PARALLEL=true
|
|
5
5
|
rvm:
|
|
6
|
-
- 2.
|
|
7
|
-
- 2.
|
|
8
|
-
- 2.
|
|
9
|
-
- 2.6.3
|
|
6
|
+
- 2.5.9
|
|
7
|
+
- 2.6.7
|
|
8
|
+
- 2.7.3
|
|
10
9
|
gemfile:
|
|
11
10
|
- gemfiles/activerecord_5.gemfile
|
|
12
11
|
- gemfiles/rails.gemfile
|
|
@@ -14,6 +13,7 @@ gemfile:
|
|
|
14
13
|
- gemfiles/ffaker.gemfile
|
|
15
14
|
services:
|
|
16
15
|
- postgresql
|
|
16
|
+
- mysql
|
|
17
17
|
notifications:
|
|
18
18
|
webhooks: https://coveralls.io/webhook
|
|
19
19
|
before_install: "gem update --system && gem install bundler"
|
data/CHANGELOG.md
CHANGED
|
@@ -21,3 +21,4 @@ Initial stable release
|
|
|
21
21
|
|
|
22
22
|
[v1.0.0]: https://github.com/abeiderman/active_record_data_loader/releases/tag/v1.0.0
|
|
23
23
|
[v1.0.1]: https://github.com/abeiderman/active_record_data_loader/releases/tag/v1.0.1
|
|
24
|
+
[v1.0.2]: https://github.com/abeiderman/active_record_data_loader/releases/tag/v1.0.2
|
data/Gemfile.lock
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
active_record_data_loader (1.0
|
|
5
|
-
activerecord (>=
|
|
4
|
+
active_record_data_loader (1.1.0)
|
|
5
|
+
activerecord (>= 5.0)
|
|
6
6
|
|
|
7
7
|
GEM
|
|
8
8
|
remote: https://rubygems.org/
|
|
9
9
|
specs:
|
|
10
|
-
activemodel (5.2.
|
|
11
|
-
activesupport (= 5.2.
|
|
12
|
-
activerecord (5.2.
|
|
13
|
-
activemodel (= 5.2.
|
|
14
|
-
activesupport (= 5.2.
|
|
10
|
+
activemodel (5.2.4.5)
|
|
11
|
+
activesupport (= 5.2.4.5)
|
|
12
|
+
activerecord (5.2.4.5)
|
|
13
|
+
activemodel (= 5.2.4.5)
|
|
14
|
+
activesupport (= 5.2.4.5)
|
|
15
15
|
arel (>= 9.0)
|
|
16
|
-
activesupport (5.2.
|
|
16
|
+
activesupport (5.2.4.5)
|
|
17
17
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
|
18
18
|
i18n (>= 0.7, < 2)
|
|
19
19
|
minitest (~> 5.1)
|
|
@@ -23,9 +23,9 @@ GEM
|
|
|
23
23
|
rake
|
|
24
24
|
thor (>= 0.14.0)
|
|
25
25
|
arel (9.0.0)
|
|
26
|
-
ast (2.4.
|
|
26
|
+
ast (2.4.1)
|
|
27
27
|
coderay (1.1.2)
|
|
28
|
-
concurrent-ruby (1.1.
|
|
28
|
+
concurrent-ruby (1.1.8)
|
|
29
29
|
coveralls (0.8.23)
|
|
30
30
|
json (>= 1.8, < 3)
|
|
31
31
|
simplecov (~> 0.16.1)
|
|
@@ -33,46 +33,51 @@ GEM
|
|
|
33
33
|
thor (>= 0.19.4, < 2.0)
|
|
34
34
|
tins (~> 1.6)
|
|
35
35
|
diff-lcs (1.3)
|
|
36
|
-
docile (1.3.
|
|
37
|
-
i18n (1.
|
|
36
|
+
docile (1.3.2)
|
|
37
|
+
i18n (1.8.10)
|
|
38
38
|
concurrent-ruby (~> 1.0)
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
method_source (~> 0.9.0)
|
|
39
|
+
json (2.3.1)
|
|
40
|
+
method_source (1.0.0)
|
|
41
|
+
minitest (5.14.4)
|
|
42
|
+
mysql2 (0.5.3)
|
|
43
|
+
parallel (1.20.1)
|
|
44
|
+
parser (2.7.2.0)
|
|
45
|
+
ast (~> 2.4.1)
|
|
46
|
+
pg (1.2.3)
|
|
47
|
+
pry (0.13.1)
|
|
48
|
+
coderay (~> 1.1)
|
|
49
|
+
method_source (~> 1.0)
|
|
51
50
|
rainbow (3.0.0)
|
|
52
|
-
rake (
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
rspec-
|
|
57
|
-
|
|
51
|
+
rake (13.0.1)
|
|
52
|
+
regexp_parser (2.0.0)
|
|
53
|
+
rexml (3.2.5)
|
|
54
|
+
rspec (3.9.0)
|
|
55
|
+
rspec-core (~> 3.9.0)
|
|
56
|
+
rspec-expectations (~> 3.9.0)
|
|
57
|
+
rspec-mocks (~> 3.9.0)
|
|
58
|
+
rspec-collection_matchers (1.2.0)
|
|
58
59
|
rspec-expectations (>= 2.99.0.beta1)
|
|
59
|
-
rspec-core (3.
|
|
60
|
-
rspec-support (~> 3.
|
|
61
|
-
rspec-expectations (3.
|
|
60
|
+
rspec-core (3.9.2)
|
|
61
|
+
rspec-support (~> 3.9.3)
|
|
62
|
+
rspec-expectations (3.9.1)
|
|
62
63
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
63
|
-
rspec-support (~> 3.
|
|
64
|
-
rspec-mocks (3.
|
|
64
|
+
rspec-support (~> 3.9.0)
|
|
65
|
+
rspec-mocks (3.9.1)
|
|
65
66
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
66
|
-
rspec-support (~> 3.
|
|
67
|
-
rspec-support (3.
|
|
68
|
-
rubocop (
|
|
69
|
-
jaro_winkler (~> 1.5.1)
|
|
67
|
+
rspec-support (~> 3.9.0)
|
|
68
|
+
rspec-support (3.9.3)
|
|
69
|
+
rubocop (1.6.1)
|
|
70
70
|
parallel (~> 1.10)
|
|
71
|
-
parser (>= 2.
|
|
71
|
+
parser (>= 2.7.1.5)
|
|
72
72
|
rainbow (>= 2.2.2, < 4.0)
|
|
73
|
+
regexp_parser (>= 1.8, < 3.0)
|
|
74
|
+
rexml
|
|
75
|
+
rubocop-ast (>= 1.2.0, < 2.0)
|
|
73
76
|
ruby-progressbar (~> 1.7)
|
|
74
|
-
unicode-display_width (>= 1.4.0, <
|
|
75
|
-
|
|
77
|
+
unicode-display_width (>= 1.4.0, < 2.0)
|
|
78
|
+
rubocop-ast (1.3.0)
|
|
79
|
+
parser (>= 2.7.1.5)
|
|
80
|
+
ruby-progressbar (1.10.1)
|
|
76
81
|
simplecov (0.16.1)
|
|
77
82
|
docile (~> 1.1)
|
|
78
83
|
json (>= 1.8, < 3)
|
|
@@ -84,13 +89,14 @@ GEM
|
|
|
84
89
|
thor (0.20.3)
|
|
85
90
|
thread_safe (0.3.6)
|
|
86
91
|
timecop (0.9.1)
|
|
87
|
-
tins (1.
|
|
88
|
-
tzinfo (1.2.
|
|
92
|
+
tins (1.21.0)
|
|
93
|
+
tzinfo (1.2.9)
|
|
89
94
|
thread_safe (~> 0.1)
|
|
90
|
-
unicode-display_width (1.
|
|
95
|
+
unicode-display_width (1.7.0)
|
|
91
96
|
|
|
92
97
|
PLATFORMS
|
|
93
98
|
ruby
|
|
99
|
+
x86_64-darwin-19
|
|
94
100
|
|
|
95
101
|
DEPENDENCIES
|
|
96
102
|
active_record_data_loader!
|
|
@@ -100,7 +106,7 @@ DEPENDENCIES
|
|
|
100
106
|
mysql2
|
|
101
107
|
pg
|
|
102
108
|
pry
|
|
103
|
-
rake (~>
|
|
109
|
+
rake (~> 13.0)
|
|
104
110
|
rspec (~> 3.0)
|
|
105
111
|
rspec-collection_matchers
|
|
106
112
|
rubocop
|
|
@@ -108,4 +114,4 @@ DEPENDENCIES
|
|
|
108
114
|
timecop
|
|
109
115
|
|
|
110
116
|
BUNDLED WITH
|
|
111
|
-
2.
|
|
117
|
+
2.2.1
|
data/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
#
|
|
1
|
+
# active_record_data_loader
|
|
2
2
|
|
|
3
3
|
[](https://travis-ci.org/abeiderman/active_record_data_loader)
|
|
4
4
|
[](https://coveralls.io/github/abeiderman/active_record_data_loader?branch=master)
|
|
@@ -10,6 +10,10 @@ Efficiently bulk load data for your ActiveRecord models with a simple DSL.
|
|
|
10
10
|
|
|
11
11
|
Load, performance, and stress tests often require setting up a realistic amount of data in your database. This gem is intended to help organize that data load and make it more maintainable than having a collection of SQL scripts.
|
|
12
12
|
|
|
13
|
+
#### How is this different from using _factory_bot_?
|
|
14
|
+
|
|
15
|
+
This gem is not a replacement for [factory_bot](https://github.com/thoughtbot/factory_bot). It solves a different use case. While _factory_bot_ is great for organizing test data and reducing duplication in your functional tests, _active_record_data_loader_ is focused around bulk loading data for performance tests. The purpose of _active_record_data_loader_ is loading large amounts of data as efficiently as possible while providing a DSL that helps with maintainability.
|
|
16
|
+
|
|
13
17
|
## Installation
|
|
14
18
|
|
|
15
19
|
Add this line to your application's Gemfile:
|
|
@@ -220,4 +224,4 @@ The gem is available as open source under the terms of the [MIT License](https:/
|
|
|
220
224
|
|
|
221
225
|
## Code of Conduct
|
|
222
226
|
|
|
223
|
-
Everyone interacting in the
|
|
227
|
+
Everyone interacting in the _active_record_data_loader_ project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/abeiderman/active_record_data_loader/blob/master/CODE_OF_CONDUCT.md).
|
|
@@ -30,9 +30,9 @@ Gem::Specification.new do |spec|
|
|
|
30
30
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
|
31
31
|
spec.require_paths = ["lib"]
|
|
32
32
|
|
|
33
|
-
spec.required_ruby_version = ">= 2.
|
|
33
|
+
spec.required_ruby_version = ">= 2.5.0"
|
|
34
34
|
|
|
35
|
-
spec.add_dependency "activerecord", ">=
|
|
35
|
+
spec.add_dependency "activerecord", ">= 5.0"
|
|
36
36
|
|
|
37
37
|
spec.add_development_dependency "appraisal"
|
|
38
38
|
spec.add_development_dependency "bundler", ">= 1.16"
|
|
@@ -40,7 +40,7 @@ Gem::Specification.new do |spec|
|
|
|
40
40
|
spec.add_development_dependency "mysql2"
|
|
41
41
|
spec.add_development_dependency "pg"
|
|
42
42
|
spec.add_development_dependency "pry"
|
|
43
|
-
spec.add_development_dependency "rake", "~>
|
|
43
|
+
spec.add_development_dependency "rake", "~> 13.0"
|
|
44
44
|
spec.add_development_dependency "rspec", "~> 3.0"
|
|
45
45
|
spec.add_development_dependency "rspec-collection_matchers"
|
|
46
46
|
spec.add_development_dependency "rubocop"
|
data/config/database.yml
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
postgres:
|
|
2
2
|
adapter: "postgresql"
|
|
3
3
|
host: "127.0.0.1"
|
|
4
|
+
port: "2345"
|
|
4
5
|
database: "test"
|
|
5
6
|
username: "test"
|
|
6
7
|
password: "test"
|
|
@@ -12,6 +13,7 @@ sqlite3:
|
|
|
12
13
|
mysql:
|
|
13
14
|
adapter: "mysql2"
|
|
14
15
|
host: "127.0.0.1"
|
|
16
|
+
port: "3306"
|
|
15
17
|
database: "test"
|
|
16
18
|
username: "test"
|
|
17
19
|
password: "test"
|
data/docker-compose.yml
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
version: "3.9"
|
|
2
|
+
services:
|
|
3
|
+
postgres:
|
|
4
|
+
image: postgres:11
|
|
5
|
+
ports:
|
|
6
|
+
- "2345:5432"
|
|
7
|
+
environment:
|
|
8
|
+
- POSTGRES_USER=test
|
|
9
|
+
- POSTGRES_PASSWORD=test
|
|
10
|
+
mysql:
|
|
11
|
+
image: mysql:5
|
|
12
|
+
ports:
|
|
13
|
+
- "3306:3306"
|
|
14
|
+
environment:
|
|
15
|
+
- MYSQL_ROOT_PASSWORD=test
|
|
16
|
+
- MYSQL_USER=test
|
|
17
|
+
- MYSQL_PASSWORD=test
|
|
18
|
+
- MYSQL_DATABASE=test
|
|
@@ -8,9 +8,9 @@ module ActiveRecordDataLoader
|
|
|
8
8
|
def initialize(
|
|
9
9
|
model:,
|
|
10
10
|
column_settings:,
|
|
11
|
+
connection_factory:,
|
|
11
12
|
polymorphic_settings: [],
|
|
12
|
-
belongs_to_settings: []
|
|
13
|
-
connection_factory:
|
|
13
|
+
belongs_to_settings: []
|
|
14
14
|
)
|
|
15
15
|
@model_class = model
|
|
16
16
|
@table = model.table_name
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: active_record_data_loader
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.0
|
|
4
|
+
version: 1.1.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Alejandro Beiderman
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2021-05-01 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: activerecord
|
|
@@ -16,14 +16,14 @@ dependencies:
|
|
|
16
16
|
requirements:
|
|
17
17
|
- - ">="
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: '
|
|
19
|
+
version: '5.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: '5.0'
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: appraisal
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -114,14 +114,14 @@ dependencies:
|
|
|
114
114
|
requirements:
|
|
115
115
|
- - "~>"
|
|
116
116
|
- !ruby/object:Gem::Version
|
|
117
|
-
version: '
|
|
117
|
+
version: '13.0'
|
|
118
118
|
type: :development
|
|
119
119
|
prerelease: false
|
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
|
121
121
|
requirements:
|
|
122
122
|
- - "~>"
|
|
123
123
|
- !ruby/object:Gem::Version
|
|
124
|
-
version: '
|
|
124
|
+
version: '13.0'
|
|
125
125
|
- !ruby/object:Gem::Dependency
|
|
126
126
|
name: rspec
|
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -218,6 +218,7 @@ files:
|
|
|
218
218
|
- bin/setup
|
|
219
219
|
- config/database.yml
|
|
220
220
|
- config/database.yml.travis
|
|
221
|
+
- docker-compose.yml
|
|
221
222
|
- gemfiles/.bundle/config
|
|
222
223
|
- gemfiles/activerecord_5.gemfile
|
|
223
224
|
- gemfiles/activerecord_6.gemfile
|
|
@@ -245,12 +246,12 @@ files:
|
|
|
245
246
|
- lib/active_record_data_loader/loader.rb
|
|
246
247
|
- lib/active_record_data_loader/version.rb
|
|
247
248
|
- log/.keep
|
|
248
|
-
homepage:
|
|
249
|
+
homepage:
|
|
249
250
|
licenses:
|
|
250
251
|
- MIT
|
|
251
252
|
metadata:
|
|
252
253
|
source_code_uri: https://github.com/abeiderman/active_record_data_loader
|
|
253
|
-
post_install_message:
|
|
254
|
+
post_install_message:
|
|
254
255
|
rdoc_options: []
|
|
255
256
|
require_paths:
|
|
256
257
|
- lib
|
|
@@ -258,16 +259,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
258
259
|
requirements:
|
|
259
260
|
- - ">="
|
|
260
261
|
- !ruby/object:Gem::Version
|
|
261
|
-
version: 2.
|
|
262
|
+
version: 2.5.0
|
|
262
263
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
263
264
|
requirements:
|
|
264
265
|
- - ">="
|
|
265
266
|
- !ruby/object:Gem::Version
|
|
266
267
|
version: '0'
|
|
267
268
|
requirements: []
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
signing_key:
|
|
269
|
+
rubygems_version: 3.1.4
|
|
270
|
+
signing_key:
|
|
271
271
|
specification_version: 4
|
|
272
272
|
summary: A utility to bulk load test data for performance testing.
|
|
273
273
|
test_files: []
|