Class: MasterDataTool::Import::Executor

Inherits:
Object
  • Object
show all
Defined in:
lib/master_data_tool/import/executor.rb

Instance Method Summary collapse

Constructor Details

#initialize(spec_config:, dry_run: true, verify: true, only_import_tables: [], except_import_tables: [], only_verify_tables: [], except_verify_tables: [], skip_no_change: true, silent: false, delete_all_ignore_foreign_key: false, override_identifier: nil, report_printer: nil) ⇒ Executor

Returns a new instance of Executor.



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/master_data_tool/import/executor.rb', line 6

def initialize(spec_config:,
               dry_run: true,
               verify: true,
               only_import_tables: [],
               except_import_tables: [],
               only_verify_tables: [],
               except_verify_tables: [],
               skip_no_change: true,
               silent: false,
               delete_all_ignore_foreign_key: false,
               override_identifier: nil,
               report_printer: nil)

  @spec_config = spec_config
  @dry_run = dry_run
  @verify = verify
  @only_import_tables = Array(only_import_tables)
  @except_import_tables = Array(except_import_tables)
  @only_verify_tables = Array(only_verify_tables)
  @except_verify_tables = Array(except_verify_tables)
  @skip_no_change = skip_no_change
  @silent = silent
  @delete_all_ignore_foreign_key = delete_all_ignore_foreign_key
  @override_identifier = override_identifier
  @report_printer = report_printer || MasterDataTool::Report::DefaultPrinter.new(spec_config)
  @report_printer.silent = silent
  @master_data_statuses = []
end

Instance Method Details

#executeObject



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/master_data_tool/import/executor.rb', line 35

def execute
  spec_config.application_record_class.transaction do
    MasterDataTool::MasterDataStatus.transaction do
      print_execute_options
      load_master_data_statuses

      master_data_collection = build_master_data_collection

      import_all!(master_data_collection)
      verify_all!(master_data_collection) if verify
      save_master_data_statuses!(master_data_collection)

      print_affected_tables(master_data_collection)

      raise DryRunError if dry_run

      master_data_collection
    end
  end
rescue DryRunError
  puts "[DryRun] end"
end