class Longleaf::MetadataPersistenceManager
Handles the persistence of metadata records
Public Class Methods
new(index_manager)
click to toggle source
Initialize the MetadataPersistenceManager
@param index_manager [IndexManager] system config manager
# File lib/longleaf/services/metadata_persistence_manager.rb, line 10 def initialize(index_manager) @index_manager = index_manager end
Public Instance Methods
index(file_rec)
click to toggle source
Index metadata for the provided file record @param file_rec [FileRecord] file record
# File lib/longleaf/services/metadata_persistence_manager.rb, line 31 def index(file_rec) if @index_manager.using_index? @index_manager.index(file_rec) end end
load(file_rec)
click to toggle source
Load the metadata record for the provided file record @param file_rec [FileRecord] file record @return [MetadataRecord] the metadata record for the file record
# File lib/longleaf/services/metadata_persistence_manager.rb, line 40 def load(file_rec) md_rec = MetadataDeserializer.deserialize(file_path: file_rec.metadata_path, digest_algs: file_rec.storage_location.metadata_location.digests) file_rec.metadata_record = md_rec md_rec end
persist(file_rec)
click to toggle source
Persist the metadata for the provided file record to all configured destinations. This may include to disk as well as to an index. @param file_rec [FileRecord] file record
# File lib/longleaf/services/metadata_persistence_manager.rb, line 17 def persist(file_rec) if file_rec.metadata_record.nil? raise MetadataError.new("No metadata record provided, cannot persist metadata for #{file_rec.path}") end MetadataSerializer::write(metadata: file_rec.metadata_record, file_path: file_rec.metadata_path, digest_algs: file_rec.storage_location.metadata_location.digests) index(file_rec) end