Class: DS::Mapper::DSCSVMapper
- Inherits:
-
BaseMapper
- Object
- BaseMapper
- DS::Mapper::DSCSVMapper
- Defined in:
- lib/ds/mapper/ds_csv_mapper.rb
Constant Summary
Constants inherited from BaseMapper
BaseMapper::ARTISTS_COLUMN_MAP, BaseMapper::ASSOCIATED_AGENT_COLUMN_MAP, BaseMapper::AUTHORS_COLUMN_MAP, BaseMapper::FORMER_OWNER_COLUMN_MAP, BaseMapper::GENRES_COLUMN_MAP, BaseMapper::LANGUAGE_COLUMN_MAP, BaseMapper::MATERIAL_COLUMN_MAP, BaseMapper::PLACES_COLUMN_MAP, BaseMapper::RECON_TYPE_COLUMN_MAP, BaseMapper::SCRIBES_COLUMN_MAP, BaseMapper::SUBJECTS_COLUMN_MAP, BaseMapper::TITLES_COLUMN_MAP
Instance Attribute Summary
Attributes inherited from BaseMapper
#recon_builder, #source, #source_dir, #timestamp
Instance Method Summary collapse
- #extract_record(entry) ⇒ Object
-
#initialize(source_dir:, timestamp:) ⇒ DSCSVMapper
constructor
A new instance of DSCSVMapper.
- #map_record(entry) ⇒ Object
Methods inherited from BaseMapper
#build_term_maps, #build_term_string, #build_term_strings, #map_terms, #to_s
Constructor Details
#initialize(source_dir:, timestamp:) ⇒ DSCSVMapper
Returns a new instance of DSCSVMapper.
9 10 11 12 13 14 15 |
# File 'lib/ds/mapper/ds_csv_mapper.rb', line 9 def initialize(source_dir:, timestamp:) super( source_dir: source_dir, timestamp: , source: DS::Source::DSCSV.new, ) end |
Instance Method Details
#extract_record(entry) ⇒ Object
68 69 70 71 72 |
# File 'lib/ds/mapper/ds_csv_mapper.rb', line 68 def extract_record entry locator = DS::Extractor::CsvRecordLocator.new csv = source.load_source File.join(source_dir, entry.filename) locator.locate_record(csv, entry.institutional_id, entry.institutional_id_location_in_source).first end |
#map_record(entry) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/ds/mapper/ds_csv_mapper.rb', line 17 def map_record entry record = extract_record entry source_type = 'ds-csv' source_file = entry.filename ds_id = entry.ds_id date_added = '' date_last_updated = '' dated = entry.dated? cataloging_convention = DS::Extractor::DsCsvExtractor.extract_cataloging_convention(record) holding_institution_ds_qid = entry.institution_ds_qid holding_institution_as_recorded = entry.institution_wikidata_label holding_institution_id_number = entry.institutional_id holding_institution_shelfmark = entry.call_number link_to_holding_institution_record = entry.link_to_institutional_record iiif_manifest = entry.iiif_manifest_url production_date_as_recorded = DS::Extractor::DsCsvExtractor.extract_production_date_as_recorded(record).join '|' production_date = DS::Extractor::DsCsvExtractor.extract_date_range(record, range_sep: '^').join '|' century = DS.transform_dates_to_centuries production_date century_aat = DS.transform_centuries_to_aat century physical_description = DS::Extractor::DsCsvExtractor.extract_physical_description(record).join '|' note = DS::Extractor::DsCsvExtractor.extract_notes(record).join '|' data_processed_at = data_source_modified = entry.record_last_updated acknowledgments = DS::Extractor::DsCsvExtractor.extract_acknowledgments(record).join '|' { ds_id: ds_id, date_added: date_added, date_last_updated: date_last_updated, dated: dated, source_type: source_type, cataloging_convention: cataloging_convention, holding_institution_ds_qid: holding_institution_ds_qid, holding_institution_as_recorded: holding_institution_as_recorded, holding_institution_id_number: holding_institution_id_number, holding_institution_shelfmark: holding_institution_shelfmark, link_to_holding_institution_record: link_to_holding_institution_record, iiif_manifest: iiif_manifest, production_date: production_date, century: century, century_aat: century_aat, production_date_as_recorded: production_date_as_recorded, physical_description: physical_description, note: note, data_processed_at: data_processed_at, data_source_modified: data_source_modified, source_file: source_file, acknowledgments: acknowledgments }.update build_term_maps DS::Extractor::DsCsvExtractor, record end |