Module: DigitalScriptorium::Transformers

Includes:
PropertyId
Defined in:
lib/digital_scriptorium/transformers.rb

Overview

Factory for creating claim transformers

Constant Summary collapse

TRANSFORMERS =
{
  HOLDING_INSTITUTION_AS_RECORDED => QualifiedClaimTransformer,
  SHELFMARK                       => ShelfmarkClaimTransformer,
  LINK_TO_INSTITUTIONAL_RECORD    => LinkClaimTransformer,
  TITLE_AS_RECORDED               => QualifiedClaimTransformerWithFacetFallback,
  UNIFORM_TITLE_AS_RECORDED       => UniformTitleClaimTransformer,
  ASSOCIATED_NAME_AS_RECORDED     => NameClaimTransformer,
  GENRE_AS_RECORDED               => QualifiedClaimTransformerWithFacetFallback,
  SUBJECT_AS_RECORDED             => QualifiedClaimTransformerWithFacetFallback,
  LANGUAGE_AS_RECORDED            => QualifiedClaimTransformer,
  PRODUCTION_DATE_AS_RECORDED     => DateClaimTransformer,
  DATED                           => DatedClaimTransformer,
  PRODUCTION_PLACE_AS_RECORDED    => QualifiedClaimTransformer,
  PHYSICAL_DESCRIPTION            => PhysicalDescriptionClaimTransformer,
  MATERIAL_AS_RECORDED            => QualifiedClaimTransformer,
  NOTE                            => NoteClaimTransformer,
  ACKNOWLEDGEMENTS                => AcknowledgementsClaimTransformer,
  IIIF_MANIFEST                   => IiifManifestClaimTransformer
}.freeze
AUTHORITY_IDS =
{
  HOLDING_INSTITUTION_AS_RECORDED => HOLDING_INSTITUTION_IN_AUTHORITY_FILE,
  TITLE_AS_RECORDED               => STANDARD_TITLE,
  ASSOCIATED_NAME_AS_RECORDED     => NAME_IN_AUTHORITY_FILE,
  GENRE_AS_RECORDED               => TERM_IN_AUTHORITY_FILE,
  SUBJECT_AS_RECORDED             => TERM_IN_AUTHORITY_FILE,
  LANGUAGE_AS_RECORDED            => LANGUAGE_IN_AUTHORITY_FILE,
  PRODUCTION_DATE_AS_RECORDED     => PRODUCTION_CENTURY_IN_AUTHORITY_FILE,
  PRODUCTION_PLACE_AS_RECORDED    => PLACE_IN_AUTHORITY_FILE,
  MATERIAL_AS_RECORDED            => MATERIAL_IN_AUTHORITY_FILE
}.freeze
PREFIXES =
{
  HOLDING_INSTITUTION_AS_RECORDED => 'institution',
  SHELFMARK                       => 'shelfmark',
  LINK_TO_INSTITUTIONAL_RECORD    => 'institutional_record',
  TITLE_AS_RECORDED               => 'title',
  UNIFORM_TITLE_AS_RECORDED       => 'uniform_title',
  ASSOCIATED_NAME_AS_RECORDED     => 'name',
  GENRE_AS_RECORDED               => 'term',
  SUBJECT_AS_RECORDED             => 'term',
  LANGUAGE_AS_RECORDED            => 'language',
  PRODUCTION_DATE_AS_RECORDED     => 'date',
  DATED                           => 'dated',
  PRODUCTION_PLACE_AS_RECORDED    => 'place',
  PHYSICAL_DESCRIPTION            => 'physical_description',
  MATERIAL_AS_RECORDED            => 'material',
  NOTE                            => 'note',
  ACKNOWLEDGEMENTS                => 'acknowledgements',
  IIIF_MANIFEST                   => 'iiif_manifest'
}.freeze

Constants included from PropertyId

PropertyId::ACKNOWLEDGEMENTS, PropertyId::ASSOCIATED_NAME_AS_RECORDED, PropertyId::CENTURY, PropertyId::DATED, PropertyId::DATE_ADDED, PropertyId::DATE_LAST_UPDATED, PropertyId::DESCRIBED_MANUSCRIPT, PropertyId::DS_ID, PropertyId::EARLIEST_DATE, PropertyId::END_TIME, PropertyId::EQUIVALENT_PROPERTY, PropertyId::EXTERNAL_IDENTIFIER, PropertyId::EXTERNAL_URI, PropertyId::FORMATTER_URL, PropertyId::GENRE_AS_RECORDED, PropertyId::HOLDING_INSTITUTION_AS_RECORDED, PropertyId::HOLDING_INSTITUTION_IN_AUTHORITY_FILE, PropertyId::HOLDING_STATUS, PropertyId::IIIF_MANIFEST, PropertyId::INSTANCE_OF, PropertyId::INSTITUTIONAL_ID, PropertyId::IN_ORIGINAL_SCRIPT, PropertyId::LANGUAGE_AS_RECORDED, PropertyId::LANGUAGE_IN_AUTHORITY_FILE, PropertyId::LATEST_DATE, PropertyId::LINK_TO_INSTITUTIONAL_RECORD, PropertyId::MANUSCRIPT_HOLDING, PropertyId::MATERIAL_AS_RECORDED, PropertyId::MATERIAL_IN_AUTHORITY_FILE, PropertyId::NAME_IN_AUTHORITY_FILE, PropertyId::NOTE, PropertyId::PHYSICAL_DESCRIPTION, PropertyId::PLACE_IN_AUTHORITY_FILE, PropertyId::PRODUCTION_CENTURY_IN_AUTHORITY_FILE, PropertyId::PRODUCTION_DATE_AS_RECORDED, PropertyId::PRODUCTION_PLACE_AS_RECORDED, PropertyId::ROLE_IN_AUTHORITY_FILE, PropertyId::SHELFMARK, PropertyId::STANDARD_TITLE, PropertyId::START_TIME, PropertyId::SUBCLASS_OF, PropertyId::SUBJECT_AS_RECORDED, PropertyId::TERM_IN_AUTHORITY_FILE, PropertyId::TITLE_AS_RECORDED, PropertyId::UNIFORM_TITLE_AS_RECORDED, PropertyId::VIAF_ID, PropertyId::WIKIDATA_QID

Class Method Summary collapse

Class Method Details

.authority_id(property_id) ⇒ Object



83
84
85
# File 'lib/digital_scriptorium/transformers.rb', line 83

def self.authority_id(property_id)
  AUTHORITY_IDS[property_id]
end

.create(property_id, claim, export_hash) ⇒ Object



91
92
93
94
95
96
97
98
# File 'lib/digital_scriptorium/transformers.rb', line 91

def self.create(property_id, claim, export_hash)
  transformer_class = TRANSFORMERS[property_id]
  authority_id = AUTHORITY_IDS[property_id]
  prefix = PREFIXES[property_id]
  return unless transformer_class && prefix

  transformer_class.new(claim, export_hash, prefix: prefix, authority_id: authority_id)
end

.defined?(property_id) ⇒ Boolean

Returns:

  • (Boolean)


75
76
77
# File 'lib/digital_scriptorium/transformers.rb', line 75

def self.defined?(property_id)
  TRANSFORMERS.include?(property_id)
end

.prefix(property_id) ⇒ Object



87
88
89
# File 'lib/digital_scriptorium/transformers.rb', line 87

def self.prefix(property_id)
  PREFIXES[property_id]
end

.transformer(property_id) ⇒ Object



79
80
81
# File 'lib/digital_scriptorium/transformers.rb', line 79

def self.transformer(property_id)
  TRANSFORMERS[property_id]
end