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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: a76332e648af9f10d665eaab3fb442b18d708914
4
- data.tar.gz: 012eb43c82d6bca82f97ece0d719faa07ea79c6c
2
+ SHA256:
3
+ metadata.gz: 33d3769ad2f8c008cf51e75a62b43ba3333dce8e7e45387e01ab3470f2a5bf6c
4
+ data.tar.gz: 6f2b812d1e3837d05ff565c050cd6c80110929136601fb95436996b14de4e809
5
5
  SHA512:
6
- metadata.gz: 2f41b6aedb4c4cd4f02319cd3d13c50715a0e91bbfd0710e04caa2145054d26b20a4e7a2f69b295b28650a0ad8e111f322fbf008bda28f0db7fa6fa25428de24
7
- data.tar.gz: 18d9fb81d1e5d273aab3d21bc2d12f5e28624636f6286deeaf0ccadfdbf20afe629583c96dde78ee32acaaa0b931a363fe32c2c8a77435eca32540875a8d3ee7
6
+ metadata.gz: 8813fa219e7a710f147b79bb3a81826a5fe23ed7e3bef21a95fca310b3c8f3b09c7fb2c89d0cb3a65c825d01941eca8e394ee42900e13941d050e05fcb2c76d5
7
+ data.tar.gz: 43392902671095ffcf3d9f33984b7f77de3a9b2fb95bd99ee65378d046e2d509d34f8b92220de04642e6e33d816926215581caa58d02b0d30ac02011f1956776
data/.rubocop.yml CHANGED
@@ -1,5 +1,20 @@
1
1
  AllCops:
2
- TargetRubyVersion: 2.3
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/FrozenStringLiteralComment:
23
- Exclude: ["gemfiles/*"]
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.3.8
7
- - 2.4.6
8
- - 2.5.5
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.2)
5
- activerecord (>= 4.0)
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.3)
11
- activesupport (= 5.2.3)
12
- activerecord (5.2.3)
13
- activemodel (= 5.2.3)
14
- activesupport (= 5.2.3)
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.3)
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.0)
26
+ ast (2.4.1)
27
27
  coderay (1.1.2)
28
- concurrent-ruby (1.1.5)
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.1)
37
- i18n (1.6.0)
36
+ docile (1.3.2)
37
+ i18n (1.8.10)
38
38
  concurrent-ruby (~> 1.0)
39
- jaro_winkler (1.5.2)
40
- json (2.2.0)
41
- method_source (0.9.2)
42
- minitest (5.11.3)
43
- mysql2 (0.5.2)
44
- parallel (1.17.0)
45
- parser (2.6.3.0)
46
- ast (~> 2.4.0)
47
- pg (1.1.4)
48
- pry (0.12.2)
49
- coderay (~> 1.1.0)
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 (12.3.2)
53
- rspec (3.8.0)
54
- rspec-core (~> 3.8.0)
55
- rspec-expectations (~> 3.8.0)
56
- rspec-mocks (~> 3.8.0)
57
- rspec-collection_matchers (1.1.3)
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.8.0)
60
- rspec-support (~> 3.8.0)
61
- rspec-expectations (3.8.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.8.0)
64
- rspec-mocks (3.8.0)
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.8.0)
67
- rspec-support (3.8.0)
68
- rubocop (0.68.1)
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.5, != 2.5.1.1)
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, < 1.6)
75
- ruby-progressbar (1.10.0)
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.20.3)
88
- tzinfo (1.2.5)
92
+ tins (1.21.0)
93
+ tzinfo (1.2.9)
89
94
  thread_safe (~> 0.1)
90
- unicode-display_width (1.5.0)
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 (~> 12.0)
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.0.1
117
+ 2.2.1
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # ActiveRecord Data Loader
1
+ # active_record_data_loader
2
2
 
3
3
  [![Build Status](https://travis-ci.org/abeiderman/active_record_data_loader.svg?branch=master)](https://travis-ci.org/abeiderman/active_record_data_loader)
4
4
  [![Coverage Status](https://coveralls.io/repos/github/abeiderman/active_record_data_loader/badge.svg?branch=master&service=github)](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 ActiveRecord 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).
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.3.0"
33
+ spec.required_ruby_version = ">= 2.5.0"
34
34
 
35
- spec.add_dependency "activerecord", ">= 4.0"
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", "~> 12.0"
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"
@@ -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
@@ -2,6 +2,6 @@
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
- gem "activerecord", "6.0.0.rc1"
5
+ gem "activerecord", "~>6.1"
6
6
 
7
7
  gemspec path: "../"
@@ -25,7 +25,7 @@ module ActiveRecordDataLoader
25
25
  end
26
26
 
27
27
  def base_query
28
- if @query&.respond_to?(:call)
28
+ if @query.respond_to?(:call)
29
29
  @query.call.all
30
30
  else
31
31
  @ar_association.klass.all
@@ -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
@@ -46,7 +46,7 @@ module ActiveRecordDataLoader
46
46
  end
47
47
 
48
48
  def base_query(klass)
49
- if @settings.queries[klass]&.respond_to?(:call)
49
+ if @settings.queries[klass].respond_to?(:call)
50
50
  @settings.queries[klass].call.all
51
51
  else
52
52
  klass.all
@@ -24,7 +24,7 @@ module ActiveRecordDataLoader
24
24
  if defined?(Rails) && Rails.respond_to?(:logger)
25
25
  Rails.logger
26
26
  else
27
- Logger.new(STDOUT, level: :info)
27
+ Logger.new($stdout, level: :info)
28
28
  end
29
29
  end
30
30
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ActiveRecordDataLoader
4
- VERSION = "1.0.2"
4
+ VERSION = "1.1.0"
5
5
  end
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.2
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: 2019-07-06 00:00:00.000000000 Z
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: '4.0'
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: '4.0'
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: '12.0'
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: '12.0'
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.3.0
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
- rubyforge_project:
269
- rubygems_version: 2.6.14
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: []