master_data_tool 0.17.0 → 0.18.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
2
  SHA256:
3
- metadata.gz: 13d917fbfac12aeef06fb5d23478b0b7a72cb7d322307650097cf7b9bbfc2154
4
- data.tar.gz: 55e5a9eaf6fb6605e3c81db67e416b9b194ba38dd68f7f52646e2d6aed1f4bb4
3
+ metadata.gz: 553fcd688f3ae346cc356961473852142c87f0ee66145b9e1892bfac3e230927
4
+ data.tar.gz: 64813eea92f8afc4612cdeb19f281c11ecef5537a207a736cd38ef68d57d9adf
5
5
  SHA512:
6
- metadata.gz: c786f48fffb282a462c5daff7dc238c2021113d79590b6bcfc3a5f9d001a153e0db298b958f99548f12d0f4c09f69ed7b254c3b03e7e29655bc67d3b299c2476
7
- data.tar.gz: cf6f31dbe36c37e82ac9fbed099b02e93ac721fc31676288cc3f5b2905502a85b2e919517f0bdc60e3a793f5ab525de4bef597c335ac254b53c168eb7f0a12b1
6
+ metadata.gz: 9b617aed72fbd9bc0a355e81baef951c4f7f3d4cdf3838cf80b7e35533c98ba4fdfc0c01137d6b28e81f4d60798f21c4b81c94f1c53badba689edfe6d9c0c117
7
+ data.tar.gz: 0d1daa98e982a6bb918d6dc63dde683b8ce65181337a6fb1754a124d7f93d0e6daa7b25e5cfa5f31a16261c8c4624d6544313a72105dff7746d9df69c28277d5
@@ -9,12 +9,16 @@ module MasterDataTool
9
9
  config_accessor :dump_ignore_columns
10
10
  config_accessor :default_import_options
11
11
  config_accessor :logger
12
+ config_accessor :preload_associations
13
+ config_accessor :eager_load_associations
12
14
 
13
15
  def initialize
14
16
  self.master_data_dir = nil
15
17
  self.dump_ignore_tables = %w[]
16
18
  self.dump_ignore_columns = %w[]
17
19
  self.default_import_options = {}
20
+ self.preload_associations = {} # key: Class, value: associations
21
+ self.eager_load_associations = {} # key: Class, value: associations
18
22
  self.logger = Logger.new(nil)
19
23
  end
20
24
  end
@@ -135,7 +135,11 @@ module MasterDataTool
135
135
 
136
136
  def verify!(ignore_fail: false)
137
137
  MasterDataTool::Report::VerifyReport.new(self).tap do |report|
138
- @model_klass.all.find_each do |record|
138
+ scoped = @model_klass.all
139
+ scoped = scoped.preload(preload_associations) if preload_associations
140
+ scoped = scoped.eager_load(eager_load_associations) if eager_load_associations
141
+
142
+ scoped.find_each do |record|
139
143
  valid = record.valid?
140
144
  report.append(MasterDataTool::Report::VerifyReport.build_verify_record_report(self, record, valid))
141
145
  next if ignore_fail
@@ -154,6 +158,14 @@ module MasterDataTool
154
158
 
155
159
  private
156
160
 
161
+ def preload_associations
162
+ @preload_associations ||= MasterDataTool.config.preload_associations.dig(@model_klass.to_s.to_sym)
163
+ end
164
+
165
+ def eager_load_associations
166
+ @eager_load_associations ||= MasterDataTool.config.eager_load_associations.dig(@model_klass.to_s.to_sym)
167
+ end
168
+
157
169
  def build_records_from_csv(csv, old_records_by_id)
158
170
  {}.tap do |records|
159
171
  csv.each do |row|
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module MasterDataTool
4
- VERSION = "0.17.0"
4
+ VERSION = "0.18.0"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: master_data_tool
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.17.0
4
+ version: 0.18.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Takahiro Ooishi
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-06-11 00:00:00.000000000 Z
11
+ date: 2022-07-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -231,7 +231,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
231
231
  - !ruby/object:Gem::Version
232
232
  version: '0'
233
233
  requirements: []
234
- rubygems_version: 3.2.22
234
+ rubygems_version: 3.2.33
235
235
  signing_key:
236
236
  specification_version: 4
237
237
  summary: マスタデータの管理ツール