Class: MasterDataTool::MasterDataStatus

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
lib/master_data_tool/master_data_status.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.build(spec_name, master_data_file) ⇒ Object



28
29
30
31
# File 'lib/master_data_tool/master_data_status.rb', line 28

def build(spec_name, master_data_file)
  version = decide_version(master_data_file.path)
  new(spec_name: spec_name, name: MasterDataTool.resolve_table_name(spec_name, master_data_file.path, master_data_file.override_identifier), version: version)
end

.decide_version(csv_path) ⇒ Object



42
43
44
# File 'lib/master_data_tool/master_data_status.rb', line 42

def decide_version(csv_path)
  OpenSSL::Digest::SHA256.hexdigest(File.open(csv_path).read)
end

.fetch_allObject



24
25
26
# File 'lib/master_data_tool/master_data_status.rb', line 24

def fetch_all
  all.index_by(&:name)
end

.import_records!(records, dry_run: true) ⇒ Object



33
34
35
36
37
38
39
40
# File 'lib/master_data_tool/master_data_status.rb', line 33

def import_records!(records, dry_run: true)
  if dry_run
    pp records
    return
  end

  import!(records, validate: true, on_duplicate_key_update: %w[name version], timestamps: true)
end

Instance Method Details

#will_change?(master_data_file) ⇒ Boolean

Returns:

  • (Boolean)


17
18
19
20
21
# File 'lib/master_data_tool/master_data_status.rb', line 17

def will_change?(master_data_file)
  raise unless name == master_data_file.table_name

  version != self.class.decide_version(master_data_file.path)
end