Module: Dor::Preservable
- Extended by:
- ActiveSupport::Concern
- Included in:
- Item
- Defined in:
- lib/dor/models/concerns/preservable.rb
Instance Method Summary collapse
- #build_provenanceMetadata_datastream(workflow_id, event_text) ⇒ Object
- #build_technicalMetadata_datastream(ds = nil) ⇒ Object
- #create_workflow_provenance(workflow_id, event_text) ⇒ Nokogiri::Document
- #sdr_ingest_transfer(agreement_id) ⇒ Object
Instance Method Details
#build_provenanceMetadata_datastream(workflow_id, event_text) ⇒ Object
12 13 14 15 16 17 18 |
# File 'lib/dor/models/concerns/preservable.rb', line 12 def build_provenanceMetadata_datastream(workflow_id, event_text) workflow_provenance = create_workflow_provenance(workflow_id, event_text) ds = datastreams['provenanceMetadata'] ds.label ||= 'Provenance Metadata' ds.ng_xml = workflow_provenance ds.save end |
#build_technicalMetadata_datastream(ds = nil) ⇒ Object
20 21 22 |
# File 'lib/dor/models/concerns/preservable.rb', line 20 def build_technicalMetadata_datastream(ds = nil) TechnicalMetadataService.(self) if self.is_a?(Dor::Item) # only items need technical metadata, other object types do not have contentMetadata or content end |
#create_workflow_provenance(workflow_id, event_text) ⇒ Nokogiri::Document
29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/dor/models/concerns/preservable.rb', line 29 def create_workflow_provenance(workflow_id, event_text) builder = Nokogiri::XML::Builder.new do |xml| xml.provenanceMetadata(:objectId => pid) { xml.agent(:name => 'DOR') { xml.what(:object => pid) { xml.event(:who => "DOR-#{workflow_id}", :when => Time.new.iso8601) { xml.text(event_text) } } } } end builder.doc end |
#sdr_ingest_transfer(agreement_id) ⇒ Object
24 25 26 |
# File 'lib/dor/models/concerns/preservable.rb', line 24 def sdr_ingest_transfer(agreement_id) SdrIngestService.transfer(self, agreement_id) end |