class Ddr::IngestTools::DdrRdrMigrator::Migrator

Attributes

checksum_file[R]
files[R]
logger[R]
manifest[W]
metadata_file[R]
outfile[R]

Public Class Methods

new(checksum_file:, files:, logger: nil, metadata_file:, outfile:) click to toggle source
# File lib/ddr/ingesttools/ddr_rdr_migrator/migrator.rb, line 7
def initialize(checksum_file:, files:, logger: nil, metadata_file:, outfile:)
  @checksum_file = checksum_file
  @files = files
  @logger = logger || Logger.new(STDOUT)
  @metadata_file = metadata_file
  @outfile = outfile
end

Public Instance Methods

call() click to toggle source
# File lib/ddr/ingesttools/ddr_rdr_migrator/migrator.rb, line 15
def call
  sort_manifest
  rename_columns
  nest_works
  map_licenses
  overwrite_metadata
  add_file_paths
  remove_columns
  write_manifest
end

Private Instance Methods

add_file_paths() click to toggle source
# File lib/ddr/ingesttools/ddr_rdr_migrator/migrator.rb, line 37
def add_file_paths
  file_path_adder.call
end
as_csv_table(file) click to toggle source
# File lib/ddr/ingesttools/ddr_rdr_migrator/migrator.rb, line 92
def as_csv_table(file)
  ManifestParser.new(file).as_csv_table
end
column_remover() click to toggle source
# File lib/ddr/ingesttools/ddr_rdr_migrator/migrator.rb, line 65
def column_remover
  ColumnRemover.new(logger: logger, manifest: manifest)
end
column_renamer() click to toggle source
# File lib/ddr/ingesttools/ddr_rdr_migrator/migrator.rb, line 57
def column_renamer
  ColumnRenamer.new(manifest: manifest)
end
file_path_adder() click to toggle source
# File lib/ddr/ingesttools/ddr_rdr_migrator/migrator.rb, line 69
def file_path_adder
  FilePathAdder.new(checksum_file: checksum_file, files: files, logger: logger, manifest: manifest)
end
license_mapper() click to toggle source
# File lib/ddr/ingesttools/ddr_rdr_migrator/migrator.rb, line 73
def license_mapper
  LicenseMapper.new(logger: logger, manifest: manifest)
end
manifest() click to toggle source
# File lib/ddr/ingesttools/ddr_rdr_migrator/migrator.rb, line 28
def manifest
  @manifest ||= as_csv_table(metadata_file)
end
map_licenses() click to toggle source
# File lib/ddr/ingesttools/ddr_rdr_migrator/migrator.rb, line 41
def map_licenses
  license_mapper.call
end
metadata_overwriter() click to toggle source
# File lib/ddr/ingesttools/ddr_rdr_migrator/migrator.rb, line 77
def metadata_overwriter
  MetadataOverwriter.new(logger: logger, manifest: manifest)
end
nest_works() click to toggle source
# File lib/ddr/ingesttools/ddr_rdr_migrator/migrator.rb, line 45
def nest_works
  work_nester.call
end
overwrite_metadata() click to toggle source
# File lib/ddr/ingesttools/ddr_rdr_migrator/migrator.rb, line 49
def overwrite_metadata
  metadata_overwriter.call
end
remove_columns() click to toggle source
# File lib/ddr/ingesttools/ddr_rdr_migrator/migrator.rb, line 61
def remove_columns
  self.manifest = column_remover.call
end
rename_columns() click to toggle source
# File lib/ddr/ingesttools/ddr_rdr_migrator/migrator.rb, line 53
def rename_columns
  self.manifest = column_renamer.call
end
sort_manifest() click to toggle source
# File lib/ddr/ingesttools/ddr_rdr_migrator/migrator.rb, line 32
def sort_manifest
  sorted = manifest.sort_by { |row| [ row['model'], row['pid'] ] }
  self.manifest = CSV::Table.new(sorted)
end
work_nester() click to toggle source
# File lib/ddr/ingesttools/ddr_rdr_migrator/migrator.rb, line 81
def work_nester
  WorkNester.new(logger: logger, manifest: manifest)
end
write_manifest() click to toggle source
# File lib/ddr/ingesttools/ddr_rdr_migrator/migrator.rb, line 85
def write_manifest
  File.open(outfile, 'w') do |f|
    f.write(manifest.to_csv)
  end
  logger.info("Updated manifest file is at #{outfile}")
end