active_record_data_loader 1.0.2 → 1.1.0

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