Sha256: 3b59dfdd4e8a01b8a59002ad6f18ee1f9568d461e50184be8e2c301e67ff211a
Contents?: true
Size: 1.46 KB
Versions: 2
Compression:
Stored size: 1.46 KB
Contents
# frozen_string_literal: true module IiifPrint module FileSetIndexer def to_solr super.tap do |index_document| index_solr_doc(index_document) end end def generate_solr_document super.tap do |solr_doc| index_solr_doc(solr_doc) end end private def index_solr_doc(solr_doc) object ||= @object || resource # only UV viewable images should have is_page_of, it is only used for iiif search solr_doc['is_page_of_ssim'] = IiifPrint::LineageService.ancestor_ids_for(object) if image?(object) # index for full text search solr_doc['all_text_tsimv'] = solr_doc['all_text_timv'] = all_text(object) solr_doc['digest_ssim'] = find_checksum(object) end def image?(object) mime_type = object.try(:mime_type) || object.original_file.try(:mime_type) mime_type&.match(/image/) end def find_checksum(object) file = object.original_file return unless file digest ||= if file.is_a?(Hyrax::FileMetadata) Array.wrap(file.checksum).first else # file is a Hydra::PCDM::File (ActiveFedora) file.digest.first end return unless digest digest.to_s end def all_text(object) file = object.original_file return unless file text = IiifPrint.extract_text_for(file_set: object) return text if text.blank? text.tr("\n", ' ').squeeze(' ') end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
iiif_print-2.0.1 | app/indexers/concerns/iiif_print/file_set_indexer.rb |
iiif_print-2.0.0 | app/indexers/concerns/iiif_print/file_set_indexer.rb |